You are on page 1of 2

1 Fundamentals of testing 1

1.1 Why is testing necessary? 1


1.2 What is testing? 11
1.3 Testing principles 18
1.4 Fundamental test process 20
1.5 The psychology of testing 26
Chapter review 31
Sample exam questions 32
Exercise: Test psychology 33
Exercise solution 34

CHAPTER 1
Fundamentals of testing
n this chapter, we will introduce you to the fundamentals of testing: why testing is needed; its
limitations, objectives and purpose; the principles testing; the process that testers follow; and
some of the psychological
factors that testers must consider in their work. By reading this chapter you'll
gain an understanding of the fundamentals of testing and be able to describe
those fundamentals.
1.1 WHY IS TESTING NECESSARY?
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. (K2)
2 Distinguish between the root cause of a defect and its effects. (K2)
3 Give reasons why testing is necessary by giving examples. (K2)
4 Describe why testing is part of quality assurance and give examples of
how testing contributes to higher quality. (K2)
5 Recall the terms 'mistake', 'defect', 'fault', 'failure' and the correspon
ding terms 'error' and 'bug'. (Kl)
6 Explain the fundamental principles in testing. (K2)

1.1.1 Introduction
In this section, we're going to kick off the book with a discussion on why testing
matters. We'll describe and illustrate how software defects or bugs can cause
problems for people, the environment or a company. We'll draw important dis-tinctions between
defects, their root causes and their effects. We'll explain why
testing is necessary to find these defects, how testing promotes quality, and how
testing fits into quality assurance. In this section, we will also introduce some
fundamental principles of testing.
As we go through this section, watch for the Syllabus terms bug, defect, error,
failure, fault, mistake, quality, risk, software, testing and exhaustive testing.
You'll find these terms defined in the glossary.You may be asking 'what is testing?' and we'll
look more closely at the defi-
nition of testing in Section 1.2. For the moment, let's adopt a simple everyday-
life usage: 'when we are testing something we are checking whether it is OK'.
We'll need to refine that when we define software testing later on. Let's start by
considering why testing is needed. Testing is necessary because we all make mis-
takes. Some of those mistakes are unimportant, but some of them are expensive
or dangerous. We need to check everything and anything we produce because
things can always go wrong - humans make mistakes all the time - it is what we
do best!
Because we should assume our work contains mistakes, we all need to check
our own work. However, some mistakes come from bad assumptions and blind
spots, so we might make the same mistakes when we check our own work as we
made when we did it. So we may not notice the flaws in what we have done.
Ideally, we should get someone else to check our work - another person is more
likely to spot the flaws.
In this book, we'll explore the implications of these two simple paragraphs
again and again. Does it matter if there are mistakes in what we do? Does it
matter if we don't find some of those flaws? We know that in ordinary life, some
of our mistakes do not matter, and some are very important. It is the same with
software systems. We need to know whether a particular error is likely to cause
problems. To help us think about this, we need to consider the context within
which we use different software systems.
1.1.2 Software systems context
Testing Principle - Testing is context dependent
Testing is done differently in different contexts. For example, safety-critical software is
tested differently from an e-commerce site.
These days, almost everyone is aware of software systems. We encounter them
in our homes, at work, while shopping, and because of mass-communication
systems. More and more, they are part of our lives. We use software in day-to-
day business applications such as banking and in consumer products such as
cars and washing machines. However, most people have had an experience with
software that did not work as expected: an error on a bill, a delay when waiting
for a credit card to process and a website that did not load correctly are
common examples of problems that may happen because of software problems.
Not all software systems carry the same level of risk and not all problems

You might also like