Software testing is a process to evaluate the functions of a software app for finding software bugs. It checks whether the developed software met the specified requirement & identifies any defect in the software to produce a quality product. It executes into the system to identify any issues, gaps, missing requirements contrary to the actual need.
It is also stated as the process of verifying and validating a software product. It checks whether the software product: As we have seen above that it is used for the process of verifying & validating a software product, it checks whether the software product meets the business need or not.

Here are the essential software testing steps every software engineer should perform before showing their work to someone else.
Static Code Analysis
Some tools can perform analysis on source code and its analysis tools if any is lacking in the source code such as security, potential concurrency issues.
Also, it is used to enforce coding standards, & configure those tools to run automatically as part of the build.
Basic functionality testing
In basic Function Testing, you make sure that every button on every screen works, here you can enter simple text into each field without crashing the software.
Of course, you don’t have to try out all the different types of clicks & characters because that is something your tester do and they are good at that. Here the goal is simple, don’t let anyone else touch your work if it will make an issue. Suppose if the feature is designed to be accessed by way of an API, you need to run tests to make sure that basic functions work properly before submitting it for more intensive testing.
If your basic function detects an issue or bug, that’s fine. Just inform them that it doesn’t work and you are aware of it. So they shouldn’t bother trying it. You can fix it later, just don’t leave any surprises in there.
Single-user performance testing
Many times there is a load & performance testing baked into the system integration process that run load tests as soon as code is checked in. This is true in the case of the backend code. Here, developers should be looking at single-user performance on the front end by making sure the software is responsive when only they are using the system. If it’s taking more than a few seconds to display a web page taken from a local or emulated (and therefore responsive) web server, find out what client-side code is slowing things down and fix it before you let someone else see it.

Code Review
Another pair of eyes looking at the source code can uncover a lot of problems. If your coding methodology requires peer review, perform this step before you hand the code over for testing. Remember to do your basic functionality testing before the code review, though.
Unit Testing
Developers will write unit tests to make sure that the unit (be it a method, class, or component) is working as expected and test across a range of valid and invalid inputs. In a continuous integration environment, unit tests should run every time you commit a change to the source code repository, and you should run them on your development machine as well. Some teams have coverage goals for their unit tests and will fail a build if the unit tests aren’t extensive enough.
Developers also work with mock objects and virtualized services to make sure their units can be tested independently. If your unit tests fail, fix them before letting someone else use your code. If for any reason you can’t fix them right now, let the other person know what has failed, so it won’t come as a surprise when they come across the problem.
Conclusion
The above-mentioned Software Testing Types are just a part of testing. However, there is still a list of more than 100+ types of testing, but all testing types are not used in all types of projects. So I have covered some common Types of Software Testing which are mostly used in the testing life cycle. These testing types, processes, and implementation methods keep changing as and when the project, requirements, and scope changes.