The Agile methodology or model develops clear visibility of accomplishing working features way ahead in the project’s life cycle, hence allows:

-Measurement of progress and quality
-Track the feedback and adaption during agile development

The benefit is such that the results are derived earlier than expected; risks are mitigated and thus allowing flexibility for change.

Agile Testing

Agile Testing is a software testing practice which adapts and follows the agile methodology and considers the development as its customer for testing.

Agile Tester Skills

Agile tester plays a major role in the automation of agile software under development. Apart from testing skills, an agile tester must possess specific skills mandatory for performing his duties in the Agile test environment, such as:

–  Have a deep understanding of the domain, features, development process, design, delivery, and deployment
–  Must have skills to understand several stories or features at one time
–  Knowledge of various license or freeware automation tools which suits the business requirement under development

Core Values that forms the Basis for Agile

The thumb rules that govern agile testing at the base level are:

Communication –Communication of Requirements among Developers and testers via quick and small team meetings
Simplicity – Providing simple solutions to things taken first and then move forward with enhancing the features
Feedback- Based on core insight knowledge of the customer, the feedbacks are taken from the customer on a frequent basis
Iterations- The system is broken down to smaller modules which are accomplished within iterations on which the customer has better control

Automation Test Strategy

Automating the Test in agile development is a very critical decision as agile development is time and iteration-based accomplishment which requires decisions against specific questions like When, how, and how much to automate? Although Automation continues to follow its base-lined waterfall model but best practices are required to run it in an Agile environment.

Initiate Automation First than Manual test?

There are always certain test cases or features which are never prone to defects hence can be directly automated. But before this, a quick level of Adhoc / exploratory testing will satisfy the stability of the features hence decision will be taken early to automate them.

Progress Automation with Caution: what to automate- Black box(UI) or White Box?

Automation becomes prone to vulnerability if the importance and usability of the functionality is not identified. Because of frequent changes in the UI design, the idea of automating it could be tedious. Hence for minimal maintenance, the white box testing or changes are less fragile and should be automated first with regular coordination with developers where the frequent changes of vulnerable UI can be handled later on.

Automation Start: Coverage based Automation

With effective development practices in place, automation can generate good results. As the features are delivered under each iteration, the code coverage-based automation focuses on building the step-by-step functional coverage to trace the functional areas which are still pending or remain uncovered. The possibility exists that with the help from developer and customer, the tester can develop their own tool to meet the business requirements else if the suitable tool exists in the market which meets the business requirement demands then its wisely taken.

TDD- Development Reliability and Automation benefit

Test-Driven Development is one of the initial reliable forms of unit testing practice used by developers which helps them develop production code through rapid iterations. Testers can also follow and create their automation tests in a similar manner that it becomes the base for the source code development and hence the following actions can be taken care:

-Code designing at a high or low level
-Writing automated unit test cases
-Executing the unit test cases to ensure that they fail
-Re-executing the unit test cases to make sure this time they pass
-Restructure or organize the production code so that it runs better
-Work in coordination with the development team to choose the right scenarios and implement the same for lower code maintenance and sustainability
TDD helps automation tester verify its own code to make it defect free, robust, and reliable

Automation Code coverage review like Manual test cases

The way testers get their test cases reviewed from Developers or business analysts, similarly, the Automation code coverage against the features developed in agile iterations also needs to be verified so that:
– Detect issues early
– Preventing the Defect(s) repeated history as the defects cycles are reduced
– It helps in reducing the development and test cycle
– Build strong product/feature knowledge for better stability and design
– Helps make the automation code reliable and robust

What should not be automated:

One-time tasks and the exploratory test cases, which probably will never be executed, should not be automated for e.g., configuration and deployment action. Automation of such test cases generally does not get attention or paid off well.

With the above briefs, eventually it’s clear that automation test in an agile environment is very much decision-based activity which requires immediate attention towards What to automate and what to not, which tool should be used, prioritizing the stable and unstable features, code review, communication, and feedback. Not only this, I personally think that one of the major breakthroughs would be, much improved customized frameworks as more and more coordination will exists between developers and testers to achieve each agile iterations and deliver low-risk, high-quality product.

 

Follow us on Aspire Systems Testing to get detailed insights and updates about Testing!

Latest posts by Harvinder (see all)