Note: This is guest post written by Ulf Eriksson-one of the founders of ReQtest
The strategy and planning are fundamental building blocks of software development life-cycle; whereas quality is always measured with the grade. Fulfilling business expectation and customer satisfaction with no defects is the main aim of testing.
Strategy towards quality product…
To achieve high-quality software within a short time is an objective of every software company. In test planning stage, with the other elements of testing, the automation testing and automation test strategy are always decision-making topics.
Expecting 100% automation from day one is unrealistic test automation strategy. On the other hand, lack of envisioning for enhancement is one of the reasons of automation testing failure. To build the cost-effective automation testing strategy with result oriented approach is always a key to success in automation testing.
Let’s look at few important building blocks of test automation strategy
1. Analysis of software requirement
While deciding the automation strategy, the team should be aware of the software requirements they can automate and those they cannot, and analyze both. To analyze software requirements, they can use a business functional requirement document (BRD). The test team can elaborate software requirements in positive and negative test scenarios. Furthermore, those test scenarios can also be converted into positive and negative test cases. While designing test cases, one should use equivalence partition or boundary value analysis for decision table test design techniques.
2. Tool evaluation
Tools and techniques play an important role in performing test automation and provide quality to the end-user. Tool evaluation also involves licensing cost of tool, maintenance cost, training and support, tools extensibility and tools performance and stability. There are plenty of cost-effective tools available in the market for automating different kinds of application like windows applications, web applications, websites, mobile web applications, native mobile apps, etc.
The following are the top five automation tools which can be used to automate any kind of application:
3. Dedicated automation team
A dedicated automation team is a prerequisite to work on continuous improvement in building an automation suite. The main focus of the team is to optimize the existing automation script and to help the delivery team for a shippable product.
In software development life cycle, environment is a key factor to complete the development within decided timeline. Up and running environment helps team to perform and complete decided activity. The rule of thumb for setting up the environment is as follows – Development and Test environment should be replica of stage environment and stage environment should be replica of production environment. Here, the replica means same configuration of hardware and software on each server.
5. Release management
An incremental and iterative model of release for continuous incremental development and testing activity with the help of automation testing should be included in test strategy. The test team should test the latest version of the application and working code on test environment, and at the same time development team should fix the bugs or defects with new development without any downtime. The dependency on each team and activity will be reduced drastically due to the release management.
6. What to automate?
Mostly, to save time in manual testing, team automates all test cases without considering functional and non-functional requirement. The automation test suite should consist of major functional and non-functional area. The functional and regression test cases should be included in the automated test suite.
7. Time box conversion of manual test cases
Agility should be adopted with the time box activity. Converting manual test cases into automated test cases also helps to cut down the time for doing smoke or BVT testing. It gives quick confidence to the development team and stakeholder about working shippable product.
8. Defect Management
Defect or bugs should be tracked, monitored and fixed/closed. Functional and non-functional defects should be targeted and verified by automated testing. Converting bugs or defect in test cases will be the best practice to get extended coverage in testing. This also gives assurance to stakeholder that every single bug has been retested in each iteration or product deployment.
9. Result oriented approach
Outcome of each automation test run should be result oriented and measurable. This will give confidence about robust automation suite.
10. Quantified and qualified test metrics
Different kinds of KPI and dashboards will help stakeholders to quantify and qualify the software by using test metrics. This will also highlight the quality standards of particular software before it is launched in the market.
11. Automation Maturity Model
Automation maturity model can be the key elements of automation testing. It can be used to revamp automation test strategy. The automation maturity model can be divided into phases such as:
- Initial Phase
- Managed Phase
- Define Phase
- Measured Phase
- Optimize Phase
In the Initial Phase, the prerequisites of automation like gathering requirement analysis, tool evaluation etc. should be completed. In the Managed Phase, siloed automation can be achieved without any central infrastructure. In Define Phase, central automated process across the application life-cycle should be built. In the Measured Phase, collected and analyzed metrics of the automated process should be measured against business goals. Finally, in the Optimize Phase, self-service automation, self-learning using analytics and self-remediation should be addressed in automation maturity model.
12. Optimization of existing resource
Continuous improvement and optimization of the existing automation suite are motivating factors for automation team. Common shared repository helps team to share and save time on building robust automation suite.
13. Reusability of automation script
At the organizational level, code or script and even the framework should be reusable within cross-functional teams. This will help to reduce scripting development efforts.
14. Shippable product within no time
Automation testing is a great key factor to gain and capture volatile market within no time by quality shippable product.
15. Lesson learnt and adopts to change
Lesson learnt while developing software should be captured and documented for future reference. Periodic review of test strategy and based on the positive and negative lesson learnt, test strategy documents needs to be updated and adopted to change.
Understand the building blocks of automation test strategy and you can resolve or avoid these challenges
Deciding the scope of your automation strategy is directly related to the development of an automation suite. Unclear business requirement lead to failure of automation test suite and does not give expected outcome. Test analyst can scope out automation test cases by discussing queries with SME. Most of the time; automation testing covers 90% of test coverage as there are some limitations due to which full 100% automation is not possible.
Test expert can evaluate suggested top five automation test tools. By nature of an application he can recommend tools and techniques for best results. Most of the time, automation testing is targeted for regression testing, functional testing, smoke testing, load and performance testing. Choosing proper tool based on the kind of software application is an important part to achieve expected result.
Overloading automation task on manual test team will not make much progress towards building robust automation test suite because they do not have enough required skills. So dedicated automation test team is preferred.
To avoid high maintenance cost and time one should revisit and update automation test suite based on latest version of the product over the period of time. This activity is a continuous activity to remove stale test cases and upgrade the automation suite by adding new functionality.
Instead of setting long-term goals, short-term goals should be targeted and those should be revisited periodically, i.e. monthly or quarterly. This will help to build a continuous iterative incremental model for making the necessary changes in automation test strategies.
A word about the results you should expect
So let’s quickly touch base on cost-effective and empowered test automation strategy with a result-oriented approach. This can be achieved by identifying functional and non-functional automation test cases, dedicated skilled automation team, time box activity with optimization and iterative incremental methodology for shippable product within no time.
The long-term benefits of deciding proper automation test strategy will be scalability, reusability of common framework across the functional area, agility for continuous improvement, and creating a shippable product to end customer and thousands of satisfied customers!
Do you want to help yourself to design and implement the dynamic automation test strategy? Are you ready? If yes, then take a step ahead towards building automation strategy for shippable quality product within no time!
Ulf Eriksson is one of the founders of ReQtest, an online bug tracking software hand-built and developed in Sweden. Ulf has decades of experience in development and testing and is a lifelong fan of Agile, counting himself as an early adopter of the philosophy which he has abided to for a number of years in his professional life as well as in private.
Ulf’s goal is to life easier for everyone involved in testing and requirements management, and he works towards this goal in his role of Product Owner at ReQtest, where he strives to make ReQtest easy and logical for anyone to use, regardless of their technical knowledge or lack thereof.