Software testing process
«Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance.» -IBM
Types and levels of testing
- Unit Testing -> software components
- Integration Testing -> the data flow between modules
- System Testing -> functional and non-functional needs
- Acceptance Testing -> requirements of a specification by delivery
- Functional testing-> Checking functions by emulating scenarios, functional requirements
- Performance testing-> performance under different workloads. Load testing
- Regression testing -> Checking features breaking functionality
- Stress testing ->Testing the system before it fails. Non functional
- Usability testing-> Validating customer usage
Activities and roles in testing
Test managers
- Defining the testing activities
- All responsibilities of test planning.
- check necessary resources
- Prepare the status report of testing activities.
- Required Interactions with clients.
- documenting progress of testing activities.
Test engineers
- Decide how it is to be tested.
- Inform the test manager
- Develop test cases and prioritize testing activities.
- Execute all the test case and report defects
Testing environments
«A testing environment is a setup of software and hardware for the testing teams to execute test cases. In other words, it supports test execution with hardware, software and network configured.» -guru99
Test Case Design techniques (open and closed views)
1. Specification-Based Design Technique:
«This is also popularly known as the black-box design technique. In this design technique, the test cases are written by taking the client’s functional requirements and specifications into consideration» -educba
2. Structure-Based Testing
«Structure-based testing deals with an applications internal structure and architecture. Here, the source code used to develop the application is tested. Therefore in the case of structure-based testing, a good understanding of the code and its internal flow are necessary in order to be able to design the test cases. Structure-based testing is also called white-box testing » -educba
3. Experience-Based Testing
«As the name states, this testing technique is based on a tester’s experience and expertise in similar applications and technologies. These are further divided into:»
Error guessing (based in prior cases» and Exploratory testing (parallel testing).
Process for control and management of defects in artifacts