|
-
The fundamentals of testing
- Why testing is necessary
- Harm caused by defects in software; root causes
- Testing and quality assurance; what testing is
- General testing principles
- Fundamental test process and the psychology of testing
-
Testing throughout the software lifecycle
- Software development models
- Relationship between development, test activities and work products in the development life cycle
- Project and product characteristics and context
- Test levels, objectives
- Typical objects and targets of testing
- Functional, non-functional, structural and change-related testing
- Confirmation and regression testing
- Maintenance testing
- Regression testing and impact analysis in maintenance
-
Static techniques
- Reviews and the test process
- Software work products and the different static techniques
- Importance and value of static techniques
- Difference between static and dynamic techniques
- Typical formal review process
- Different types of review: informal review, technical review, walkthrough and inspection
- Factors for successful performance of reviews
- Static analysis by tools
- Defects and errors identified by static analysis
- Typical benefits
- Typical code and design defects identified
-
Test design techniques
- Identifying test conditions and designing test cases
- Categories of test design techniques
- Specification-based (black-box) and structure-based (white-box) approaches
- Equivalence partitioning, boundary value analysis, decision tables and state transition diagrams
- Use case testing
- Structure-based or white-box techniques
- Code coverage, statement and decision coverage
- Control flows using statement testing and decision testing
- Experience based techniques
- Choosing techniques
-
Test management
- Test organization
- Independent testing
- Tasks of typical test leader and tester
- Test planning and estimation
- ‘Standard for Software Test Documentation’ (IEEE 829)
- Typical factors that influence the effort related to testing
- Estimation approaches (metrics-based and expert-based)
- Test preparation and execution tasks
- Exit criteria
- Test progress monitoring and control
- Metrics and reporting
- Configuration management
- Risk and testing
- Incident reporting and management
-
Tool support for testing
- Types of test tool
- Effective use of tools
- Potential benefits and risks
- Introducing a tool into an organization
|
|