1
Introduction to software testing
- What is a test? Bugs and their cost. Testability. Testing and the life cycle. The concept of V&V.
- Functional testing vs. structural testing. Test coverage. Non-regression tests. The profession of a tester.
- References, maturity of processes (TMMI, TPI).
Hands-on work
Discovering a case study, application to be developed.
2
Management processes related to testing
- Managing requirements, specifications, and traceability.
- Managing anomalies and change requests.
- Managing configuration and changes.
- Peer review.
Hands-on work
Reviewing the requirements and specifications.
3
The approach to testing
- The five fundamentals.
- The project process and testing. The global approach.
- The testing plan and its adaptations. The testing strategy.
- The risk-based approach. Estimating.
- Platforms. Testing and databases.
- Preparing, executing, and evaluating tests.
- Delivery documentation. Follow-up.
Hands-on work
Getting started with the test management tool.
4
Unit tests
- The unit test process. Test Driven Development (TDD). xUnits.
- Limit testing, robustness testing, and random testing. Dynamic analysis. Structural coverage.
- Static analysis. Reading code.
Hands-on work
Measuring structural coverage.
5
Integration testing
- The integration testing process.
- Continuous integration.
- Integration strategies (upward, etc.)
- Random testing. The role of the integrator.
Hands-on work
Integration testing. Test reports, coverage reports, metrics.
6
Validation testing
- The validation testing process. The genesis of the version (feature freeze).
- People involved in validation.
- Intuitive anomaly searching, ad hoc testing. Exploratory testing. Partition testing. Graphs.
- Statistical, ergonomical, usability, and stress testing.
Hands-on work
Designing validation tests. Running tests and returning results.
7
Add-ons
- Project report, acceptance clauses, acceptance testing.
- Setting up corrective and adaptive maintenance.
- Outsourcing tests, TPAA. Tools.