Read the book: «Software Testing Foundations»
About the Authors

Andreas Spillner is emeritus professor of computer science at the University of Applied Sciences Bremen. During the 1990s and early 2000s he spent 10 years as spokesman for the TAV (Test, Analysis, and Verification) group at the Gesellschaft für Informatik (German Computer Science Society) that he also helped to found. He is a founder member of the German Testing Board and was made an honorary member in 2009. He was made a fellow of the Gesellschaft für Informatik in 2007. His software specialty areas are technology, quality assurance, and testing.

Tilo Linz is co-founder and a board member of imbus AG, a leading software testing solution provider. He has been deeply involved in software testing and quality assurance for more than 25 years. As a founding member and chairman of the German Testing Board and a founding member of the International Software Testing Qualifications Board, he has played a major role in shaping and advancing education and training in this specialist area both nationally and internationally. Tilo is the author of Testing in Scrum (published by Rocky Nook), which covers testing in agile projects based on the foundations presented in this book.
Andreas Spillner · Tilo Linz
Software Testing Foundations
A Study Guide for the Certified Tester Exam
Foundation Level
ISTQB® Compliant
5th, revised and updated Edition

Andreas Spillner · andreas.spillner@hs-bremen.de
Tilo Linz · tilo.linz@imbus.de
Editor: Dr. Michael Barabas / Christa Preisendanz
Translation and Copyediting: Jeremy Cloot
Layout and Type: Josef Hegele
Production Editor: Stefanie Weidner
Cover Design: Helmut Kraus, www.exclam.de
Printing and Binding: mediaprint solutions GmbH, 33100 Paderborn, and Lightning Source®, Ingram Content Group.
Bibliographic information published by the Deutsche Nationalbibliothek (DNB)
The Deutsche Nationalbibliothek lists this publication in the Deutsche
Nationalbibliografie; detailed bibliographic data can be found on the Internet at http://dnb.dnb.de.
ISBN dpunkt.verlag:
978-3-86490-834-7 | |
978-3-96910-298-5 | |
ePUB | 978-3-96910-299-2 |
mobi | 978-3-96910-300-5 |
ISBN Rocky Nook:
978-1-68198-853-5 | |
978-1-68198-854-2 | |
ePUB | 978-1-68198-855-9 |
mobi | 978-1-68198-856-6 |
5th, revised and updated edition 2021 Copyright © 2021 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Title of the German Original: Basiswissen Softwaretest
Aus- und Weiterbildung zum Certified Tester – Foundation Level nach ISTQB®-Standard
6., überarbeitete und aktualisierte Auflage 2019
ISBN 978-3-86490-583-4
Distributed in the UK and Europe by Publishers Group UK and dpunkt.verlag GmbH.
Distributed in the U.S. and all other territories by Ingram Publisher Services and Rocky Nook, Inc.
Many of the designations in this book used by manufacturers and sellers to distinguish their products are claimed as trademarks of their respective companies. Where those designations appear in this book, and dpunkt.verlag was aware of a trademark claim, the designations have been printed in caps or initial caps. They are used in editorial fashion only and for the benefit of such companies, they are not intended to convey endorsement or other affiliation with this book. No part of the material protected by this copyright notice may be reproduced or utilized in any form, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without written permission of the copyright owner. While reasonable care has been exercised in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
This book is printed on acid-free paper.
Printed in Germany and in the United States.
5 4 3 2 1 0
Preface to the 5th Edition
Bestseller
The first edition of the book was published in German at the end of 2002. Since then, Basiswissen Softwaretest has been the best-selling book on software testing in the German-speaking world.
This 5th edition in English has been comprehensively revised and updated. It is based on the latest (6th) edition of the German-language book and the current 2018 ISTQB® Certified Tester – Foundation Level syllabus.
The Certified Tester training scheme
The Certified Tester qualification scheme is extremely successful and is widely recognized and accepted within the IT industry. It has become the de facto global standard for software testing and quality assurance education. By the end of 2020 there were over 955,000 exams taken and more than 721,000 certifications issued in 129 countries around the world [URL: ISTQB]. Many IT employment ads for beginners and experienced workers reflect this, and certified training is often an obligatory requirement. The Certified Tester scheme is also part of the curriculum at many universities and technical colleges.
Grass-roots knowledge required in the IT world
In spite of this rapid development, there is a lot of the grass-roots knowledge in the field of computer science that doesn’t change very much over the years. We take the Foundations part of our book title seriously and don’t discuss topics that have yet to be proven in everyday practice. Specialist topics such as web app or embedded system testing are not part of these foundations.
What’s new?
This 5th edition of Software Testing Foundations has been comprehensively revised and extended, and its content brought completely up to date.
Side notes are not part of the official syllabus
The latest revision of the ISTQB® syllabus has seen some test techniques shifted to higher training levels, so these are no longer part of the Foundations syllabus. However, we have kept the corresponding sections in the book and have highlighted them as side notes. If you are using the book exclusively for exam preparation you can simply skip the side note sections.
New test techniques included
Many readers have told us that they use the book for reference in their everyday work scenarios. This is why we have included a number of additional test techniques that do not appear in the Foundations syllabus. These include techniques such as pair-wise testing that weren’t covered in previous editions.
The case study that illustrates the implementation of the test techniques has been adapted and comprehensively updated.
We have revised the lists of standards to reflect the changes made by the introduction of ISO 29119, and all the URLs referenced in the text have been updated too.
Online resources
Any future changes to the syllabus and the glossary that affect the book text can be found on our website [URL: Softwaretest Knowledge], where you will also find exercises that relate to the individual chapters in the book. Any necessary corrections or additions to the book text are also made available at the website.
Thanks
For a book like this, success is rarely down to the authors alone, and we would like to thank all our colleagues at the German Testing Board and the International Software Testing Qualifications Board, without whom the Certified Tester program would never have achieved the global success that it enjoys. Many thanks also to Hans Schaefer, our co-author of the previous four editions of the book, for his constructive cooperation.
We would further like to thank our readers for their many comments and reviews, which have encouraged us during our work and motivated us to keep getting better. Heartfelt thanks also go to our editor Christa Preisendanz and the entire team at dpunkt.verlag for years of successful cooperation.
We wish all our readers success in the practical implementation of the testing approaches described in the book and—if you are using the book to prepare for the Certified Tester Foundation Level exam—we wish you every success in answering the exam questions.
Andreas Spillner and Tilo Linz
May 2021
Foreword by Yaron Tsubery
The software systems industry continues to grow rapidly and, especially over the last two decades, exponentially. Market requirements and a growing appetite for exciting new challenges have fuelled the development of new software technologies. These new opportunities affect almost everyone on our planet and reach us primarily via the internet and, subsequently, via smart devices and technologies.
The need for software that is easy to create and maintain has caused many key industries—such as health, automotive, defense, and finance— to open up and become visible to the world via applications and/or web interfaces. Alongside these traditional domains, new types of services (such as social media and e-commerce) have appeared and thrived on the global market. The rapid growth and enormous demands involved in introducing new software-based products that greatly impact our lifestyles and our wellbeing require new and faster ways of producing software solutions.
This situation has created a market in which multiple companies compete for market share with extremely similar products. Such competition is beneficial to consumers (i.e., software users) and, as a result, software-based products have started to become commoditized. Software manufacturers have begun to think more economically, generating increased revenues using fewer resources (i.e., doing more with less). Continual introduction of new products into our daily lives has given rise to the “agile” design and production ethos—driving a cultural change in the tradition software development life cycle, as well as pushing forward the necessity of more and early automatic tests (e.g. as driven by the DevOps movement)—that is increasingly commonplace in today’s software industry, while the business leaders behind software-based products have understood that the world is becoming smaller and that competition is getting fiercer all the time. An increasingly short time to market is essential not only for generating revenue, but also simply to survive in today’s market. Successful and innovative companies understand that they need to put the customer first if they want to maintain product quality, generate brand loyalty, and increase their market share. In other words, the software industry has understood the importance of the customer to the overall product life cycle.
We in the software testing business have always known the importance of quality to the customer, because part of our job is to represent the customer’s point of view. The challenges we face have grown with the complexity of software products, and we sometimes still find ourselves having to justify the necessity for software testing, even if it has become a largely standard practice within the software industry. Recently, the rise of software-based artificial intelligence (AI)—such as software enhancement in robots and autonomous devices—has created a whole new set of challenges.
Software testing is an extremely important factor in the industry. Alongside controlling costs and quality, the main issue is customer focus. Preserving a healthy balance between cost and quality is an essential customer requirement, making it critical to have well-trained and highly professional people assigned to quality and software testing roles. Recruiting skilled professionals is the key to success. The primary factors we look for when recruiting are related to a person’s knowledge and skills. We look at the degree to which a person is aligned with the software testing profession, and with the required technology and industry domain (such as web, mobile, medical devices, finance, automotive, and so on). We also have to ask ourselves whether a person is suited to work in the product domain itself (for example, when candidates come from competitors). Communications and soft skills that fit in with the team/group/company are important too. In the case of industry newcomers, we have to consider how much potential a person has. This book teaches the fundamentals of software testing and provides a solid basis for enhancing your knowledge and experience through constant learning from external sources, your own personal experience, and from others.
When reading an educational book, I expect it to be sequentially structured and easy to understand. This book is based on the Certified Tester Foundation Level (CTFL) syllabus, which is part of the ISTQB® (International Software Testing Qualifications Board) education program. The ISTQB® has created a well-organized and systematic training program that is designed to teach and qualify software testers in a variety of roles and domains. One of the primary objectives of the ISTQB® program is to create professional and internationally accepted terminology based on knowledge and experience. The chapters in the book are designed to take you on that journey and provide you with the established and cutting-edge fundamentals necessary to becoming a successful tester. They combine comprehensive theory with detailed practical examples and side notes that will enhance and broaden your view of software systems and how to test them. This book provides a great way to learn more about software testing for anyone who is studying the subject, thinking about joining the software testing profession, or for newcomers to the field.
For those who already have a role in software testing, the practical examples provided (based on a case study and corresponding side notes) are sure to help you learn. They provide a great basis for comparison with and application to your own real-world projects. This book contains a wealth of great ideas that will help you to build and improve your own software testing skills. The new, revised edition is based on the latest (2018) ISTQB® CTFL, which has been updated to cover agile processes and experience gained from changes that have taken place within the industry over the last few years. It also includes references to the other syllabi and professional content upon which it is based, and an updated version of the case study introduced in earlier editions. The case study is based on a multilayer solution that includes both specific and general technical aspects of software system architecture. The case study in this edition is based on a new-generation version of the system detailed in previous editions, thus enabling you to learn from a practical, project-based viewpoint.
The world is changing fast every day. Some of the technologies that we use today will become obsolete within a few years and the products we build will probably become obsolete even sooner. Software is an integral and essential part of virtually all the technology that surrounds us. Along with growth and expansion in the artificial intelligence (AI) arena and other new technologies that have yet to be introduced, this continual change offers new and exciting opportunities for the software testing profession. We are sure to find ourselves tuning our knowledge and experience in various ways, and we may even find ourselves teaching and coaching not only humans but also machines and systems that test products for us.
The fundamental knowledge, grass-roots experience, and practical examples provided by this book will prepare you for the ever-changing world and will shape your knowledge to enable you to test better and, in the future, perhaps pass on your knowledge to others.
I wish you satisfying and fruitful reading.
Yaron Tsubery
Former ISTQB® President
President ITCB®
Overview
1Introduction
2Software Testing Basics
3Testing Throughout the Software Development Lifecycle
4Static Testing
5Dynamic Testing
6Test Management
7Test Tools
Appendices
AImportant Notes on the Syllabus and the Certified Tester Exam
BGlossary
CReferences
Index
Contents
1Introduction
2Software Testing Basics
2.1Concepts and Motivations
2.1.1Defect and Fault Terminology
2.1.2Testing Terminology
2.1.3Test Artifacts and the Relationships Between Them
2.1.4Testing Effort
2.1.5Applying Testing Skills Early Ensures Success
2.1.6The Basic Principles of Testing
2.2Software Quality
2.2.1Software Quality according to ISO 25010
2.2.2Quality Management and Quality Assurance
2.3The Testing Process
2.3.1Test Planning
2.3.2Test Monitoring and Control
2.3.3Test Analysis
2.3.4Test Design
2.3.5Test Implementation
2.3.6Test Execution
2.3.7Test Completion
2.3.8Traceability
2.3.9The Influence of Context on the Test Process
2.4The Effects of Human Psychology on Testing
2.4.1How Testers and Developers Think
2.5Summary
3Testing Throughout the Software Development Lifecycle
3.1Sequential Development Models
3.1.1The Waterfall Model
3.1.2The V-Model
3.2Iterative and Incremental Development Models
3.3Software Development in Project and Product Contexts
3.4Testing Levels
3.4.1Component Testing
3.4.2Integration Testing
3.4.3System Testing
3.4.4Acceptance Testing
3.5Test Types
3.5.1Functional Tests
3.5.2Non-Functional Tests
3.5.3Requirements-Based and Structure-Based Testing
3.6Testing New Product Versions
3.6.1Testing Following Software Maintenance
3.6.2Testing Following Release Development
3.6.3Regression Testing
3.7Summary
4Static Testing
4.1What Can We Analyze and Test?
4.2Static Test Techniques
4.3The Review Process
4.3.1Review Process Activities
4.3.2Different Individual Review Techniques
4.3.3Roles and Responsibilities within the Review Process
4.4Types of Review
4.5Critical Factors, Benefits, and Limits
4.6The Differences Between Static and Dynamic Testing
4.7Summary
5Dynamic Testing
5.1Black-Box Test Techniques
5.1.1Equivalence Partitioning
5.1.2Boundary Value Analysis
5.1.3State Transition Testing
5.1.4Decision Table Testing
5.1.5Pair-Wise Testing
5.1.6Use-Case Testing
5.1.7Evaluation of Black-Box Testing
5.2White-Box Test Techniques
5.2.1Statement Testing and Coverage
5.2.2Decision Testing and Coverage
5.2.3Testing Conditions
5.2.4Evaluation of White-Box Testing
5.3Experience-Based Test Techniques
5.4Selecting the Right Technique
5.5Summary
6Test Management
6.1Test Organization
6.1.1Independent Testing
6.1.2Roles, Tasks, and Qualifications
6.2Testing Strategies
6.2.1Test Planning
6.2.2Selecting a Testing Strategy
6.2.3Concrete Strategies
6.2.4Testing and Risk
6.2.5Testing Effort and Costs
6.2.6Estimating Testing Effort
6.2.7The Cost of Testing vs. The Cost of Defects
6.3Test Planning, Control, and Monitoring
6.3.1Test Execution Planning
6.3.2Test Control
6.3.3Test Cycle Monitoring
6.3.4Test Reports
6.4Defect Management
6.4.1Evaluating Test Reports
6.4.2Creating a Defect Report
6.4.3Classifying Failures and Defects
6.4.4Defect Status Tracking
6.4.5Evaluation and Reporting
6.5Configuration Management
6.6Relevant Standards and Norms
6.7Summary
7Test Tools
7.1Types of Test Tools
7.1.1Test Management Tools
7.1.2Test Specification Tools
7.1.3Static Test Tools
7.1.4Tools for Automating Dynamic Tests
7.1.5Load and Performance Testing Tools
7.1.6Tool-Based Support for Other Kinds of Tests
7.2Benefits and Risks of Test Automation
7.3Using Test Tools Effectively
7.3.1Basic Considerations and Principles
7.3.2Tool Selection
7.3.3Pilot Project
7.3.4Success Factors During Rollout and Use
7.4Summary
Appendices
AImportant Notes on the Syllabus and the Certified Tester Exam
BGlossary
CReferences
C.1 Literature
C.2 Norms and Standards
C.3 URLs
Index