App & Browser Testing Made Easy

Give your users a seamless experience by testing on 3000+ real devices and browsers. Don't compromise with emulators and simulators

Home Guide Automation Testing Tutorial: Getting Started

Automation Testing Tutorial: Getting Started

Shreya Bose, Technical Content Writer at BrowserStack -

Table of Contents

Automation testing drastically reduces the time and effort spent on testing. This is why more and more companies automate their tests. When compared with Manual testing, there is more effort required in setting up the process but once that is done, one can save up on a lot of time and effort. Whereas with Manual Testing, the time and effort do not change.

automation test


In this guide, you will learn about what is automation testing and the entire automation testing process.

What is Automation Testing?

As the name suggests. automation testing takes software testing activities and executes them via an automation toolset or framework. In simple words, it is a type of testing in which a tool executes a set of tasks in a defined pattern automatically.

It takes the pressure off manual testers, and allows them to focus on higher-value tasks – exploratory tests, reviewing test results, etc. Essentially, a machine takes over and implements, mundane, repetitive, time-confusing tasks such as regression tests. Automation testing is essential to achieving greater test coverage within shorter timelines, as well as greater accuracy of results.

The automation testing market size surpassed $15 billion in 2020 and is anticipated to grow at a CAGR of over 16% from 2021 to 2027. Now that we know what automation testing is, let’s see why and how critical it is in the software lifecycle.

Why is Automation Testing critical in a Software Lifecycle?

Imagine this.

On your first day as a QA, you have to test an application that includes about 100 fields that require input. When conducting exploratory testing, you must manually insert input in each field. This takes about 10 minutes to do if you are really fast.

You press Submit. An error message appears. It looks like an unhandled exception. You report the bug and feel really good about a job well done. You repeat the process, find a few more bugs, and have a generally productive first day.

The next day, the developer fixes the issues and you have to test the new version of the software, repeating the same steps as the day before. Bug fixed. Job well done. A good user experience was ensured, thanks to your efforts.

On the third day, developers released a newer version with newer features. But to ensure that the new features have not broken the older working features, you have to repeat the process. No issues found.

A month onwards, developers are releasing newer versions continuously, which means you have to keep testing the software, repeating the same process (inserting field input) every time. You are bored and tired. Your accuracy begins to waver, as a result, you eventually end up missing a bug – possibly a rather obvious one.

Believe it or not, this is a fairly common scenario for most QAs. It is impossible to do the same thing repeatedly and be perfect at it every time. This is where automation testing comes in.

Can a Software Test Another Software?

Yes. That is the whole point of automation testing. When it comes to regression testing, investing manual effort is futile and wasteful. Instead of expecting humans to repeat the same steps with the same speed, accuracy, and energy, it is far more logical to program a machine to do the same.

What Tests should be Automated?

Before creating a test automation strategy, let’s have a look at which tests are most feasible for automation:

  • Regression Testing: Regression suites are ever-increasing, and require the same variables to be filled numerous times to ensure that new features do not tamper with older functions. This can easily be automated.
  • Testing of complex functionalities: Automate all tests requiring complex calculations, something prone to human error.
  • Smoke testing: Run automated suites to verify the quality of major functionalities. This saves time by offering a quick analysis of whether a build requires more in-depth testing.
  • Data-driven testing: Automate tests to validate functionalities that must be tested repeatedly with numerous data sets.
  • Performance testing: Automate tests that monitor software performance under different circumstances. Doing this manually would be extremely painstaking and time-consuming.
  • Functional testing: Every time a developer submits a PR, functional testing needs to be executed quickly and provide immediate feedback. This is impossible to achieve without automation, especially as organizations scale up.

Getting Started with Automation Testing

When transitioning from manual to automation testing, keep the following points in mind:

  • Do not aim for 100% test automation. Not all tests can be automated. Even among tests that can be automated, do not set an initial target of complete automation.
  • Set a realistic goal. For example, start by moving a few tests to automation. Write smaller test cases that can be easily reused in future tests of the same software. Map test cases with corresponding functions to provide better test coverage. Label test cases so that teams can have clarity on what to automate as well as report more effectively.
  • Explore new areas of the application with automation. When chalking out automation strategies, ensure that business requirements are taken just as seriously as technical considerations.
  • Know what not to automate. This helps to decide the scope of automation early in the ideation process. The following tests are best left to manual coverage:
  1. User experience testing: Tools cannot entirely replicate any user journey. It is impossible for an algorithm to predict how individual users will interact with an application. In order to actually judge the quality of user experience, stick to human testers. Try using manual interactive testing tools like BrowserStack Live.
  2. Accessibility testing: When testing how accessible an application is, there is no substitute for human usage. A tool cannot measure accessibility because people often have different opinions on what counts as accessible. It is impossible for a tool to recognize if software workflow provides easy access for actual humans.
  • Selecting the right automation testing is entirely dependent on tools. Here’s what to consider when choosing the right tool:
  1. The nature of software: Is the application being tested web-based or mobile-based?
    To test the former, use a tool like Selenium to automate your tests. For the latter, Appium is one of the best possible tools for automation.
  2. Programmer Experience: Choose frameworks, languages, and tools that match testers’ comfort and experience. Some of the most popular languages used for automation testing include Java, JavaScript, Ruby, C#, etc.
  3. Open Source or not: Depending on budget constraints, one may choose to use open-source tools such as Selenium or Appium for automation purposes. However, it is important to remember that all open-source tools are not inferior to their commercially available counterparts. For example, Selenium Webdriver is an open-source tool most highly favored by automated testers worldwide.
  • Select the right test grid

The test grid refers to the infrastructure on which all automated tests will run. It comprises a series of devices, browsers, and operating systems (multiple versions) on which software is to be tested. It is always best to automate tests on real devices and browsers. This will ensure that software is being tested in real user conditions.

Additionally, the ideal test grid should enable parallel testing. This means that testers should be able to run multiple tests on multiple devices simultaneously. This cuts down on test time, expedites results, and offers results within shorter deadlines.

Something else to decide is whether the test grid should be hosted on-premise or on the cloud. Keep in mind that on-premise infrastructure is almost always expensive to set up and maintain. It requires keeping track of new devices, browsers, and operating systems, and updating and maintaining them accordingly. This is a challenge since multiple versions of each are released every month.

Conversely, testing on a cloud-based grid is easier, since updating and maintenance would be taken care of by the organization offering the grid. For example, BrowserStack offers a cloud Selenium grid that is connected to 2000+ real devices and browsers for testing. Users simply have to sign up and start testing on a robust Selenium grid that is constantly updated for the best possible results.

BrowserStack’s real device cloud provides 3000+ real browsers and devices for an instant, on-demand testing. The cloud also provides integrations with popular CI/CD tools such as Jira, Jenkins, TeamCity, Travis CI, and much more. Additionally, there are in-built debugging tools that let testers identify and resolve bugs immediately. BrowserStack also facilitates Cypress testing on 30+ browser versions with instant, hassle-free parallelization.

Try Automation Testing for Free

How to Choose the Right Automation Testing Tool

When choosing an automation tool, ask the following questions:

  • What is your budget?

Undoubtedly, test automation comes with higher initial costs. You have to invest in frameworks, platforms, upskilling and other necessities to build an effective automation model. Having a clear idea of how much you can spend will help you narrow down automation tools in the market.

  • What are your team’s abilities?

You can purchase a state-of-the-art testing tool, but if your team members do not have the skills to set it up and utilize it regularly, you are wasting your money. Prioritize tools that will allow team members to write and execute test scripts at their current technical levels. On the other hand, if it is possible to upskill testers before adopting an advanced tool, pursue that option. 

  • What features does my team need?

Examine if the automation tools offer necessary features based on the project’s and organization’s requirements. Some of these features might be:

  1. Real Browsers and Devices/ Real Device Cloud
  2. Support for multiple programming languages/frameworks
  3. CI/CD Integrations
  4. Debugging Capabilities
  5. Test Report and Management Capabilities
  • Does it come with robust technical support?

Whatever automation tools you buy should provide prompt and helpful technical support. Check the official documentation and website to gather deeper information about customer support. In case you are using, open-source software, check if there is an active community that will assist with problems you may encounter. 

Automation Testing Example: Use Case Scenario

When manually testing software, the tester uses a mount and keyboard to interact with it. Automation scripts and tools replicate this interaction, step-by-step.

In this automation testing example, a calculator is being tested to see if it can add two numbers and display the result. Manually, the steps to do so would be the following:

Step 1: Launch Calculator
Step 2: Press 2
Step 3: Press +
Step 4: Press 3
Step 5: Press =
Step 6: The screen displays 5
Step 7: Close Calculator

An automation tool can perform the same steps with the following script:

//the example is written in MS Coded UI using c# language.
public void TestCalculator()

//launch the application
var app = ApplicationUnderTest.Launch("C:\\Windows\\System32\\calc.exe");

//do all the operations
//evaluate the results
Assert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");

//close the application

The exact same result (5) is displayed when executing the above script. Instead of having to go through the manual steps, simply write the script and let the tool take care of the rest.

How to Move from Manual to Automation Testing

Now that you know what is automation testing and have decided to move from manual to automation testing, you need to ask two important questions.

  1. What to Automate?
  2. How to Automate?

What To Automate?

  • Automate tests necessary for the release cycle. That may include smoke tests, regression tests, and the like. Basically, automate tests that speed up the entire test cycle. Remember, lower manual intervention equals faster results.
  • Automate tests based on technical and business priority. Think like this: would the automation of this test help the business? Would automating this test help simplify technical complexities? If the answer is yes to either question, automate.
  • Automate based on usability. Some tests, such as cross browser testing simply work better when performed manually. Tool dependency can also limit automation potential for a certain testing team or organization.

How To Automate?

When starting with the automation testing process, keep in mind that not all tests can be automated. By adhering to the three strategies in the previous section, it becomes easier to initiate the automation testing process in a practical manner.

  • Start small. 100% automation is not the goal, and also not possible. Write smaller test cases because they are easier to maintain and reuse. Move a small number of tests to an automation platform, run the tests, analyze the results and decide if the process proved to be beneficial to the software development process.
  • If significant benefits do come from the operation, move more tests to automation. Start moving tests not only in volume but also increase the type of tests being automated. Remember that this is still an experimental stage. It is possible that certain tests will prove to be inefficient in automation, and have to be moved back to manual testing.
  • Map test cases with each method or function in order to gain better test coverage. Label your test cases for easier identification, so the team can quickly know which tests to automate. This also helps implement better reporting.
  • When starting the automation testing process, start by manually exploring new areas of the application. Then, create a risk plan that detail what needs to be automated, based on business and technical priorities.
  • Use analytics to determine end-user preferences. Create a list of browsers and devices with which users are most likely to access the software. This helps automation testing cover the right interfaces and optimizes software performance on the right user avenues.

Try Automated Testing on Real Device Cloud

Test Automation Maintenance

Once crafted, the automation testing process suites have to be maintained. As the software evolves and the codebase expands, automation scripts have to be modified and updated to incorporate new features and functions. Even minuscule changes in the UI can disrupt tests and cause them to fail. When designing test cases, automation testers have to account for maintenance effort and costs.

The test automation maintenance approach work from two main perspectives:

  • Test Failure: When debugging failed tests, looks for possible maintenance issues. Was the test script not adequately updated? Did a change in software code interfere with the test script? This is an easy way to identify which areas require maintenance efforts.
  • Change in Dependencies or Tools: Has the team or organization changed APIs, reporting tools, databases, etc.? If so, tests may need to be changed or updated to align with new toolsets. To accomplish this, developers and testers will obviously need to be trained on the new infrastructure so that they can keep up with maintenance efforts in the future.

Automation testing is an integral part of any testing ecosystem. Comprehensive testing becomes difficult without moving to an automation setup, as does the meeting of ever-shortening deadlines. Consequently, it is important to initiate automation testing protocols as early as possible in a way that balances and complements manual testing.

Try the steps outlined above, and experiment enough to find out which approaches yield optimal results. Don’t be worried about failing a few times before finding the sweet spot that allows effective automation without compromising human validation.

Automation Testing Types of Testing

Featured Articles

Common Reasons for Automation Tests Failure

10 Test Automation Best Practices to follow

Curated for all your Testing Needs

Actionable Insights, Tips, & Tutorials delivered in your Inbox
By subscribing , you agree to our Privacy Policy.
thank you illustration

Thank you for Subscribing!

Expect a curated list of guides shortly.