Software Testing

A mind maping of Software Testing Foundation to help you pass in the ISEB-ISTQB exam. @roger_uk | http://www.rogeriodasilva.com/ If you don't have a MindsMeister Mind Map account, register for free here - http://www.mindmeister.com/?r=177956

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

1. Fundamentals of Testing

1.1. Why is Testing Necessary?

1.1.1. Human -> Error (mistake) -> Defect (fault, bug) which when executed may cause -> Failure

1.1.2. Measures the quality of the software

1.1.3. Gives confidence in the quality

1.1.4. Reduces the overall level of risk

1.1.5. How much testing? Depends on risk, safety & project constraints

1.2. Testing Objectives

1.2.1. Finding Defects

1.2.2. Providing information for decision-making

1.2.3. Preventing defects

1.2.4. Gaining confidence about the level of quality

1.3. Seven Testing Principles

1.3.1. Testing shows presence of defects

1.3.2. Exhaustive testing is impossible

1.3.3. Early testing

1.3.4. Defect clustering

1.3.5. Pesticide paradox

1.3.6. Testing is context dependent

1.3.7. Absence-of-error fallacy

1.4. Fundamental Test Process

1.4.1. Planning & Control

1.4.2. Analysis & Design

1.4.3. Implementation & Execution

1.4.4. Evaluating Exit Criteria & Reporting

1.4.5. Test Closure

1.5. The Psychology of Testing

1.5.1. Mindset of Developer & Tester

1.5.2. Communication in a constructive manner

1.5.3. Test Independence

1.6. Code of Ethics

1.6.1. Code is necessary, among other reasons, to ensure information accessed by testers are not put to inappropriate use

1.6.1.1. Public

1.6.1.2. Client and Employer

1.6.1.3. Product

1.6.1.4. Judgement

1.6.1.5. Management

1.6.1.6. Profession

1.6.1.7. Colleagues

1.6.1.8. Self

2. Test Design Techniques

2.1. Test Development Process

2.1.1. Test Design Specification

2.1.2. Test Case Specification

2.1.3. Test Procedure Specification

2.2. Specification-based or Black-box Techniques

2.2.1. Equivalence Partitioning

2.2.2. Boundary Value Analysis

2.2.3. Decision Tables

2.2.4. State Transition Diagrams / Tables

2.2.5. Use Case Testing

2.3. Structure-base or White-box Technique

2.3.1. Statement Testing & Coverage (weakest)

2.3.2. Decision Testing & Coverage (stronger than Statement)

2.3.3. Other Structure-based Techniques

2.3.3.1. Condition Testing

2.3.3.2. Multiple Condition testing

2.3.3.3. All Path Testing (Strongest)

2.4. Experience-based Techniques

2.4.1. Exploratory Testing

2.4.2. Error Guessing

2.5. Choosing test Techniques

2.5.1. Risk & Objectives

2.5.2. Type of System & Dev Cycle

2.5.3. Regulatory Standards

2.5.4. Time & Budget

2.5.5. Knowledge & Experience

3. Tool Support for Testing

3.1. Types of Test Tools

3.1.1. Management of Testing & Tests

3.1.2. Performance & Monitoring

3.1.3. Specific testing Needs

3.1.4. Test Execution & Logging

3.1.5. Test Specification

3.1.6. Static Testing

3.2. Effective Use of Tools

3.2.1. Potential Benefits & Risks

3.2.2. Special consideration for Test Execution, Static Analysis & Test Management tools

3.3. Introducing a Tool into an Organisation

3.3.1. Main Considerations

3.3.2. Start with a Pilot project

3.3.3. Success factors for deployment

4. Test Management

4.1. Test Organisation

4.1.1. Independent Testing

4.1.2. Tasks of Test Leader & Tester

4.2. Test Planning & Estimation

4.2.1. Test Planning

4.2.1.1. Test Policy, Strategy

4.2.1.2. Estimating Techniques

4.2.1.3. Test Plan

4.2.2. Test Approaches

4.2.2.1. Analytical

4.2.2.2. Model-based

4.2.2.3. Methodical

4.2.2.4. Process-Compliant or Standard-Compliant

4.2.2.5. Regression-Averse

4.2.2.6. Dynamic and Heuristic

4.2.2.7. Consultative

4.2.3. Entry & Exit Criteria

4.3. Test Progress Monitoring & Control

4.3.1. Test Monitoring

4.3.2. Test Reporting & Control

4.3.3. Test Summary Report

4.4. Risks and Testing

4.4.1. Risk: Probability / Likelihood & Impact

4.4.2. Project & Product Risks

4.4.3. Risk-based testing approach

4.5. Configuration Management

4.5.1. Establish and maintain the integrity of the products and ensure all items of test-ware are identified, version controlled, tracked for changes, related to each other.

4.6. Incident Management

4.6.1. Incident Management

4.6.2. Incident Logging

4.6.3. Test Incident Report

5. Testing Throughout the Software Life Cycle

5.1. Software Development Models

5.1.1. Sequential

5.1.1.1. Waterfall

5.1.1.2. V-model

5.1.2. Iterative-Incremental

5.1.2.1. Agile

5.1.2.2. Scrum

5.2. Test Levels

5.2.1. Component (Unit)

5.2.2. Componet Integration

5.2.3. System

5.2.4. System Integration

5.2.5. Acceptance

5.3. Test Types

5.3.1. Black Box

5.3.1.1. Functional Testing

5.3.1.2. Non-Functional Testing (Software Characteristics)

5.3.2. White Box

5.3.2.1. Structural Testing

5.3.3. Testing Related to Change

5.3.3.1. Re-Testing

5.3.3.2. Regression

5.4. Maintenance Testing

5.4.1. Change to deployed software system or its enviroment

5.4.2. Triggered by

5.4.2.1. Modification

5.4.2.2. Migration

5.4.2.3. Retirement

5.4.3. Extensive regression testing required

6. Static Techniques

6.1. Review Types

6.1.1. Informal Review

6.1.2. Walkthrough

6.1.3. Technical Review

6.1.4. Inspection

6.2. Activities of a Formal Review

6.2.1. Planning

6.2.2. Kick-off

6.2.3. Individual Preparation

6.2.4. Review Meeting

6.2.5. Rework

6.2.6. Follow-Up

6.3. Static Analysis by Tools

6.3.1. Find defects in software source code and models

6.3.2. Can locate defects that are hard to locate in dynamic testing

7. Free Quiz