Relations between software developers, quality assurance personnel, and clients in agile projects are…well, tricky. So the question that arises is, “Is automation really necessary in agile projects or is it also possible to automate cases during non-agile sprints?” The answer, in my experience as a QA professional, is “yes”.
It can be very difficult to achieve development and delivery goals in an agile environment. How do we get everything developed and tested, and also successfully deployed, in a short span of time? This is difficult, but not impossible. Proper planning and meticulous execution are required for the successful delivery of stories.
Here are some of the key areas that we need to work on to achieve our goals, and to be able to deliver quality products with the use of test automation in agile environments.
1. Automation tool selection and framework design
As agile testers, it really is a tough task to select an automation tool. Tool selection plays a vital role in test automation. In agile environments, we need to work along with clients and customers, and so the tool used should be speedy, require less maintenance, and must be easily understandable. Framework design should be flexible enough to allow enhancements as required by new stories.
2. Understanding user stories
As agile testers, we should focus on understanding user stories so that we can create, delete, and rename scenarios, so as to be able to manage the framework easily. We can identify a small piece of business value that a team can deliver in continuous iterations. We should shift focus from writing to talking, and the goals should be understandable by all involved.
3. Time management
a) Time is finite—treat it that way.
- Break down work into short, pre-set periods (around two weeks, perhaps).
- Get feedback at the end of each sprint – it is critical to ensure right direction and provide time to adjust as knowledge is gained and things change.
b) Everyone should know everything—daily stand-ups are critical.
This is the key to making automation successful. The more everyone is aware of what everyone else is doing, the faster the project can progress, and the better everyone integrates as a team toward achieving set goals.
4. Working as a team
Team performance has a much greater impact (by several orders of magnitude) than individual performance. Individuals performing exceptionally well can accomplish work 10 times faster. But teams performing exceptionally well can accomplish work 100 times faster. To be a high-performance team, members should be:
- Transcendent: developing a sense of purpose beyond the ordinary by having self- realized goals
- Autonomous: self-organizing and self-managing
- Cross-functional: have all the skills needed to complete the project. Exchange of information and knowledge becomes easily acquirable with minimal effort
5. Sprint review meeting
When working in an agile environment, each tester and the team as a whole should share what has been accomplished during a sprint, and what can be improved in the next automation cycle. How can we play with the backlogs, and what would the plan be for managing this?
6. Focus on releases
As an agile tester, we need to focus on releases and release dates. It is important from the point of view of agile automation. Because when we talk about automated testing in agile, then we should know our release frequency, and ensure that it is directly proportionate to the number of test automation iterations.