When software is evaluated to reveal errors it is known as software testing. Software testing is done to find the quality of the developed software. Quality factors such as Software_Reliablity, Software_Usability, Software_Integrity, Software_Security, Software_Capability, Software_Efficiency, Sofwtare_Poratbility, Software_Maintainability, and Sofwtare_Compatibility.
Software testing is a time consuming and costly process. Software testing targets objectives and rules that are required in a software before delivering it to the customer.
Which traditional order in Software Testing is Organized ?
- Unit Testing
- Integration Testing
- Validation Testing
- System Testing
Requirement for Software Testing
Software is developed as per the requirement of the need and requirement of the software. Software testing is done to find upto what percentage software meets the requirement of the customer. Testing is the process to find upto what percentage required software meet-up with developed software. Software testing is done to find the errors in the software and if found remove them.
Software testing is done because of the following reasons:
- To verify the software and than validate the software:
Software testing is done to verify whether the developed software is working as desired and software testing is done under the desired constraints.
- To check whether the constraints meet-up the developed software
Software testing should be done within the budget allocated to develop the software and within the scheduled limits of software development. Software Testing must be done to find whether the developed software has functionalities that are required and these functionalities are working fine without any errors.
All the functionality of the software must be documented. These functionalities are checked by software testing process and if any errors are arised then these errors are also documented.
Software testing must be deterministic. There must exist a clear plan of software testing and this plan must have the functionalities that should be evaluated and tested for its correctness and reliability.
Principles used in software testing
Following is the methodology used in software testing:
- Test the functionality in an attempt to fail it:
Software testing is done to reveal errors. Errors are revealed when the software tester tries to make the software fail. Failure of the functionalities are projected in an attempt to make it more robust.
- Schedule testing phase with the beginning of the software:
Software testing phase must coordinate with the software development phase. Software testing plans must be developed in such a way that errors are removed in the initial stage and once tested should not be tested again.
- Software testing is dependent on context:
Testing is done within the context and it should be valid in different phases of time.
- Software testing must have a valid test plan:
Test plan in software testing should have a scope, test plan should have an objective, test plan should clearly specify the strategy used in software testing, test plan should evaluate the risk in software testing and should project it accordingly.
Test plan must have a strategy to meet-up the requirement of the organization that needs the developed software. Test plan must ensure that testing results of the functionalities are clear and precise and should clearly state that functionality tested has no errors when tested under the specified boundary conditions.
- Finding boundary conditions and valid inputs:
Boundary conditions must be used to test the functionality of the software. Boundary condition is a set of constraints that must be satisfied to check the functionalities of the software. In addition with the boundary condition software functionality must be checked for valid input. Developed software must be checked for invalid inputs and conditions which are unexpected.
To find valid inputs software must be tested by different testers belonging to the hierarchy of testers using different testing technqiues.
Stop testing: The terminating condition of the testing must be specified so it is decided when testing must be stopped. Testing must be stopped when it is going to violate constraints such as time and budget allocated to test software.
Techniques Used in Software Testing
There can be two types of software testing:
- Manual/Static Testing
- Automated Testing
Manual /Static Testing: Testing can also be done manually and it is called static testing. Static testing is done in the initial development phase. Static testing is the work of an analyst followed by a developer followed by a testing team.
There exists different techniques to conduct manual testing:
- Walk through
- Informal Review
- Technical Review
- Inspection
Automated Testing:
It is also called Dynamic Testing. Dynamic testing is of four types:
- Correctness testing
- Performance testing
- Reliability testing
- Security testing
Software Testing Methods
Methods of software testing are an essential component of a test plan. Software testing methods can be customized and can be tailored as per the requirement of the software. There are four different types of software testing methods:
- Unit Testing
- Integration Testing
- Acceptance/Validation Testing
- System Testing
Unit Testing
Unit is the module having a collection of programming instructions that can be tested. Unit Testing testing is done module wise. Unit testing is treated as a white box testing. Unit testing is done at low cost, and reveals errors that are specific to a particular module. Unit testing projects errors that lead to system crashes. Since unit testing supports module wise testing it can be used to test modules as and when they are developed. Unit testing supports parallelism, that is a single module may be tested by many testers simultaneously. Unit testing can test hidden conditions that are not easily be reached in a large integrated system.
Following are the techniques used in Unit Testing:
- Functional Testing
- Structural Testing
- Intuitive Testing
Integration Testing:
Integration testing is used to build program structure and find interface errors. Integration testing uses unit testing to build program structure. Integration testing are of two types:
- Top down Integration testing
- Bottom up Integration testing
Top Down Integration Testing
It is used to create program structure that is incremental in nature. Program structure is developed using depth-first or breadth-first ways. Integration is done using following steps:
- There exists a module called main control having subordinate modules. These sub-ordinate modules are replaced by using stubs.
- Subordinate stubs are replaced by actual components serially.
- When components are integrated, a test is performed.
- When one test gets completed then the sub is replaced with a real component.
- At last regression testing is done to remove hidden errors.
Bottom up Integration
Bottom-up integration testing tests atomic modules and then builds program structure. Following steps are used in Bottom up integration:
- Functionalities that perform common tasks are combined together to form clusters.
- A script is used to synchronize test cases for input and outputs.
- Clusters are tested.
- Clusters are combined using a Bottom up approach.
Validation Testing
Acceptance testing is also known as user acceptance testing or validation testing. This test Validates that developed software meets customer requirements. Validation testing is done by the user. This test is a Balck box test as the user checks the functionality of the developed software. This testing is done before the developed software is delivered to the system.
Validation testing has two levels:
- System provider level
- End user level
Validation testing are of following types:
- User Acceptance Testing:
It is done before it is delivered to the system.
- Alpha Testing & Beta Testing:
Alpha testing is done by users at the site where the software is developed. Beta testing is done by user but at user site.
- Operational Acceptance Testing: This testing ensures that all the functionality of the system is developed and is in place where it has to be.
- Contact and Regulation Acceptance Testing: The developed system is checked to see whether it follows government authority and local authority regulation and laws. The system is tested against the pre specified criteria.
System Testing
When required software is fully developed then it is checked for its functionality if all the functionality is developed and integrated, then system testing is conducted.
System testing is a type of Black Box testing to check for each and every functionality of the desired software.
Types of system testing includes:
- Recovery Testing: In this testing developed software is forced to fail using a variety of test cases and conditions and when software fails it is tested for its recovery procedures.
- Security Testing: Testers try to break the software security features. For this it designs specific test cases.
- Graphical user interface testing: This testing is done to check whether the interface of the developed system is as per the analyst analysis. For this, testers use different types of test cases.
Compatibility testing: In this testing is conducted to check software compatibility with the environment in which computing will take place.
Conclusion:
Software testing is a systematic process. In software testing developed software is tested using appropriate test design.
The order in which software testing is organized includes:
- Unit Testing
- Integration Testing
- Validation Testing
- System Testing
Leave a Reply