CTFL - Test Engineering

Course title: ISTQB Test Engineering Foundation E-Learning
Course duration: Equivalent to a 3 days classroom training
Courseware availability: 3 months
Course language: English
Course contents:

1. Fundamentals of Testing


1.1 Why is Testing Necessary?

LO-1.1.1 Describe, with examples, the way in which a defect in software can cause harm to a person, to the environment or to a company

LO-1.1.2 Distinguish between the root cause of a defect and its effects

LO-1.1.3 Give reasons why testing is necessary by giving examples

LO-1.1.4 Describe why testing is part of quality assurance and give examples of how testing contributes to higher quality

LO-1.1.5 Explain and compare the terms error, defect, fault, failure and the corresponding terms mistake and bug, using examples

1.2 What is Testing?

LO-1.2.1 Recall the common objectives of testing

LO-1.2.2 Provide examples for the objectives of testing in different phases of the software life cycle

LO-1.2.3 Differentiate testing from debugging

1.3 Seven Testing Principles

LO-1.3.1 Explain the seven principles in testing

1.4 Fundamental Test Process

LO-1.4.1 Recall the five fundamental test activities and respective tasks from planning to closure

1.5 The Psychology of Testing

LO-1.5.1 Recall the psychological factors that influence the success of testing

LO-1.5.2 Contrast the mindset of a tester and of a developer


2. Testing Throughout the Software Life Cycle


2.1 Software Development Models

LO-2.1.1 Explain the relationship between development, test activities and work products in the development life cycle, by giving examples using project and product types

LO-2.1.2 Recognize the fact that software development models must be adapted to the context of project and product characteristics

LO-2.1.3 Recall characteristics of good testing that are applicable to any life cycle model

2.2 Test Levels

LO-2.2.1 Compare the different levels of testing: major objectives, typical objects of testing, typical targets of testing (e.g., functional or structural) and related work products, people who test, types of defects and failures to be identified

2.3 Test Types

LO-2.3.1 Compare four software test types (functional, non-functional, structural and  hangerelated) by example

LO-2.3.2 Recognize that functional and structural tests occur at any test level

LO-2.3.3 Identify and describe non-functional test types based on non-functional requirements

LO-2.3.4 Identify and describe test types based on the analysis of a software system’s structure or architecture

LO-2.3.5 Describe the purpose of confirmation testing and regression testing

2.4 Maintenance Testing

LO-2.4.1 Compare maintenance testing (testing an existing system) to testing a new application with respect to test types, triggers for testing and amount of testing

LO-2.4.2 Recognize indicators for maintenance testing (modification, migration and retirement)

LO-2.4.3. Describe the role of regression testing and impact analysis in maintenance


3. Static Techniques


3.1 Static Techniques and the Test Process

LO-3.1.1 Recognize software work products that can be examined by the different static techniques

LO-3.1.2 Describe the importance and value of considering static techniques for the assessment of software work products

LO-3.1.3 Explain the difference between static and dynamic techniques, considering objectives, types of defects to be identified, and the role of these techniques within the software life cycle

3.2 Review Process

LO-3.2.1 Recall the activities, roles and responsibilities of a typical formal review

LO-3.2.2 Explain the differences between different types of reviews: informal review, technical review, walkthrough and inspection

LO-3.2.3 Explain the factors for successful performance of reviews

3.3 Static Analysis by Tools

LO-3.3.1 Recall typical defects and errors identified by static analysis and compare them to reviews and dynamic testing

LO-3.3.2 Describe, using examples, the typical benefits of static analysis

LO-3.3.3 List typical code and design defects that may be identified by static analysis tools


4. Test Design Techniques


4.1 The Test Development Process

LO-4.1.1 Differentiate between a test design specification, test case specification and test procedure specification

LO-4.1.2 Compare the terms test condition, test case and test procedure

LO-4.1.3 Evaluate the quality of test cases in terms of clear traceability to the requirements and expected results

LO-4.1.4 Translate test cases into a well-structured test procedure specification at a level of detail relevant to the knowledge of the testers

4.2 Categories of Test Design Techniques

LO-4.2.1 Recall reasons that both specification-based (black-box) and structure-based (whitebox) test design techniques are useful and list the common techniques for each

LO-4.2.2 Explain the characteristics, commonalities, and differences between specification based testing, structure-based testing and experience-based testing

4.3 Specification-based or Black-box Techniques

LO-4.3.1 Write test cases from given software models using equivalence partitioning, boundary value analysis, decision tables and state transition diagrams/tables

LO-4.3.2 Explain the main purpose of each of the four testing techniques, what level and type of testing could use the technique, and how coverage may be measured

LO-4.3.3 Explain the concept of use case testing and its benefits

4.4 Structure-based or White-box Techniques

LO-4.4.1 Describe the concept and value of code coverage

LO-4.4.2 Explain the concepts of statement and decision coverage, and give reasons why these concepts can also be used at test levels other than component testing (e.g., on business procedures at system level)

LO-4.4.3 Write test cases from given control flows using statement and decision test design techniques

LO-4.4.4 Assess statement and decision coverage for completeness with respect to defined exit criteria. K4)

4.5 Experience-based Techniques

LO-4.5.1 Recall reasons for writing test cases based on intuition, experience and knowledge about common defects

LO-4.5.2 Compare experience-based techniques with specification-based testing techniques

4.6 Choosing Test Techniques

LO-4.6.1 Classify test design techniques according to their fitness to a given context, for the test basis, respective models and software characteristics


5. Test Management


5.1 Test Organization

LO-5.1.1 Recognize the importance of independent testing

LO-5.1.2 Explain the benefits and drawbacks of independent testing within an organization

LO-5.1.3 Recognize the different team members to be considered for the creation of a test team

LO-5.1.4 Recall the tasks of typical test leader and tester

5.2 Test Planning and Estimation

LO-5.2.1 Recognize the different levels and objectives of test planning

LO-5.2.2 Summarize the purpose and content of the test plan, test design specification and test procedure documents according to the ‘Standard for Software Test Documentation’ (IEEE Std 829-1998)

LO-5.2.3 Differentiate between conceptually different test approaches, such as analytical, modelbased, methodical, process/standard compliant, dynamic/heuristic, consultative and


LO-5.2.4 Differentiate between the subject of test planning for a system and scheduling test execution

LO-5.2.5 Write a test execution schedule for a given set of test cases, considering prioritization, and technical and logical dependencies

LO-5.2.6 List test preparation and execution activities that should be considered during test planning

LO-5.2.7 Recall typical factors that influence the effort related to testing

LO-5.2.8 Differentiate between two conceptually different estimation approaches: the  metricsbased approach and the expert-based approach

LO-5.2.9 Recognize/justify adequate entry and exit criteria for specific test levels and groups of test cases (e.g., for integration testing, acceptance testing or test cases for usability testing)

5.3 Test Progress Monitoring and Control

LO-5.3.1 Recall common metrics used for monitoring test preparation and execution

LO-5.3.2 Explain and compare test metrics for test reporting and test control (e.g., defects found and fixed, and tests passed and failed) related to purpose and use

LO-5.3.3 Summarize the purpose and content of the test summary report document according to the ‘Standard for Software Test Documentation’ (IEEE Std 829-1998)

5.4 Configuration Management

LO-5.4.1 Summarize how configuration management supports testing

5.5 Risk and Testing

LO-5.5.1 Describe a risk as a possible problem that would threaten the achievement of one or more stakeholders’ project objectives

LO-5.5.2 Remember that the level of risk is determined by likelihood (of happening) and impact (harm resulting if it does happen)

LO-5.5.3 Distinguish between the project and product risks

LO-5.5.4 Recognize typical product and project risks

LO-5.5.5 Describe, using examples, how risk analysis and risk management may be used for test planning

5.6 Incident Management

LO-5.6.1 Recognize the content of an incident report according to the ‘Standard for Software Test Documentation’ (IEEE Std 829-1998)

LO-5.6.2 Write an incident report covering the observation of a failure during testing.


6. Tool Support for Testing


6.1 Types of Test Tools

LO-6.1.1 Classify different types of test tools according to their purpose and to the activities of the fundamental test process and the software life cycle

LO-6.1.3 Explain the term test tool and the purpose of tool support for testing

6.2 Effective Use of Tools: Potential Benefits and Risks

LO-6.2.1 Summarize the potential benefits and risks of test automation and tool support for testing

LO-6.2.2 Remember special considerations for test execution tools, static analysis, and test management tools

6.3 Introducing a Tool into an Organization

LO-6.3.1 State the main principles of introducing a tool into an organization

LO-6.3.2 State the goals of a proof-of-concept for tool evaluation and a piloting phase for tool implementation

LO-6.3.3 Recognize that factors other than simply acquiring a tool are required for good tool support