Software Testing Foundation

Get Started. It's Free
or sign up with your email address
Software Testing Foundation by Mind Map: Software Testing Foundation

1. The Fundamentals

1.1. Why software fails

1.1.1. Error

1.1.2. Defect

1.1.3. Failure

1.2. What testing is and what testing does

1.2.1. Static testing and Dynamic testing Static testing Dynamic testing

1.2.2. Testing and Debugging Testing Debugging

1.3. Fundamental test process

1.3.1. Test planning and control

1.3.2. Test analysis and design

1.3.3. Test implementation and execution

1.3.4. Evaluating exit criteria

1.3.5. Test closure activities

2. Life Cycles

2.1. Software development models

2.1.1. Waterfall model

2.1.2. V-model

2.1.3. Iterative development

2.2. Test levels

2.2.1. Unit (component) testing

2.2.2. Integration testing Integration strategy Big-bang Top-down Bottom-up Level of integration testing Component integration testing System integration testing

2.2.3. System testing Functional testing Non-functional testing

2.2.4. Acceptance testing User acceptance testing Operational acceptance testing Contract & Regulation acceptance testing Contract acceptance testing Regulation acceptance testing Alpha & Beta acceptance testing Alpha acceptance testing Contract acceptance testing

2.3. Test types

2.3.1. Functional testing

2.3.2. Non-functional testing

2.3.3. Structural testing

2.3.4. Testing related to changes Retesting Regression testing

2.4. Maintenance testing

2.4.1. Impact analysis

2.4.2. Data migration/conversion testing

3. Static Testing

3.1. Background

3.2. Review process

3.2.1. Basic elements

3.2.2. Activities

3.2.3. Roles & Responsibilities

3.3. Types of review

3.3.1. Informal

3.3.2. Walkthrough

3.3.3. Technical review

3.3.4. Inspection

3.4. Static Analysis by tools

4. Test Design Techniques

4.1. Test development process

4.1.1. Test conditions

4.1.2. Test cases

4.1.3. Test procedures

4.2. Test coverage

4.3. Test case design techniques

4.3.1. Specification-based (Black-box) Equivalence partitioning Input partitions Output partitions Other partitions Boundary value analysis Decision table testing State transition testing Use case testing

4.3.2. Structure-based (White-box) Flow charts Control flow graphs Statement testing and coverage Decision testing and coverage Simplified control flow graphs

4.3.3. Experience-based Error guessing Exploratory testing

5. Test Management

5.1. Test approaches (Test strategies)

5.2. Test planning and estimation

5.2.1. Test planning Activities Entry criteria Exit criteria

5.2.2. Test estimation Metrics-based approach Expert-based approach

5.3. Test progress monitoring and control

5.3.1. Test progress monitoring Test matrics

5.3.2. Test reporting

5.3.3. Test control

5.4. Incident management

5.5. Configuration management

6. Test Tools

6.1. Definition and benefits

6.2. Types of tool

6.2.1. Support for management Test management tools Incident management tools Requirement management tools Configuration management tools

6.2.2. Support for static testing Review tools Modelling tools

6.2.3. Support for test specification Test design tools

6.2.4. Support for test execution and logging Test comparators Test execution tools Record (or capture playback) tools Data-driven testing Keyword-driven testing Technical skills Maintenance Effective and efficient use Test harnesses Coverage measurement tools Security testing tools

6.2.5. Support for performance and monitoring Dynamic analysis tools Performance testing tools Monitoring tools Data quality assessment tools Usability test tools

6.3. Introducing a tool into an organisation