Software Testing
What is Testing?
Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.
According to ANSI/IEEE 1059 standard, Testing can be defined as - A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item.
Three basic types of Testing are :--
1. UNIT TESTING
2. INTEGRATION TESTING
3. SYSTEM TESTING
Unit Testing
This type of testing is performed by developers before the setup is handed over to the testing team to formally execute the test cases. Unit testing is performed by the respective developers on the individual units of source code assigned areas. The developers use test data that is different from the test data of the quality assurance team.
The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
Limitations of Unit Testing
Testing cannot catch each and every bug in an application. It is impossible to evaluate every execution path in every software application. The same is the case with unit testing.
There is a limit to the number of scenarios and test data that a developer can use to verify a source code. After having exhausted all the options, there is no choice but to stop unit testing and merge the code segment with other units.
REQUIREMENT BASED TESTING:
Integration Testing
Integration testing is defined as the testing of combined parts of an application to determine if they function correctly. Integration testing can be done in two ways: Bottom-up integration testing and Top-down integration testing.
Sr.No.
|
Integration Testing Method
|
1
|
Bottom-up integration
This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.
|
2
|
Top-down integration
In this testing, the highest-level modules are tested first and progressively, lower-level modules are tested thereafter.
|
In a comprehensive software development environment, bottom-up testing is usually done first, followed by top-down testing. The process concludes with multiple tests of the complete application, preferably in scenarios designed to mimic actual situations.
System Testing
System testing tests the system as a whole. Once all the components are integrated, the application as a whole is tested rigorously to see that it meets the specified Quality Standards. This type of testing is performed by a specialized testing team.
System testing is important because of the following reasons −
-
System testing is the first step in the Software Development Life Cycle, where the application is tested as a whole.
-
The application is tested thoroughly to verify that it meets the functional and technical specifications.
-
The application is tested in an environment that is very close to the production environment where the application will be deployed.
-
System testing enables us to test, verify, and validate both the business requirements as well as the application architecture.