-
Fundamentals of Software Testing
- The Necessity of Software Testing
- Recognise different types of software errors
- Recognise how testing can improve quality in software development
- What is Software Testing?
- Recognise the different goals in testing
- Meeting Software Test Objectives
- Recognise how software testing meets different test objectives
- General Software Testing Principles
- Recognise the fundamental principles in testing
- Applied Software Testing Principles
- Recognise the applied software testing principles
- The Importance of Software Testing and Mitigating Harm
- The Fundamental Software Test Process
- Recognise the test process in a given project
- Identify the component steps in the test process
- Exit Criteria and Test Closure Activities
- Identify the two final steps of the test process in a given scenario
- The Psychology of Software Testing
- Identify levels of independence in testing
- Recognise the role of communication in the psychology of software testing
- Contrasting Software Testers and Developers
- Recognise the different mindsets of a tester and developer in a test situation
- Organising Testers and the Software Test Process
-
Testing Throughout the Software Life Cycle
- Software Development Models
- Recognise how software testing relates to the development life cycle
- Identify software test levels
- Component and Integration Testing
- Recognise how component testing works
- Recognise how integration testing works
- System and Acceptance Testing
- Recognise how system testing works
- Recognise how acceptance testing works
- Testing to Reveal Defects
- Functional and Non-functional Software Testing
- Recognise how functional software testing works
- Recognise how non-functional software testing works
- Structural and Regression Software Testing
- Recognise how structural software testing works
- Recognise how regression software testing works
- Maintenance Software Testing
- Recognise how maintenance software testing works
- Models of Software Testing and Development
-
Static Techniques and Test Design in Software Testing
- Static Techniques and the Software Test Process
- Recognise how static techniques can be used in software testing
- Recognise the difference between static and dynamic software testing techniques
- The Review Process in Software Testing
- Recognise the differences between the types of reviews in software testing
- Identify the phases and roles in a formal review process
- Static Analysis in Software Testing
- Recognise how static analysis could be used in software testing
- Static Software Testing and Reviews
- The Software Test Development Process
- Recognise key terms used in software test design
- Recognise the components of a software test case
- Recognise how a software test procedure specification is designed
- Test Specifications and Test Cases
- Dynamic Software Test Design Techniques
- Recognise when to use the different dynamic software testing techniques
- Black-Box Software Testing Techniques
- Equivalence Partitioning in Software Testing
- Recognise how basic equivalence partitioning works
- Identify some of the most common black-box software testing techniques
- Boundary Value Analysis in Software Testing
- Determine boundary values for a boundary analysis
- Advanced Partitioning and Boundary Value Analysis
- Recognise how to construct software test cases using advanced equivalence partitioning and boundary value analysis
- Writing Software Test Cases
- Decision Tables in Software Testing
- Recognise how decision tables work in software testing
- State Transition Software Testing
- Recognise how state transitions work in software testing
- Recognise the functions of state transition and finite state machines in software testing
- Use Cases in Software Testing
- Recognise how to build use cases in software testing
- Creating Software Test Cases
- White-Box Software Testing Techniques
- Statement Testing and Coverage in Software Testing
- Determine the effectiveness of a given test set in statement coverage white-box testing
- Recognise the definition of coverage in software testing
- Decision Testing and Coverage in Software Testing
- Determine the effectiveness of a given test set in decision coverage white-box testing
- Advanced Structure-Based Software Testing Techniques
- Determine the effectiveness of a given test set in condition coverage white-box testing
- Recognise how path coverage is used
- Experience-Based Software Testing Techniques
- Recognise how error guessing can be used in software testing
- Recognise how exploratory testing can be used in software testing
- Choosing Software Test Techniques
- Recognise which set of software testing techniques are most appropriate in a given scenario
- Structure- and Experience-Based Testing
-
Software Test Management
- Dependent and Independent Software Testing
- Recognise a test team's level of independence in an organisation
- Tasks of the Test Leader and Tester in Software Testing
- Recognise the tasks of a test leader
- Recognise the tasks that are carried out by a tester
- Organising a Software Test Team
- Software Test Planning
- Distinguish the different detail plans that are created from the master test plan, based on scenarios
- Recognise the factors that influence the levels of a test plan
- Test Estimation, Test Strategies, and Exit Criteria
- Recognise different test strategies in a given scenario
- Identify key factors that influence test effort
- Recognise exit criteria
- Software Test Progress Monitoring and Control
- Interpret test metrics
- Evaluate test summary reports and select test control actions
- Test Reporting and Summarisation
-
Configuration Management, Risks, and Incidents in Software Testing
- Project Risks in Software Testing
- Recognise project risks and the most appropriate way of dealing with such risks
- Product Risks in Software Testing
- Determine the priority of product risks
- Basic Incident Reports in Software Testing
- Recognise the purpose of an incident report and what it contains
- Logging and Managing Incidents in Software Testing
- Recognise how the incident report process works
- Recognise what is included in an incident report
- Configuration Management in Software Testing
- Recognise how configuration management works in software testing
- Managing Risks and Incidents
-
Tool Support in Software Testing
- Benefits and Risks of Tools in Software Testing
- Recognise the risks and benefits of automatic test tools
- Recognise the different roles of data-driven scripts and keyword-driven scripts
- Tools for Management, Specification, and Static Testing
- Recognise the appropriate use of tools for management, specification, and static testing
- Tools for Test Execution, Logging, and Monitoring
- Recognise the appropriate use of performance and monitoring tools, and test execution and logging tools
- Recognise the purpose of test execution and logging tools
- Recognise the purpose of performance and monitoring tools
- Introducing a Tool into an Organisation
- Recognise when it is appropriate to introduce a test tool into an organisation
- Software Test Tool Classification and Implementation