Precision and Accuracy
As a software tester, it’s important to know the difference between precision and accuracy. Suppose that you’re testing a calculator. Should you test that the answers it returns are precise or accurate? Both? If the project schedule forced you to make a risk-based decision to focus on only one of these, which one would you choose?
What if the software you’re testing is a simulation game such as baseball or a flight simulator? Should you primarily test its precision or its accuracy?
Verification and Validation
Verification and validation are often used interchangeably but have different definitions. These differences are important to software testing.
Verification is the process confirming that somethingsoftwaremeets its specification. Validation is the process confirming that it meets the user’s requirements. These may sound very similar, but an explanation of the Hubble space telescope problems will help show the difference.
In April 1990, the Hubble space telescope was launched into orbit around the Earth. As a reflective telescope, Hubble uses a large mirror as its primary means to magnify the objects it’s aiming at. The construction of the mirror was a huge undertaking requiring extreme precision and accuracy. Testing of the mirror was difficult since the telescope was designed for use in space and couldn’t be positioned or even viewed through while it was still on Earth. For this reason, the only means to test it was to carefully measure all its attributes and compare the measurements with what was specified. This testing was performed and Hubble was declared fit for launch.
Unfortunately, soon after it was put into operation, the images it returned were found to be out of focus. An investigation discovered that the mirror was improperly manufactured. The mirror was ground according to the specification, but the specification was wrong. The mirror was extremely
precise, but it wasn’t accurate. Testing had confirmed that the mirror met the specverificationbut it didn’t confirm that it met the original requirementvalidation.
In 1993, a space shuttle mission repaired the Hubble telescope by installing a “corrective lens” to refocus the image generated by the improperly manufactured mirror.
Although this is a not a software example, verification and validation apply equally well to software testing. Never assume that the specification is correct. If you verify the spec and validate the final product, you help avoid problems such as the one that hit the Hubble telescope.
Quality and Reliability
Merriam-Webster’s Collegiate Dictionary defines quality as “a degree of excellence” or “superiority in kind.” If a software product is of high quality, it will meet the customer’s needs. The customer will feel that the product is excellent and superior to his other choices.
Software testers often fall into the trap of believing that quality and reliability are the same thing. They feel that if they can test a program until it’s stable, dependable, and reliable, they are assuring a high-quality product. Unfortunately, that isn’t necessarily true. Reliability is just one aspect of quality.
A software user’s idea of quality may include the breadth of features, the ability of the product to run on his old PC, the software company’s phone support availability, and, often, the price of the product. Reliability, or how often the product crashes or trashes his data, may be important, but not always.