Software Testing: General Testing Principles
- Get link
- X
- Other Apps
General
Testing
Principles.
Testing is a very complex activity, and it can be difficult to do well.
of bugs
testing
testing
clustering
paradox
dependent
of errors
Testing shows
the presence
of bugs.
Running a test can only show that one or more defects exist. Testing cannot show that the software is error free. Consider the top 10 wanted criminals website — no functional defects, yet the website failed.
Exhaustive
testing is impossible.
For large complex systems, exhaustive testing is not possible. Even small pieces of software have too many data combinations. Risk and priorities are used to concentrate on the most important aspects.
The earlier a problem is found, the less it costs to fix.
As a deployment date approaches, time pressure increases dramatically. The earlier the testing activity is started, the longer the elapsed time available. Testers do not have to wait until software is available to test.
Many problems can be traced back to missing or incorrect requirements. Creating tests early highlights these issues — are requirements testable? Are they ambiguous or missing?
Approximately 80% of the problems are found in about 20% of the modules.
In a large application, it is often a small number of modules that exhibit the majority of the problems. Testing should target these areas — but must still search diligently elsewhere.
Running the same set of tests continually will not continue to find new defects.
Developers will soon know that the test team always tests the boundaries of conditions, so they will test these before delivery. Continuing to use the same test set results in decreasing effectiveness.
Using other techniques will find different defects. Any regression test set needs to change to reflect business needs and current risks.
Mortgage
calculator.
An application for calculating the length of a mortgage. Important, but limited scope. Lower investment in testing required.
Air traffic
control.
We need to test with far more rigour. The higher the possibility of losses, the more we need to invest in testing before implementation.
For an e-commerce site, we should concentrate on security aspects. Can payment be made with an invalid credit card? Security testing is a specialist area, not appropriate for all applications.
Software with no known errors is not necessarily ready to be shipped.
Does the application under test match up to the users' expectations of it? The fact that no defects are outstanding is not a good reason to ship the software.
Before dynamic testing has begun, there are no defects reported against the code delivered. Does this mean that software that has not been tested — but has no outstanding defects against it — can be shipped? We think not!
Not all obvious, but essential.
- Get link
- X
- Other Apps