The ISTQB Foundation Level Syllabus discusses what software testers should know to communicate effectively, test efficiently, and combat the amount of defects found.

Download ISTQB Foundation Level v. 4.0 Syllabus

What is Testing?

Software systems are an integral part of our daily life. Most people have had experience with software that did not work as expected. Software that does not work correctly can lead to many problems, including loss of money, time or business reputation, and, in extreme cases, even injury or death. Software testing assesses software quality and helps reducing the risk of software failure in operation.

Learn Chapter 1.1 What is Testing

Why is Testing Necessary?

Testing, as a form of quality control, helps in achieving the agreed upon test objectives within the set scope, time, quality, and budget constraints. Testing’s contribution to success should not be restricted to the test team activities. Any stakeholder can use their testing skills to bring the project closer to success. Testing components, systems, and associated work products (e.g., documentation) helps to identify defects in software.

Learn Chapter 1.2 Why is Testing Necessary?

Testing Principles

A number of testing principles offering general guidelines applicable to all testing have been suggested over the years. This syllabus describes seven such principles.

Learn Chapter 1.3. Testing Principles

Test Activities, Testware and Test Roles

Testing is context dependent, but, at a high level, there are common sets of test activities without which testing is less likely to achieve test objectives. These sets of test activities form a test process. The test process can be tailored to a given situation based on various factors. Which test activities are included in this test process, how they are implemented, and when they occur is normally decided as part of the test planning for the specific situation.

Learn Chapter 1.4. Test Activities, Testware and Test Roles

Essential Skills and Good Practices in Testing

Skill is the ability to do something well that comes from one’s knowledge, practice and aptitude. Good testers should possess some essential skills to do their job well. Good testers should be effective team players and should be able to perform testing on different levels of test independence.

Learn Chapter 1.5. Essential Skills and Good Practices in Testing

Testing in the Context of a Software Development Lifecycle (SDLC)

An SDLC model is an abstract, high-level representation of the software development process. An SDLC model defines how different development phases and types of activities performed within this process relate to each other, both logically and chronologically. Examples of SDLC models include: sequential development models (e.g., waterfall model, V-model), iterative development models (e.g., spiral model, prototyping), and incremental development models (e.g., Unified Process).

Learn Chapter 2.1. Testing in the Context of a Software Development Lifecycle (SDLC)

Test Levels and Test Types

Test levels are groups of test activities that are organized and managed together. Each test level is an instance of the test process, performed in relation to software at a given phase of development, from individual components to complete systems or, where applicable, systems of systems.

Learn Chapter 2.2 Test Levels and Test Types

Maintenance Testing

There are different categories of maintenance, it can be corrective, adaptive to changes in the environment or improve performance or maintainability (see ISO/IEC 14764 for details), so maintenance can involve planned releases/deployments and unplanned releases/deployments (hot fixes). Impact analysis may be done before a change is made, to help decide if the change should be made, based on the potential consequences in other areas of the system. Testing the changes to an operational system includes both evaluating the success of the implementation of the change and the checking for possible regressions in parts of the system that remain unchanged (which is usually most of the system).

Learn Chapter 2.3 Maintenance Testing

Static Testing Basics

In contrast to dynamic testing, in static testing the software under test does not need to be executed. Code, process specification, system architecture specification or other work products are evaluated through manual examination (e.g., reviews) or with the help of a tool (e.g., static analysis). Test objectives include improving quality, detecting defects and assessing characteristics like readability, completeness, correctness, testability and consistency. Static testing can be applied for both verification and validation.

Learn Chapter 3.1 Static Testing Basics

Feedback and Review Process

In this section we discuss:

  • Benefits of Early and Frequent Stakeholder Feedback
  • Review Process Activities
  • Roles and Responsibilities in Reviews
  • Review Types
  • Success Factors for Reviews
Learn Chapter 3.2 Feedback and Review Process

Test Techniques Overview

In this syllabus, test techniques are classified as black-box, white-box, and experience-based.

Learn Chapter 4.1 Test Techniques Overview

Black-Box Test Techniques

Commonly used black-box test techniques discussed in the following sections are:

  • Decision Table Testing
  • State Transition Testing
  • Equivalence Partitioning
  • Boundary Value Analysis
Learn Chapter 4.2 Black-Box Test Techniques

White-Box Test Techniques

Because of their popularity and simplicity, this section focuses on two code-related white-box test
techniques:

  • Statement testing
  • Branch testing
Learn Chapter 4.3 White-Box Test Techniques

Experience-based Test Techniques

Commonly used experience-based test techniques discussed in the following sections are:

  • Error guessing
  • Exploratory testing
  • Checklist-based testing
Learn Chapter 4.4 Experience-based Test Techniques

Collaboration-based Test Approaches

Each of the above-mentioned test techniques has a particular objective with respect to defect detection. Collaboration-based approaches, on the other hand, focus also on defect avoidance by collaboration and communication.

Learn Chapter 4.5 Collaboration-based Test Approaches

Test Planning

Test planning guides the testers’ thinking and forces the testers to confront the future challenges related to risks, schedules, people, tools, costs, effort, etc. The process of preparing a test plan is a useful way to think through the efforts needed to achieve the test objectives.

Learn Chapter 5.1 Test Planning

Risk Management

Organizations face many internal and external factors that make it uncertain whether and when they will achieve their objectives (ISO 31000). Risk management allows the organizations to increase the likelihood of achieving objectives, improve the quality of their products and increase the stakeholders’ confidence and trust.

Learn Chapter 5.2 Risk Management

Test Monitoring, Test Control and Test Completion

Test monitoring is concerned with gathering information about testing. This information is used to assess
test progress and to measure whether the exit criteria or the test tasks associated with the exit criteria are
satisfied, such as meeting the targets for coverage of product risks, requirements, or acceptance criteria.

Learn Chapter 5.3 Test Monitoring, Test Control and Test Completion

Configuration Management

In testing, configuration management (CM) provides a discipline for identifying, controlling, and tracking work products such as test plans, test strategies, test conditions, test cases, test scripts, test results, test logs, and test reports as configuration items.

Learn Chapter 5.4 Configuration Management

Defect Management

Since one of the major test objectives is to find defects, an established defect management process is essential.

Learn Chapter 5.5 Defect Management

Tool Support for Testing

Test tools support and facilitate many test activities. 

Learn Chapter 6.1 Tool Support for Testing

Benefits and Risks of Test Automation

Simply acquiring a tool does not guarantee success. Each new tool will require effort to achieve real and lasting benefits (e.g., for tool introduction, maintenance and training). There are also some risks, which need analysis and mitigation.

Learn Chapter 6.2 Benefits and Risks of Test Automation