Please enable JavaScript.
Coggle requires JavaScript to display documents.
Test Levels, Unit / component testing
Integration testing
System…
Test Levels
Integration strategy depending on system architecture:
- Big-bang
- Functional incremental
- Top-down (components or systems are substituted by Stubs)
- Bottom-up (components or systems are substituted by Drivers): from the bottom of the control flow upwards
Big-bang testing - a type of integration testing in which software elements, hardware elements, or both are combined all at once into a component or an overall system, rather than in stages.
Driver is used as a main module (when it not developed yet) Driver calls other modules. To test a function, the programmer has to write a DRIVER, which calls the function to be tested and passes it test data. BOTTOM-UP testing
-
Work products that can be used as a test basis for component testing include detailed design, code, data model, component specifications. Examples of work products for system testing include system and software requirement specifications (functional and non-functional) use cases
- 'Testing is based on interface specifications’ – the test basis for integration testing includes interface specifications (along with communication protocol specification), while these are not included for any of the other test levels
- ‘Testing is focused on finding failures in communication’ - failures in the communication between tested components is included as a typical failure for integration testing, but failures in communication is not included for any of the other test levels
- ‘The test approach uses both functional and structural test types’ - functional and structural test typ
Component testing focuses on defects in separately testable modules or objects, integration testing on defects in interfaces and interactions, system testing on defects in the whole test object, and acceptance testing is not typically focused on identifying defects.
Regulatory acceptance is a form of acceptance testing. The other types of testing should be conducted as well, but the focus on the compliance with the regulatory requirements should occur during acceptance testing. It is a good practice to conduct this testing as early as possible, but formal acceptance by a regulatory agency is normally done during acceptance testing.
Use cases are a good test basis for system testing because they include end-to-end transaction scenarios.
Software verification and validation program
- It strives to ensure that quality is built into software
- It provides management with insights into the state of a software project
- It is executed in parallel with software development activities
Alpha and Beta testing are typically used for COTS software, such as software packages that can be bought or downloaded by consumers. Feedback is needed from potential or existing users in their market before the software product is put out for Hale commercially
Alpa testing is pre-release testing by end user at the developer site
Beta testing - remotely, at users locations
-
Operational acceptance test also called production acceptance test is usually performed by system administrators
-
Component testing also called unit, program, module testing
- Check memory leaks
- Check the robustness
- Check the branch coverage
Valid approach to component testing:
I. Functional testing of the component in isolation
II. Structure-based testing of the code without recording incidents
III. Automated tests that are run until the component passes
Operational testing additional test basis:
- Testing of backup and restore
- Disaster recovery
- Non-functional requirements
- Operations documentation
- Deployment and installation instructions
- Performance targets
- Database packages
- Security standards or regulations
- Maintenance task
Stub is used when module is not fully developed yet. Stubs are called modules. STUB - skeletal implementation of a software component that is used for testing TOP-DOWN
System testing - end to end testing, focus on whole system + verification against requirements. Production environment
- Unit / component testing
- Integration testing
- System testing
- Acceptance testing