Testing is a software engineering process which qualifies that a software application or a product is performing the intended functionality. It finds out anomalies in behavior, report them as defects and ensures that all such issues get fixed before delivering the product to market. It is a mandatory activity of all types of SDLCs to certify that system possesses a certain level of quality.
Let’s now check what’s the book says about software testing, type of testing (manual and automation), different testing techniques and approaches.
Definition – Software Testing
The ANSI/IEEE 1059 is an international standard – It tells that testing is a process of examining a software artifact to identify the differences between actual and expected conditions (It means the bugs) and to assess the functionality of the same.
Types of Software Testing
1. Manual Testing
Manual testing is an engineering method to test a software manually and to identify both functional and non-functional defects. In this process, the tester thinks with the perspective of the end user and validates the system to check the behavior as mentioned in the requirement specification. S/he executes the planned test cases and produces the report on his own.
2. Automation Testing
Automation testing is an engineering method to perform the validation using an automated approach. It aims to speed up testing, eliminate manual efforts, and still able to find defects. In this process, the tester writes test scripts using some automation tool, executes it, and produces the report automatically. The most common automation tools are Selenium, FitNesse, Squish, and UFT for automating functional testing.
1. Static Testing
2. Dynamic Testing
Follow the detailed coverage on Static and Dynamic Testing methods.
1. White box Testing
2. Black box Testing
Levels of Testing
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Follow the detailed coverage on the Levels of Testing.
Types of Black box Testing
1. Functionality Testing
2. Non-functionality Testing
During the course of developing a software product, there are different testing strategies to be applied for delivering a robust, error-free, and successful release. Hope, you should now be able to understand a bit of how can you achieve that in your projects.