Test Automation As You Go: Redefining The Definition Of Done For Quality Software

Published on April 3, 2025

For as long as software testing has existed, it has been seen as a bottleneck. Fortunately, recent years have brought extensive discussion around approaches to avoid this issue. These include shifting testing activities earlier in the development process and planning for testing during development.

Automated testing has emerged as a powerful tool that ensures key features in an application continue to work as expected, even as the application is further changed and developed. However, to include a new feature in the automated test coverage, new tests must be developed alongside the feature itself. If these automated tests are not created during the project timeframe, they accumulate as technical debt, causing the automated testing process to become the new bottleneck.

Automated testing is often incorrectly designated as low priority—something that “can be done later.” While technically possible to finish automated tests after release, this attitude creates significant problems:

  • Planned automated tests get relegated to the backlog and forgotten
  • Test automation development gets pushed to the end of the project
  • Teams face pressure to start the next project so the automated tests never get developed
  • Automation work often doesn’t get done at all

Include Test Automation in Definition of Done

We can avoid the test automation bottleneck by including test automation development within the scope of each ticket. This means a ticket must NOT be marked as done until the automation work is completed. Development work and manual testing activities must also be completed.

Benefits of This Approach

  1. Prevents Last-Minute Automation Work: By integrating automation early, we avoid delays when development is finished
  2. Reduces Technical Debt: Prevents accumulation of untested code
  3. Embeds Test Automation in Team Culture: Encourages all team members – developers and testers – to take ownership of automated tests

Overcoming Implementation Challenges

The key to successfully embedding test automation is to break down the automation work. Instead of writing an entire test, focus on the specific part of the test relevant for that ticket. This drastically reduces the additional scope of the ticket, and reduces the extra time and effort required to complete the ticket.

This approach:

  • Ensures only minimal increases in ticket completion time
  • Limits scope expansion
  • Reduces pressure on testers and the developers

Further Tips for Successful Implementation

  1. Plan Automated Tests Early: Outline what tests you intend to automate and their purpose at the project’s beginning. Having a high-level picture of your automation strategy prevents rushed implementation later.
  2. Align Automation with Development Milestones: Pinpoint opportunities to work on test automation in parallel with development.
  3. Break Automation Work into Smaller Tasks: Development is broken down into incremental tasks. Automation should follow the same approach. Each ticket should identify which specific parts of an automated test can be completed.
    Key Concept: Don’t write an entire test at once—this increases scope too much. Instead, create individual test steps as the application evolves, writing only the parts relevant to each ticket.
  4. Communicate Openly When Challenges Arise: If automation work falls behind, discuss it with the team. Request additional time, resources, or support from developers to assist with testing tasks (both manual and automated).
  5. Start Developing The Tests Early: Automated test development can begin before coding starts. Testers can outline test structures first, then insert code as it becomes possible. This approach is faster than starting from scratch later.
  6. Collaborate Closely with Developers: Leverage developers’ programming expertise to improve test efficiency. Working simultaneously on application code and automated tests offers multiple benefits:
    • Developers can help improve test code quality
    • Ensures shared understanding of application requirements
    • Provides better insight into precise workflows needed for accurate test development
    • Can influence application design to improve testability

Conclusion

Integrating test automation into the development process is crucial for ensuring long-term efficiency and software quality. Teams can prevent test automation from becoming a bottleneck by embedding automation into the Definition of Done. They should also break down automation tasks into manageable steps and collaborate closely with developers. This approach ensures that test automation is not overlooked or deprioritized.

If we shift our mindset from viewing automation as an afterthought, we instead make it a core development activity.

software-automation-no-people