30|60|90 Days to Automation, pt. 1

The Agile principle about simplicity might be under appreciated. There are countless mindless, minutia, process-for-process sake tasks we do for workt that add zero value. In fact, many of them probably have a negative-value impact on our organizations. Today, I want to kick-off a conversation focused on simplicity related to testing.  This is the 1st of a 3-part series where I will explore a 30|60|90 day plan for introducing automation practices to your team.

SimplicityNearly 50% of the time spent on testing activities is spent executing the tests1. Every test that is (or should be) executed more than once should be considered a candidate for automation, and research indicates between 40% – 60% of tests can and should be automated without question2. There is a significant case to be made for how test automation can increase the productivity of Agile teams. While it may not produce an immediate ROI in sprint-over-sprint activities. Your cost of delay will be dramatically decreased when automation is applied to regression testing and other testing activities that are often part of release overhead.

Key Benefits of Test Automation

What do we mean by “Release Overhead”? Think of Release Overhead as all of the activities that must occur after the Definition of Done is achieved, but before the solution can be deployed to customers.

  • You’ll have a safety net
    By having automated test that can be run (and re-run) with little effort you’re more likely to know when you broken something. This is a key safety net that preserves the quality and integrity of our solutions.
  • Reduces wait-time
    Waiting time is a classic waste in software development. The shorter the time between writing a line of code and getting feedback on the integrity of that code, the faster it is to resolve the defect, thus greater efficiency in the process.
  • Increase speed-to-market
    The fewer repetitive testing activities a team must perform, the faster the solution will be released to customers. The highest priority in Agile is to satisfy the customer through the EARLY and continuous delivery of valuable software.3  If we want to be “early” then we need to optimize the cycle-time for getting features and functionality out the door.

That feels like enough context on why test automation is important, now let’s move on to a 30|60|90 Day Plan for how you can introduce test automation practices for your team. Before revealing the plan, there are some assumptions we should cover. If your team does not match these pre-conditions for the plan contact us  to inquire how we would approach introducing test automation for your group.

Assumptions for the Plan

  1. Your team is made up of truly dedicated team members, and >5 of them have enough technical acumen to develop/test the product.
  2. You have commitment from your Product Owner to invest in test automation. This 30|60|90 day plan will likely consume between 30-50% of team’s velocity. Note, the smaller the team, the greater the impact.
  3. Your team has an understanding of The Testing Pyramid and 4 Testing Quadrants. Without this you are missing the right foundation/knowledge to begin automating tests the right way.
  4. At least 1-2 people on your team are familiar with automation frameworks and/or have hands-on experience creating automated tests.
  5. Your team has autonomy to control/create development/testing environments.
  6. Your team already uses a team-based code repository.
  7. You have good user stories/acceptance criteria.

A 30|60|90 Day Plan for Introducing Test Automation

Think of this as a check-list of spikes, foundation stories & new tasks your team needs to account for during backlog refinement & sprint planning.


30

60

90

  • Select an Acceptance Test Tool
  • Create a Test Repository
  • Task-out Automation of Acceptance Scenarios
  • Begin Local Box Automation
  • Begin Consistent Unit Testing
  • Introduce Scenario Analysis during Refinement
  • Define a Clean Test Environment
  • Write a Script to Trigger Tests on Build of the Code
  • Automating Reporting of Pass/Fail
  • Require Locally-Passing Unit Tests
  • Use Acceptance Tests to Elaborate Acceptance Criteria
  • Unit Test all Components
  • Implement an Automated Build Schedule
  • Update the Definition of Done.
Automation on
Local Boxes
Automation in the Test Environment Initial levels of Continuous Integration

Want more details?

Come check back next week as well as the week after to get Parts 2 & 3 of this series. In Part 2, I will explore the details around the 30 & 60 day portions of the plan, and in Part 3 I will round out the 90-day activities and leave you with some additional thoughts on advancing & introducing automation for your Agile team!

1Realizing Efficiency & Effectiveness in Software Testing through a Comprehensive Metrics Model https://www.infosys.com/IT-services/validation-solutions/features-opinions/Documents/enhancing-quality-assurance.pdf
2 Why Automate? Automated Software Testing ROI Explained http://www.informit.com/articles/article.aspx?p=1332758&seqNum=3
3 http://www.agilemanifesto.org/principles.html


Subscribe to AgileUp
What’s new in the Agile industry today? With a subscription to AgileUp, you’ll get it in your hands first. We’ll send you the latest webinars, case studies, white papers, best-of blogs, event updates and more directly to your inbox!
*By entering your email address you give SolutionsIQ permission to send you marketing emails. You may unsubscribe at any time by clicking the unsubscribe link located at the bottom of any email. View our Privacy Policy