What is Software Testing?
When developer create a new software and deploy in market for use of public. The success of software depends on popularity of software, but it becomes terrible when users complains bugs, issues in the software. In this case developer need to debug the issues and fixed again for release the software that’s time-consuming process.
To overcome this practice “Software testing” comes in picture. This activity makes sure that every functionality or component of software is working as expected and outcome of software is as expected. The main purpose of software testing is delivered as defect free software.
Why Software Testing?
“Prevention is better better than care”
This phrase is very well suite for software development, If developers do the software testing on the time of development then all the issues will identify and fixed on the time of development which will make the bug free software. Software testing saves a lot of time for developers and reduces the frustration level caused by detecting bugs after deployment.
Software Testing Types
Software testing mainly categories in two types:

- Manual Testing: In this testing strategy is done manually by a tester to discover the bugs in software and check the results. This is also required because 100% automation testing is not possible.
- Automated Testing: In this testing, scripts and codes are written by testers to automate the test cases execution. This testing strategy saves lots of time as well manpower and generate report by automation tool.
Software Testing Hierarchy
In software testing, whether you choose automation or manual testing it can’t complete on one go. It comprises through 4 testing levels as below:

Unit Testing
Unit testing covers all independent parts or components of code i.e. known as Units. Unit testing is the first level of testing which perform on time of the development phase by developers while developing the software.
Integration Testing
Once the unit testing is working fine of all units of code then testing will be preform after integrating them i.e. called the integration testing. In this testing we check the communication between each unit are working as expected or not.
System Testing
Once the integration testing completed for all modules, then testing start for complete software i.e. called as System testing.
Acceptance Testing
After completing the System testing the software is evaluate as per business requirements i.e. called as Acceptance Testing. Once acceptance testing is completed successfully the software deployed to market for general user’s access.
The above testing hierarchy is very high level, there are other sub phases also for software testing, you will get to know by following this link https://en.wikipedia.org/wiki/Software_testing
In the further topics we will discuss more on Unit Testing by using Junit 5 and implementation on time of development.
This post was very insightful and very engaging. Thank you for writing about software testing, will subscribe to your newsletter.
Thanks for the valuable post on Software Testing Podcasts. Now I have full knowledge software testing podcasts to reach best position as a software tester. Also we need to check the Software Testing Board Reviews site to share our experience with various frameworks, tools, programming languages, and methodologies.