7 Principles of testing (as set out by the ISTQB)
One of the most crucial elements of software development is testing. This can be extremely difficult to structure correctly so as to ensure maximum efficiency. As a result, it is always worth going back over your processes and methodology. This is to check that best practice is being adhered to, something the team at eTestware regularly do. A good starting point is the International Software Testing Qualifications Board’s (ISTQB) list of the 7 principles of testing.
Testing shows the presence of defects, not their absence
The objective for a testing team must be to confirm that products / applications being tested can function to meet end user needs. That plus the fact they must stand up to business requirements. It is not to prove that it is defect or error free. In the software testing industry, it is accepted that this is virtually impossible. Instead, a wide variety of testing types and different methodologies are deployed. Testers must continuously search for and reveal hidden defects.
Exhaustive testing is impossible
It is a simple fact that exhaustive testing would literally take an unlimited amount of effort. This effort would no doubt prove to be highly ineffective and would fall outside of the project timeline. Instead, different techniques are prioritised and then used to test specific combinations. This ensures the optimal amount of testing based on the risk assessment of what is being tested. One of the most important skills a testing expert possesses is the ability to identify the most important functions to test.
Early testing saves time and money
The testing process should begin at the earliest stage possible. This is so that any defects or errors are detected as soon as possible. A quick start allows you to limit the amount of issues discovered during the later stages of testing. This saves money. What is the earliest stage possible? Generally speaking, you should make a start once the requirements of the test have been defined.
Defects cluster together
During testing, it might be that the majority of defects discovered are related to a small number of modules. These modules might be particularly complex, or they could feature legacy code but whatever the reason, this is essentially the software testing world’s version of the Pareto Principle – i.e., 80% of the defects will be found within 20% of the modules being tested.
Knowing about these modules can be very useful for testers, as they can then concentrate their efforts on these critical areas.
Beware of the pesticide paradox
This is a principle stating that if the same set of tests are executed repeatedly, they will eventually be unable to reveal new defects. It is based upon the theory that when crops are continually exposed to pesticides, insects eventually build an immunity to it, and to combat it testers must ensure that they constantly review and revise their test cases.
Experienced testing teams will usually vary their techniques and approach, adding new modifications and scenarios to ensure the maximum efficiency.
Testing is context dependent
Testing is very much dependent upon context, as the test ‘subject’ will require a specific type of approach; for example, an application designed for use in the cruise industry will be quite different to one in the insurance industry.
Absence-of-errors is a fallacy
It is possible that software which has been tested and found to be 99% bug-free can still be unusable, this often due to the system being tested for the wrong requirement. As we saw in the very first principle, testing is not only about identifying errors or defects but it is also used to assess whether or not the business needs are being met. Discovering and rectifying these errors is virtually useless if the system does not fulfil the requirements of the end user.
So there you have it, the 7 principles of testing.
As part of theICEway ecosystem of companies, we are proud to work alongside clients from cruise & travel and healthcare, sharing our software testing knowledge and experiences with their own teams in a collaborative environment.