Seven Tips for Winning at Test Automation In Agile Projects

The tools are important, BUT the way you setup your Agile team is more important if you're going to turn automatoin into an effective habit.

Break Free of Billable Hours.

Still freelancing and living project-to-project? Has your earning potential plateaued? Stuck wearing all the hats and doing everything yourself?

If you wish you'd never have to write a lengthy proposal again or take a client who doesn't value your work, then you're not alone.

Every freelancer hits these challenges at some point in their career. Even raising your rates and chasing after bigger fish won't get you where you need to go.

“ Motivation is what gets you started. Habit is what keeps you going. “

– Jim Rohn

In this game there’s a high probability that your efforts will be wasted. Test automation initiatives are fraught with pit falls. Below we set out some proven concepts to help you win.

7 Key Concepts

Invest in a dedicated Test Automation Engineer

The FIRST practical piece of advice I can give you is to employ dedicated (and I mean 100% dedicated) test automation resources on your agile project. A dedicated test automation engineer gives focus, clear responsibility and accountability. If you can get a dedicated test automation engineer on your project... DO IT! It's the best solution. Maybe you have multiple Agile teams, and you have the finances to invest in 'one' dedicated test automation engineer. If that's the case then you can rotate that person through all the teams (maybe on say a monthly basis) to help skill up each team in turn. This works well too because you tend to end up with a consistent approach across all teams too. However, for many teams, dedicated test automation resources are a luxury. If this is the case for you the following points will be even more critical.

Setup to Build a Habit Across the Team

When you don't have the luxury of dedicated resources, building momentum and the automation habit is tough. Trust me, the enthusiasm will run out. When the enthusiasm runs out it's game over. You've just wasted a shed load of time, effort and money. NO enthusiasm = NO return on your investment. Understand that the critical component here is .....to capitalise on that initial enthusiasm and build a HABIT. Test automation needs to become a habit because this game is a different beast to anything else you're doing. Why? Well... I. This is not something you setup up once and leave on autopilot ... it demands continuous input. You need to be maintaining and creating new tests continuously. II. You're always playing catch up, creating automated tests for the previous sprint. It's easy to lose focus and get distracted by the priorities of the current sprint. III. The benefits aren't immediate so it's easy to let it drop to the bottom of the priority list. When the heat is on for releasing at the end of the sprint automation won't be front of mind. There are big benefits to be gained but you won't see them in the short term. You need to invest continuously and then see the pay back over time. The only way to see a regular payback is to invest regularly. And that means building the HABIT of investing. Invest in maintaining and creating automated tests regularly. In those first few months you need to convert your initial enthusiasm into a consistent HABIT. A HABIT where it's second nature to add, maintain and report on your automated tests - day in, day out. There's a great book on building habits called, XXYYZZ. In this book a few of the key points they pull out included... A. ....... B. ....... C. ....... Understanding these points, and acting on them, will make a huge difference to you succeeding with automated testing in the long term. DON'T UNDERESTIMATE THESE FACTORS!!! Trouble is, Habits don't just create themselves. You want to structure things to make it easy to form this habit. The next few ideas are designed to help you cultivate the test automation habit.

Track Test Automation Separately

yeah, yeah... I know. The whole point of Agile is that you have a contained block of work that's delivered as one piece at the end of the sprint. Trouble is the automated testing effort gets lost. No one tracks it and it falls off the radar. You could set the test automation work up in it's own sprints (e.g. with it's own burn down charts). This gives visibility and clarity on what effort is going in and what results are coming out. If that's too radical for you then at least find a way of tagging and tracking the test automation work within your sprints. You'll want to make the work in this domain very visible. YOU WANT TO KNOW WHEN A SPRINT HAS ONLY DELIVERED 1 AUTOMATED TEST. You want to know when the effort going into automated testing is starting to dwindle. Make it visible... put up a physical chart showing the progress. This goes with the concept in the XYZ book of ABCDE. There's a lot more to habit that you'd imagine (we'd recommend the book xxxxx if you truly want to understand how to master building habits).

Build repeatable processes

Create a daily and weekly check lists, where each test automation task is on a list and is allocated specifically to someone. A check list, especially a physical one, helps to build a habit. Yes, have these tasks tracked in your sprints. Just make it more visible too. You see, when you put this on your standard sprint planning board the automation tasks start to blur into all the other tasks. This is NOT good for building a habit. Again, it's far better if that check list is physical. Put it up on a board. have the checks on post-it notes and hand them out the team members. Set daily tasks and checks to ask the questions... - did everything in the last automation run pass? - do we need to improve the stability of our tests? - how long will it take to automate this test? - are we getting a RoI on a particular test - would a new automated test pick up an issue in the latest release It's surprising how quickly people stop asking basic questions like this when the initial enthusiasm fades out. You need that daily set of to-do items that each team member focuses on the moment they sit down at their desk in the morning.

Don't Make Everyone in your Agile Team Responsible

In some teams there seems to be this chain of thought that says automated testing should be the responsibility of the whole Agile team. Developers, testers and BA's should all be responsible for delivering automated tests in your sprints. I STRONGLY DISAGREE WITH THIS!!! Why? Automated testing is difficult. It doesn't matter what tools you use ... it's difficult. It's an art you need to perfect and a skill you need to master. You don't expect your BA's to write code. You don't expect your developers to execute your UAT tests. _So don't expect developers or BA's to be responsible for the automated tests._ No single point of responsibility means no accountability. And no accountability means no one is on the hook when you don't deliver automated tests. The 'responsibility' should always lie with an individual tester. Make ONE person responsible for the delivery! One person who knows what they are doing and that can be held to account. When you're starting out it's worth making one person responsible for automation and even PULLING THEM OUT OF THE AGILE TEAM. Give the person responsible a fighting chance by letting them focus totally on the job! Then as an automated regression pack starts to build out you'll find people become dependent on it. Then the process starts to become a habit. Then, as automation becomes more a way of doing things, move the person back into the sprint team. It's kind of a sneaky way to get automation embedded in your way of working.

Developers should NOT be assigned to write automated tests

Firstly understand that creating automated tests is coding. I don't care how pretty the automation tool GUI is, or how easy the tool makes it to create automated tests. At the end your automated tests are code. And that requires some knowledge of coding. The natural thought is is to get your developers to write your automated tests. But I'll give you three good reasons why you shouldn't do this... 1. Developers don't want to become testers (even automated testers). A developers motivation for writing automated tests will always be lacking. That's not a criticism of developers... that's just the way it is... you may as well accept it. 2. Developers don't have that tester mind set. That's why we still have these defined roles, even in Agile. Testers bring a different mind set, more critical, to the project. 3. Developers will always have a list of tasks as long as your arm and automated tests will always be at the bottom of that list in terms of priorities. When a developer is up against a release deadline writing automated tests at the end of a sprint in NOT going to be front of mind. I'm not saying developers shouldn't be involved in the process. A developer guiding and advising a tester that's writing automated tests is a strong combination. Just don't give the responsibility to the developer. Either give the responsibility to a dedicated test automation engineer or skill up your testers. _On the whole a tester is a lot more enthusiastic about becoming an automation engineer than a developer is about becoming a tester_ You need to work with that in mind .... not fight it. THE EXCEPTION TO THE RULE: If you're going down the BDD route .... and if you are get in touch and we can help you out with a BDD coach. In short though you're unlikely to make automation a habit if you give the task to someone who doen't really want to do it.

Setup a Dedicated Test Automation Team

You can either make it easy for your team to embrace new habits, or you can structure things so that you continuously (unknowingly) put road blocks in their way. Just pilling more tasks onto the team and expecting them to deliver is not effective. You're actually helping to ensure that automated testing DOESN'T become a good habit. Set up a dedicated test automation team that acts as a supplier to all your Agile teams. Create this specialist automation team to support and deliver a continuous test capability to all you Agile teams. AGILE DOES NOT PROHIBT YOU FROM DOING THIS!! The Agile Manifesto isn't some pescriptive document that states that you should run your test automation in a particular way. In fact if you read the manifesto it doesn't even mention test automation. The Agile Manifesto just sets the goal of delivering working software frequently. If you do setup a dedicated automation team then it's better to set them up working with Kanban than Scrum. Have a backlog of prioritised tasks for that team to work through. Even if that team is just one person. This is, in my opinion, by far the best way of really really making sure automated testing delivers real results, and a real return on the investment, to an organisation.

Learn How to Make Test Automation a Habit

Lorem Ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed placerat at felis at bibendum. Curabitur interdum erat est, vel aliquet eros tincidunt quis. Maecenas faucibus.

Conclusion

Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed placerat at felis at bibendum. Curabitur interdum erat est, vel aliquet eros tincidunt quis. Maecenas faucibus.

Lorem Ipsum Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed placerat at felis at bibendum. Curabitur interdum erat est, vel aliquet eros tincidunt quis. Maecenas faucibus.

Test Management Systems Ltd

We Help Agile Teams Implement Test Automation