I was creating a Software automation presentation for some of 3rd year university students, covering:

  1. Why we need Automation. (In order to test 100's of high priority TC within a few hours we need test automation, etc.)
  2. Benefits of Test Automation.
  3. Before doing any automation task we need to get a better idea on these things:
    • What to automate and what not to.
    • When to automate and when not to.
    • How much to automate.
  4. A process of Software Test Automation.
  5. Some sample automation tools.

Are there any other important things I have missed?

UPDATE: My presentation on Testing process, Automation, and Selenium is here.

  • First I'd like to know how do you define Automation Testing? Mar 22, 2017 at 6:49
  • On my slide i will show Saves Time. Performing Tests 24/7. Reusability. Distributed Test Execution. Easy & Robust Reporting. Manpower Utilization. Improves Accuracy. Overcomes Failures of Manual Testing. Improves ROI." and explain the advantages of it.so this is how im going to define it.
    – ChathuD
    Mar 22, 2017 at 10:43

4 Answers 4


Why we need Automation.(In order to test 100s of high priority TC within few hours we need test automation....etc)

  • Manual tests are slow, expensive, for fast deployment, test automation is a must have.
  • Facebook, Uber release their software many times a day, without test automation, Facebook and Uber can never become what they are today.

Benefits of Test Automation.

  • Cheaper in a long run.
  • Repeatable.
  • Can utilize time and space better, e.g. run test automation during after office hours.

Before doing any automation task we need to get a better idea on these things: What to automate and what is not to. When to automate and when is not to. How much to automate.

  • For tasks involving natural language interpretation, GUI interpretation, it is very hard to automate them as they are designed for a human to interpret.
  • Repetitive tasks are natural to automate especially number crunching tasks.
  • Test automation has overheads, if the budget is too small or the deadline is tight, you should avoid it.
  • Test automation can not be creative, manual testing / exploratory testing is a must have to find random bugs.

A process of Software Test Automation.

  • Too many, Google it. It is basically a software development process.

Some samples for automation tools.

  • Unit test framework, Junit, unittest
  • BDD framework, robot framework
  • Jenkins, free integration tool
  • Github, version control
  • Yu , are you sure that FB make releases many times a day?
    – ChathuD
    Mar 22, 2017 at 4:38
  • @ChathuD, I got that info from a training session. I have no evidence to prove it.
    – Yu Zhang
    Mar 22, 2017 at 4:41

As an addition I would also show/talk about these topics:

  • +1 As usual a ton of information in a compact form. Always great stuff from Niels! Mar 22, 2017 at 12:46

Apart from the things already mentioned in the above threads, I would add the following if I give a presentation on automation-

How Automation fits in functional testing?

A common misconception related to automation is that, it is a replacement for manual testing. Instead, it is actually a part of the overall testing process where manual and automated testing are part of it. They complement each other NOT replace.

The above being said, it is important to understand under what scenario automated testing could be a good option. Here are some use cases for it-

  • To automate mundane/repeatable tasks that are really time consuming to do manually
  • To work in a DevOps environment where we need automation right from the start of the SDLC; till the release and production monitoring phase
  • To get quick feedback about the system when new code is checked in (new feature is implemented). We will have automated tests that get automatically triggered for every code check in
  • To run several tests on a daily basis to ensure the older functionalities of the system are still working as expected To create Test Data that will be used for doing manual exploratory testing which is otherwise time consuming to do manually
  • To test different fields with hundreds of data sets using data driven testing
  • To do load/stress testing where we simulate thousands of users using the application simultaneously which would otherwise be hard to do manually

How to come up with a good automation test strategy?

The first step in building a good test automation strategy is to brainstorm the below items with the entire team-

  • What problems are we trying to solve using automation?
  • Are there sufficient amount of skilled resources available to do automation?
    Cost vs Value of doing automation?
  • How testable is your application?
  • What are the goals of automation?
  • How to make automation more visible?
  • What type of tools are needed for doing automation?
  • Do we choose open source or vendor tools?
  • What process needs to be followed for automation tasks?
  • Do you have sufficient support from stakeholders to implement automation successfully?

The above questions help to get some clarity on when and where automation is necessary in the project. Once we decide to proceed further and start building our test automation framework, some things to consider to help in building more robust automation frameworks and write better tests are-

  1. Authoring and execution
  2. Stability
  3. Reusability
  4. Extensibility
  5. Maintenance
  6. Troubleshooting
  7. Reporting
  8. CI/CD integration

What are the good practices of automation?

When building the automation framework and writing automation code there are some things we may want to consider that aligns with good practices of automation. They are as follows-

  • Have dedicated automation team with some programming experience (if possible) to do the automation. They can help to mentor other non-technical people and get them involved in the automation process
  • Treat automation tasks as separate stories just like how we implement different features as part of stories. This makes the team respect the automation tasks and they are easier to manage
  • Use Page Object Design pattern to ensure the ids, reusable functions and the actual tests are separated when using open source frameworks. If using vendor tools, most of these complexities are handled by the tool itself
  • Be proactive about the approach to take for running automated tests in a CI/CD pipeline. Use Maven or Ant build scripts to help in this effort. Use build tools like Jenkins, Travis CI, TeamCity to invoke your tests on each code check in Establish processes to be followed by the entire team related to coding practices, PR reviews, prioritizing features for automation etc
  • Make automation results are visible to the entire team via dashboards. Address them during daily stand up meetings, retrospective meetings and other team meetings.
  • Give sufficient training to the entire team to help them do better automation. Send them to conferences and meetups to bring in outside knowledge into team



I consider the most important factor to be:

So that we can change things without breaking things

The key related factor is that

Humans aren't good at manually testing complex systems under change

There is often no practical way for humans to keep testing every aspect of a system that is constantly being changed by active development. You can outsource it but then you need to explain the domain and what bugs are important and which can be ignored and you need to manage those folks doing the testing, etc.

Without a good test suite, any change you make could unwittingly break part of the application and you may need even know about it.

With the safety net of a test suite you have a much greater chance of catching any such issues locally and before the code is pushed into production.

I've worked in environment with and without test suites and I can say that the feeling for me was:

  • Without tests. Terrifying. What might I break?
  • With tests. Calming. Tests protect and reassure me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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