Introduction - Software Testing Foundations: A Study Guide for the Certified Tester Exam (2014)

Software Testing Foundations: A Study Guide for the Certified Tester Exam (2014)

Chapter 1. Introduction

In recent years, software been introduced virtually everywhere. There will soon be no appliances, machines, or facilities for which control is not implemented by software or software parts. In automobiles, for example, microprocessors and their accompanying software control more and more functionality, from engine management to the transmission and brakes. Thus, software is crucial to the correct functioning of devices and industry. Likewise, the smooth operation of an enterprise or organization depends largely on the reliability of the software systems used for supporting the business processes and particular tasks. How fast an insurance company can introduce a new product, or even a new rate, most likely depends on how quickly the IT systems can be adjusted or extended.

High dependence on the correct functioning of the software

Within both embedded and commercial software systems, quality has become the most important factor in determining success.

Many enterprises have recognized this dependence on software and strive for improved quality of their software systems and software engineering (or development) processes. One way to achieve this goal is through systematic evaluation and testing of the software. In some cases, appropriate testing procedures have found their way into the daily tasks associated with software development. However, in many sectors, there remains a significant need to learn about evaluation and testing.

Basic knowledge for structured evaluation and testing

With this book, we offer basic knowledge that will help you achieve structured and systematic evaluation and testing. Implementation of these evaluation and testing procedures should contribute to improvement of the quality of software. This book does not presume previous knowledge of software quality assurance. It is designed as a textbook and can even be used as a guide for self-study. We have included a single, continuous example to help provide an explanation and practical solutions for all of the topics we cover.

We want to help software testers who strive for a well-founded, basic knowledge of the principles behind software testing. We also address programmers and developers who are already performing testing tasks or will do so in the future. The book will help project managers and team leaders to improve the effectiveness and efficiency of software tests. Even those in disciplines related to IT, as well as employees who are involved in the processes of acceptance, introduction, and further development of IT applications, will find this book helpful for their daily tasks.

Evaluation and testing procedures are costly in practice (this area is estimated to consume 25% to 50% of software development time and cost [Koomen 99]). Yet, there are still too few universities, colleges, and vocational schools in the sectors of computer and information science that offer courses about this topic. This book will help both students and teachers. It provides the material for an introduction-level course.

Lifelong learning is indispensable, especially in the IT industry. Many companies and trainers offer further education in software testing to their employees. General recognition of a course certificate is possible, however, only if the contents of the course and the examination are defined and followed up by an independent body.

Certification program for software testers

In 1997, the Information Systems Examinations Board (ISEB) [URL: ISEB] of the British Computer Society (BCS) [URL: BCS] started a certification scheme to define course objectives for an examination (see the foreword by Dorothy Graham).

International initiative

Similar to the British example, other countries took up these activities and established independent, country-specific testing boards to make it possible to offer training and exams in the language of the respective countries. These national boards cooperate in the International Software Testing Qualifications Board (ISTQB) [URL: ISTQB]. An updated list of all ISTQB members can be found at [URL: ISTQB Members].

The ISTQB coordinates the national initiatives and assures uniformity and comparability of the courses and exam contents among the countries involved.

The national testing boards are responsible for issuing and maintaining curricula in the language of their countries and for organizing and executing examinations in their countries. They assess the seminars offered in their countries according to defined criteria and accredit training providers. The testing boards thus guarantee a high quality standard for the seminars. After passing an exam, the seminar participants receive an internationally recognized certificate of qualification.

Three-step qualification scheme

The ISTQB Certified Tester qualification scheme has three steps. The basics are described in the Foundation Level curriculum (syllabus). Building on this is the Advanced Level certificate, showing a deeper knowledge of testing and evaluation. The third level, the Expert Level, is intended for experienced professional software testers and consists of several modules about different special topics. Currently, the first four syllabi are being prepared in the ISTQB and the national boards. The syllabi for “Improving The Test Process” and “Test Management” are available. Syllabi for “Test Automation” and “Security Testing” are on their way. The current status of the syllabi can be seen at [URL: ISTQB].

The contents of this book correspond to the requirements of the ISTQB Foundation Level certificate. The knowledge needed to pass the exams can be acquired by self-study. The book can also be used to attain knowledge after, or parallel to, participation in a course.

The overall structure of this book corresponds to the course contents for the Foundation Level certificate.

Foundations

In chapter 2, “Fundamentals of Testing,” the basics of software testing are discussed. In addition to the motivation for testing, the chapter will explain when to test, with which goals, and how intensively. The concept of a basic test process is described. The chapter shows the psychological difficulties experienced when testing one’s own software and the problems that can occur when trying to find one’s own errors.

Testing in the software life cycle

Chapter 3, “Testing in the Software Life Cycle,” discusses which test activities should be performed during the software development process and when. In addition to describing the different test levels, it will examine the difference between functional and nonfunctional tests. Regression testing is also discussed.

Static testing

Chapter 4, “Static Test,” discusses static testing techniques, that is, ways in which the test object is analyzed but not executed. Reviews and static analyses are already applied by many enterprises with positive results. This chapter will describe in detail the various methods and techniques.

Dynamic testing

Chapter 5, “Dynamic Analysis – Test Design Techniques,” deals with testing in a narrower sense. The classification of dynamic testing techniques into black box and white box techniques will be discussed.

Each kind of test technique is explained in detail with the help of a continuous example. The end of the chapter shows the reasonable usage of exploratory and intuitive testing, which may be used in addition to the other techniques.

Test management

Chapter 6, “Test Management,” discusses aspects of test management such as systematic incident handling, configuration management, and testing economy.

Testing tools

Chapter 7, “Test Tools,” explains the different classes of tools that can be used to support testing. The chapter will include introductions to some of the tools and suggestions for selecting the right tools for your situation.

The appendices include additional information on the topics covered and for the exam.

Appendix A contains explanations of the test plan according to IEEE Standard 829-1998 [IEEE 829] and 829-2008. Appendix B includes important notes and additional information on the Certified Tester exam, and appendix C offers exercises to reinforce your understanding of the topics in each chapter. Finally, there is a glossary and a bibliography. Technical terms that appear in the glossary are marked with an arrow [→] when they appear for the first time in the text. Text passages that go beyond the material of the syllabus are marked as “excursions.”