“Fail to Plan, Plan to Fail” – Winston Churchill
Application testing must always begin with a little planning. In the article, 5 Ways to improve your Testing Skills we discussed the steps that can help you improve your application Testing. Today, let’s take a closer look at what “Planning a Test Strategy” entails.
First, we must analyse what the test approach is going to be. In general, there are 2 ways of undertaking the testing of an Application:
- Proactive, where the test design process is initiated as early as possible in order to find and fix the defects before the build is created.
- Reactive, where the testing is not started until after design and coding are completed.
Now, based on the kind of Project and the available task force, we must design a Test Strategy.
Factors to note while designing the Test Strategy
Features of the Product and its Domain.
- What experience does each member have?
- What are his/her strengths (and weaknesses)?
- What tools are the members proficient in?
- What techniques are they most familiar with?
Risks of the Product and its failure
Legal aspects and Regulations with respect to the Product and Development process.
Let’s survey the major types of test approaches that are commonly used:
- Analytical Approach
Analytical test strategies commonly use some formal or informal analytical technique, usually during the requirements and design stages of the project. A risk based strategy or a requirement based strategy would typically follow an Analytical test strategy.
- Model-based Approach
In this type of approach, if the behaviour of the system under test conforms to that predicted by the model, the system is deemed to be working. Model-based test strategies have in common the creation or selection of some formal or informal model for critical system behaviour, usually during the requirements and design stages of the project.
- Methodical Approach
In this kind of approach, you methodically design, implement and execute tests following this outline. Methodical test strategies have in common the adherence to a pre-planned, systematised approach that has been developed in-house, assembled from various concepts developed in-house and gathered from outside, or adapted significantly from outside ideas and may have an early or late point of involvement for testing.
- Process–or standard-compliant Approach
Process- or standard-compliant strategies rely upon an externally developed approach to testing, often with very little customisation and may have an early or late point of involvement for testing.
- Dynamic Approach
Dynamic strategies, such as exploratory testing, concentrate on finding as many defects as possible during test execution and adapting to the realities of the system under test as it is, when delivered, and they typically emphasise the later stages of testing.
- Consultative or directed Approach
Consultative or directed strategies rely on a group of non-testers to guide or perform the testing effort and typically emphasise the later stages of testing simply due to the lack of recognition of the value of early testing.
- Regression-averse Approach
Regression-averse strategies are a set of procedures – usually automated – that allow them to detect regression defects. A regression-averse strategy may involve automating functional tests prior to release of the function, in which case it requires early testing, but sometimes the testing is almost entirely focused on testing functions that already have been released, which is in some sense a form of post release test involvement.
As you can see, there is no one best way to carry out your testing. We suggest that you adopt whatever test approaches make the most sense in your particular situation, and feel free to borrow and blend techniques.