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 SyllabusWhat 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 TestingWhy 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 PrinciplesTest 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 RolesEssential 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 TestingTesting 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 TypesMaintenance 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 TestingStatic 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 BasicsFeedback 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
Test Techniques Overview
In this syllabus, test techniques are classified as black-box, white-box, and experience-based.
Learn Chapter 4.1 Test Techniques OverviewBlack-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
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
Experience-based Test Techniques
Commonly used experience-based test techniques discussed in the following sections are:
- Error guessing
- Exploratory testing
- Checklist-based testing
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 ApproachesTest 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 PlanningRisk 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 ManagementTest 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.
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 ManagementDefect Management
Since one of the major test objectives is to find defects, an established defect management process is essential.
Learn Chapter 5.5 Defect ManagementTool Support for Testing
Test tools support and facilitate many test activities.
Learn Chapter 6.1 Tool Support for TestingBenefits 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