Introduction to Software Testing: The Car Delivery Analogy
- Get link
- X
- Other Apps
The
Fundamentals
of Testing.
A level of expectation is set the moment you walk into the showroom.
You would not expect to take delivery from the showroom with a scratch down the side of the vehicle. The car should have five wheels, a steering wheel, an engine and all the other essential components.
It should come with appropriate documentation, with all pre-sales checks completed and passed satisfactorily. The car you receive should be the car described in the sales literature — it should have the correct engine size, the correct colour scheme, and whatever extras you have ordered.
Performance in areas such as fuel consumption and maximum speed should match published figures.
Pre-sales
checks
passed.
Brochures, test drives, sitting in the driving seat — all set a baseline of expectation. Deviation is the exception, not the rule. You get exactly what was described.
Delivered
not working
— often.
This kind of expectation seems not to apply to new software installations. Examples of software being delivered not working as expected, or not working at all, are common.
Software testing is neither complex nor difficult to implement, yet it is a discipline that is seldom applied with anything approaching the necessary rigour to provide confidence in delivered software.
Software testing is costly in human effort or in the technology that can multiply the effect of human effort, yet is seldom implemented at a level that will provide any assurance that software will operate effectively, efficiently or even correctly.
Software should operate effectively, efficiently, and correctly.
Seldom is testing implemented at a level that will provide any assurance across all three dimensions. Each represents a different facet of software quality — and each can fail independently.
Effectively
The software does what it is supposed to do. It meets its requirements and fulfils its intended purpose in the real world.
Efficiently
The software performs its functions without unnecessary resource consumption — time, memory, bandwidth, or processing power.
Correctly
The software produces the right outputs from the right inputs. Free from defects that cause incorrect or unexpected behaviour.
We accept in software
what we'd never
tolerate in a car.
- Get link
- X
- Other Apps
Comments
Post a Comment