ADAPT-R Automation Cycle

This article will showcase a simplified efficient Agile Automation cycle which could be easily implemented and followed by any testing project who wishes to automate their project along with the ADLC Cycle. It will present some automation approaches these could be adapted with ease in any project to increase

 

 

Analyze what’s required

Analysis of project BRD’s, wire-frames should start as a very beginning activity and should have involvement of all testers. Involving team in initial phase gives team a better understanding of the project and helps them to gain much confidence to be comfortable with the application. Once team is comfortable with the application outline, analyzing the automation feasibility should be the priority. Identify the cases which could be automated and could be covered under the automation scope.Few points should always be kept in mind when trying to analyze the automation scope for any project:

• Be smart, automate that is actually required and helps in reducing the manual efforts. There isn’t need for automating everything from the start of the project.

• Ignore cases that at single time runs for automation.

• Focus on building a strong Smoke and Sanity Regression suites which could be useful and boosts up tester’s confidence.

Dive into Tools & Technology

Picking up the correct tool and technology for the project should be given high importance. There are many factors based on which the tools and technology should be selected.

Some of the important factors to be considered should include technology used for developing the application, budget requirement of the project, understanding of resources on boarded and client’s expectations if any.

All about Planning

Once requirements are analyzed, tools and technologies for automating the project and finalized, we can move ahead towards the most critical phase of cycle i.e. “Planning”. Proper planning of the entire automation cycle keeping in mind all the factors is what will march the project towards the finish line.

Test design and architecture should be laid to get the entire project life cycle overview. All the stakeholder involved in different phases of cycle should be included in the architecture with required approvals.

Test Plan document should clearly show the project path with all milestones across the project, it should show all the test cases that would be covered as part of automation engagement. It should clearly mention all the risks, challenges, background of any dependencies, resources productivity etc.

A clear and transparent Test Plan should be the foundation of the automation cycle circulated across concerned stakeholders.

Info

Prepare a Framework

Tools and technology are decided, Test Plan is on the board. Now comes up the important aspect of the Cycle i.e. to put together a framework that will hold the automation scripts for the project. The framework designed should be capable for generating reports for the project and should have configured capabilities to perform CI/CD for the project.

One should keep following aspects in mind while designing a framework; it should not be bulky one, it should be easy to understand by non-technical person too, one should be able to handle it to others if required without much complications.

There are many standard automation frameworks available which could be tweaked as per the project requirement and could be used effectively in the project.

Test Scripting

Once all the prior steps are achieved, once should start with automation scripting for the identified Test Cases. Automation Testers can work as per the test plan with aim of achieving the targets on time.

There should be peer to peer review for the scripts before every push.

One should always follow basic coding standards for scripting as per the language used.

Code should be maintained in a cloud repository and all testers should follow the branch commits with proper pull requests raised before merge.Test Case assigning should consider the R&D time required for any new logic. Not all the tester should be engaged in R&D at same time.

 

Report

Followed by scripting are the Reports which will be visible/showcased to all the stakeholders. After all types of testing are performed, the reports generated can showcase the pass and fail percentage of the cases and can confirm whether executed test scripts/procedures can identify error.

We can use the html reports generated within the framework or once can opt for more efficient third party tools like Report Portal to generate better readable reports.

Generating an analyzed and simplified report which could be easily readable by any stakeholder is really aspect of Automation Cycle. Proper messages should be maintained in the reports (if required).

Regular auto mails triggered to client on build deployments with a Regression results give an additional confidence to client on his investment.

Perform CI/CD for the project once we scripting is completed. Once can integrate the scripts with Jenkins to run the automatic schedule build. For large scripts we can use grid options available from AWS or Azure to run multiple sessions using Dockers.

Automation in Agile World: 

 

With more and more projects adapting towards ‘Agile’ methodologies, there are few thing which should be kept in mind and should be part of Automation Cycle:

• Automation scripting should start in parallel with development. There should be mutual understanding between developer and tester for better functioning of Cycle.We could follow peer to peer tagging approach where a tester could be tagged to few developers to get more insight of regular development to proceed with automation scripting.

• There should be a developer and tester meet before the sprint start to come up with automation scope of the ticket along with development activities.

• Sometimes it might take time for development activities, which might give spare time to testers. Testers should utilize this time to work parallel on developing Smoke and Sanity Regression Suites apart from developing the regular automation scripts.

• There should be a Regression Suite Update meet at every Sprint end to analyze it there is any new scenario required to be added in regression suite.

• This shift left parallel approach of developing the automation scripts will give an advantage not only to testers but even to developers to utilize scripts for their unit testing.

Approaches to enhance Continue Automation Agile Cycle:

• Follow Test-Driven Development: Choose test-driven development in which tests are written even before product code is created. This gives a head-start to the entire project since the test scripts and product features are created simultaneously. Thus, testers do not need to revise or recreate the test scripts in case there are some changes in the software.

• Create Scenario/Story-based Test Cases: Many times, detailed specifications are not available to users, unlike the conventional development model. In these cases, tests are created using specific scenarios and stories rather than based on a strict set of cases. With the help scenario-based tests, testers can cover a wide range of tests that may not be necessarily documented.

• Test from Customer Perspective: Testing from the customer perspective would help you ensure the quality of the product is standard and it meets their expectations. Being an agile tester, it is important that you understand how the end user will interact with the application. Dividing application based on its architecture and customer expectation will help you test critical issues that are likely to affect the end-users experience.

• Perform Coverage-based Test Automation: While testing in an agile environment, it is important to concentrate on code coverage runs since it allows you to analyze, identify and trace the tests and find out the critical areas requiring attention. Coverage-based testing also helps in attaining accuracy and depth in tests, allowing your team to be more productive.

• Be Prepared for Changes: Agile has been always about making incremental and sequential changes in apps and releasing them in sprints. Thus, for testing in an agile environment, you have to be ready to make changes in test requirements and scenarios as and when your application undergoes changes.

About the Author

Rahul

Rahul Dadhich, a young enthusiastic Tester working as an Associate in Cognizant Technology Solutions with almost five years of experience in Software Testing. Have worked across different phases of STLC with working exposure of both Functional as well as Automation Teams.
Find out more about @rd101rahul