I have an browser based application that needs to be tested.

In an agile environment how do I automate it?

How do I create high quality, reliable automation that is easy for others to use and maintain?

Once I've created the automation, how should I allocate time to maintain it against new changes, features, etc.

  • Heading for closure. Just wanted to point out that this circumstance seems quite common among the companies I have worked at. It's the most common need I see in many QE jobs. – Michael Durrant Mar 11 '19 at 12:23

In many companies you can break this down into the following stages

  • Learn Application

    1. Get to know the application from a user perspective, i.e. use it
    2. Analyze existing tests
    3. Work with the current testing people
    4. Work with the business as available


  • Create Foundation *

    1. Create browser based selenium automation
    2. Create smoke, happy and sad tests
    3. Create unique flows to cover all screens


  • Pipeline Runnable

    1. Learn more about test data requirements
    2. Learn how to create test data through APIs instead of through UIs
    3. Learn how to use APIs to change state as needed, e.g. "verify user"
    4. Pipeline specific configuration such as using Docker, users account, ENVs, etc.
    5. Learn how to visit a specific page in the UI for reliable sad tests


  • Keep Maintained

    1. Keep the automation up to date with the application changes in the last sprint
    2. Refactor constantly to maintain quality
    3. Automate additional scenarios not yet under automation to expand coverage

Once created I have found the following allocation of time (very roughly and will vary a bit depending on many factors) is needed to maintain it:

  • 1/3 of the time is spent on keeping up with application changes in last sprint
  • 1/3 of the time is spent on refactoring
  • 1/3 of the time is spent on new automation - now driven by users - of which
    • 1/6 is recently fixed bugs as they are good indicators of where tests add value.
    • 1/6 is automation for new cases based on the test pyramid and agile testing quadrants

* for the foundation i recommend sticking with basic smoke, happy and sad paths (sad path for each screen) without much input from the business. Get the foundation done to set a good devops pipeline structure and then involve the business more on test cases. I've learned this the hard way through several companies.

  • 1
    Did you answer yourself? – João Farias Feb 27 '19 at 6:09
  • Interestingly, StackExchange explicitly encourage users to ask and answer their own questions... I guess even when a question is as broad as this? – trashpanda Feb 27 '19 at 10:21
  • @trashpanda no, when self answering the Q&A should still meet the same basic quality requirements – jonrsharpe Mar 2 '19 at 8:24
  • @jonrsharpe, I agree with you - this is a low quality question and answer from a pretty reputable user. I was just highlighting that StackExchange encourages users to answer their own questions. – trashpanda Mar 5 '19 at 10:34
  • I agree it is low quality myself. This was one of these 'should you ever find yourself in this situation' kinda thing. I do think it adds value for many companies and people that still find themselves starting automation anew and asking the above question. – Michael Durrant Mar 5 '19 at 18:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.