This document discusses the context-dependent nature of software testing and the varying levels of risk associated with different software systems. It notes that while some software problems are minor, others can be costly, damaging, or even result in injury or death. As an example, it describes how minor typographical errors on a personal family website would be trivial, but spelling mistakes on a company website could put off potential customers. More significantly, a miscalculation of pesticide quantities by software could have serious financial, environmental, health, and safety consequences for farmers and their businesses. The level of risk depends on both the likelihood and potential impact of problems occurring.
2. 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 have the same impact when they occur. A risk is
something that has not happened yet and it may never happen; it is a potential problem. We
are concerned about these potential problems because, if one of them did happen, we'd feel a
negative impact. When we discuss risks, we need to consider how likely it is that the problem
would occur and the impact if it happens. For example, whenever we cross the road, there is
some risk that we'll be injured by a car. The likeli- hood depends on factors such as how much
traffic is on the road, whether there is a safe crossing place, how well we can see, and how fast
we can cross. The impact depends on how fast the car is going, whether we are wearing
protective gear, our age and our health. The risk for a particular person can be worked out and
therefore the best road-crossing strategy.
3. Some of the problems we encounter when using software are quite
trivial, but others can be costly and damaging - with loss of money,
time or business reputation - and even may result in injury or death.
For example, suppose a user interface has typographical defects. Does
this matter? It may be trivial, but it could have a significant effect,
depending on the website and the defect:
1. If my personal family-tree website has my maternal
grandmother's maiden name spelt wrong, my mother gets annoyed
and I have to put up with some family teasing, but I can fix it easily
and only the family see it (probably).
4. 2. If the company website has some spelling mistakes in the text,
potential customers may be put off the company as it looks
unprofessional.
3. If a software program miscalculates pesticide application
quantities, the effect could be very significant: suppose a
decimal point is wrongly placed so that the application rate is 10
times too large. The farmer or gardener uses more pesticide than
needed, which raises his costs, has environmental impacts on
wildlife and water supplies and has health and safety impact for the
farmer, gardener, family and workforce, livestock and pets. There
may also be consequent loss of trust in and business for the
company and possible legal costs and fines for causing the
environmental and health problems.