Does Automation = Agile Testing?

Does Automation = Agile Testing?

Often I hear that the Agile testing and test automation is one and the same. In my experience test automation plays an important role in an Agile testing strategy surely, but the ultimate goal has nothing to do with automation, exploratory testing, or any other QA practice. The goal of Agile testing is to make all known levels testing an integrated, natural part of the Agile development process used, be it Scrum, Kanban, ScrumBan, Lean or any other Agile framework.

To me, the most important aspects of Agile are those of communication and collaboration; cross-functional teams together working closely, preferring interaction to documentation. To succeed, quality has to be an integrated part of this process. Engineers that with a QA mindset are essential participants in the very first discussions, at sprint planning meetings and at the daily standups. They continuously scrutinize the product to assess quality levels and issues testing activities proactively, be it with UX designers (usability testing), developers (code reviews, TDD/BDD, unit-testing) and operations (load and security testing).

The Agile testing quadrant created Lisa Crispin gives a good overview of common testing practices and how they come together in an Agile project:

Moving from left to right, testing activities go from supporting development (i.e., checking that stuff works) to critiquing the product (i.e., trying to break stuff). From bottom to top, tests are technology-facing (i.e. testing at the technology level) to business-facing (i.e. testing from the user perspective). Although none of these testing practices name in the quadrants are specifically "Agile", it is when you apply them in an Agile project integrating the practices as part of your Definition of Done for all backlog items.

Now let's add to this the concept of test automation which is the use of special software to control the execution of tests and the comparison of actual outcomes to predicted outcomes. The primary goal of test automation is usually to run a potentially large sets of tests repeatedly to make sure software doesn’t break because of introduced changes. Since most Agile development teams adopt the practice of Continuous Integration, automated tests are executed as part of the continuous integration build process routinely.

As you can see in the above set of quadrants, automation could definitely cover those QA/testing practices that are technology-facing and that support the development team. Automation extends to some degree upwards to business-facing tests then, for example automated UI Tests and rightwards - to tests that are targeted at finding “holes” in the product - such as automated load tests and production monitors. Automation definitely doesn’t make sense where human expertise, intelligence, and assessments are key manual exploratory testing therefore, usability testing and overall acceptance testing still needed and require “out-of-the-box” thinking to provoke the product and identify inconsistencies and irregularities that are impossible to code for in an automated test.

For my the bottom line is the goal of Agile testing is to make all known levels testing an integrated, natural part of the Agile development process. Automation plays a key role to test more efficiently and within every single Sprint which greatly shortens the feedback loop in the development process. I frequently recommend to teams to include test automation of each acceptance criteria listed in the backlog item as part of their Definition of Done. This just gives a good start in your integration of Agile Testing journey.

All views are my own.
By Jim Saliba

Bhushit Joshipura

Software Quality, CISSP

8 年

No. Agility is tighter weaving automation or manual testing into the development cycle. Automation is just one approach of increasing productivity of testing. There are other approaches also - just less celebrated.

回复
Aline Garcia de Miranda

Digital Innovation Manager | Digital Transformation Executive | Business Agility

8 年
回复
Sunil Mundra

Org. Transformation and Enterprise Agility Champion | Change Catalyst | Outcome Accelerator

8 年

Agile Testing is a philosophy which is based on 2 underlying principles: 1. Defect prevention is better than defect identification and management 2. Quality is every single team members' responsibility Automation helps a great deal towards getting faster feedback, and also towards freeing the people from mundane and repetitive non value added work.

Michael Connolly

Exceptionally experienced in the areas of Program Management, Product Development and QA leadership.

8 年

@Jim, having managed several 'Agile QA' organizations I consistently focus on automation as the foundation from which we can go fast. We cannot perform manual regression type testing in a fast paced Scrum environment and must utilize automation as the means to run a consistent set of tests against the system under development. Leveraging Behavior Driven Development (BDD) provides us with a means to model the behavior of the system from a requirements standpoint before we even begin any development. Ensuring that both Dev and QA are working towards a shared understanding of what we are building reduces mis-understood requirements, lowers 'bugs' and provides the QA team with time to manual test the system for more end to end integration type scenarios that are sometimes harder to 'see' from our automation suite. Many in Agile QA will say that manual testing is dead, I disagree, it just has a more focuses nuance for what we need to test.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了