Introduction
Today, the software methodology has migrated from SDLC to Agile to make the model more adaptive to the last minute changes. Though the Agile methodology is practiced widely across the software industries but still testing phase is a very important phase and there cannot be any substitute to it. As we write the test strategy in SDLC, the same test strategy is expected for the Agile model. Test strategy in the Agile model cannot be unstructured but concise and to the point.
At the time of writing test strategy irrespective of SDLC or Agile model, it is very important to consider the following aspects of the project under test.
#. Need to understand the end users:
It is very important to know about the end users before writing the test strategy. After knowing about the end users in terms of target audience such as adults, old age people, etc. one can decide about the look and feel of the UI. It is something the test automation cannot fetch appropriate result but only an experience manual tester can do. It provides us an idea of the extent of automation testing and manual testing required for that project. Therefore, it is very important to know about the end users.
#. Exploratory Test is a good idea:
Exploratory testing is a good idea to understand an application under test in very less time and enables the fastest discovery of the defects. When an application is handed over for testing, the testers are expected to understand its end to end flow which can only be achieved through manual testing and exploratory testing. Once the application is known to the tester then it will be the quickest for them to write down the test automation scripts and create a balance in the overall testing aspect of the software application.
#. Scope prioritization of key features:
Test strategy document should have the priority decided for the testing of the key features. The product owner decides the budget for the project and the test strategy should be feasible within the budget irrespective of how the key features are tested through automation or manual testing. The testing should complete within the allocated budget without any compromise in the testing of the key features.
#. Knowledge of the system architecture:
It is very important to have the knowledge of the system architecture to the testing team. Does it provide an idea about how to test the system? And what to test in the system? It lays down the roadmap to test the entire system after thinking from the point of view of the end users. It is advised to define the test architecture as per the system’s high-level architecture so that the test architecture can be adapted easily to any new last minute change in the agile methodology.
#. Outline Test Automation Scope:
We cannot achieve 100% test automation for any project and therefore, it is important to outline the percentage of test automation and the manual testing required. Test automation is recommended from the regression point of view in the iterative releases of the software product. But there should be a strong focus on testing the functional aspect of the application for the first time. It can be done either by automation testing or manual testing. Sometimes both approaches are recommended where the manual testing is done for the first time which is automated for the future regression testing in order to save the test cases execution time and speed up the regression testing process.
#. Beware of the flaky tests in your test Automation:
Test automation results become unreliable when there are flaky tests in it. The test automation scripts should be diligently tested against the valid test data to make sure they are not flaky. In case any flaky test is observed in the test automation suite then it should be detected diligently and eliminated immediately as their invasion may fall our test scripts to become out of control.
#. Choose independent data for the testing:
There is a saying in the computer world i.e. GIGO (Garbage in and Garbage Out). Therefore, it is very important to choose an independent data which is reliable and can generate accurate test results. Incorrect test data is one of the contributing factors that make our test automation flaky. There are many options available in today’s world such as DbUnit, in-memory databases, etc. which can help in the generation of independent data for the unit testing or test automation scripts.
#. Automate only the eligible test cases but not all:
It is advised to refrain from automation of the test cases which are not required, as manual testing is not a bad option for those test cases. Forceful automation of the test cases where it is not required is one of contributing factor to an incorrect test strategy and it should be avoided.
#. Automation of the test environment:
Many organizations are now focussed on having a complete automated test environment which looks similar to the production environment. Such environment follows the release and builds process in CICD pipeline i.e. Continuous Integration and Continuous Deployment. Such a test environment is very useful in the test automation process where the deployed build gets automatically subjected to the test automation suite and generate the automatic test results. Not only this, such a test environment can be used to conduct performance testing as the hardware configuration of the test environment is chosen similar to the production environment hardware configuration.
#. Quick insight into the quality of your software application:
The test environment should be able to provide quick feedback on the overall software application quality for any iterative release by following the stable tests and green build policy. The generated test report should be able to capture a list of test cases executed with the summary of the past and failed test cases. The report should also record the cause of the test failures to make sure that if they are introduced in the new build due to the recent code changes or due to some environmental issues.
Conclusion
Test Strategy is a must-have document for the testing of any software application irrespective of the test model adopted for the software testing.
⇓ Subscribe Us ⇓
If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below:
Happy Testing!!!
- V Model
- Why testing should start early in software development life cycle?
- Software Test Estimation – 10 Tips On How To Estimate More Accurately
- What is Decision Table in Software Testing With Example?
- Start Testing Process Before Testing Starts
- How Tester Add Values In Agile Project?
- Definitive Guide To Writing Good Agile User Stories
- How To Overcome Agile Testing Challenges!!
- Why Exploratory Testing Is Important In Agile Projects?
- Future of Testing – How to fail and learn from it