We will discuss automation testing interview questions below as it is important for a candidate to have good knowledge of interview questions on the automation framework to crack the interview successfully.
Software Testing has immense importance today, for delivering a high quality end-product. It gives opportunity to Software Testing professionals to thrive in their career. We cannot think of Software Testing without discussing Automation Testing.
So let's have a look at frequently asked automation testing interview questions. For the ease of understanding we will divide the automation testing interview questions in 2 levels of expertise. Let us dig deeper into the interview questions on automation framework and their best answers.
- What is Automation Testing?
- When to use automation testing?
- When not to use automation testing?
- Can you automate 100% test cases?
- What is a test automation framework?
- What are the types of test automation frameworks?
- What are the different tools available for Automation Testing?
- What are the features of an automation testing framework?
- What are the advantages of automation testing?
- How to decide the best tool to use for Automation testing?
- What is the structure of a standard test automation framework?
- Can automation replace manual testing completely? If not, what are the examples?
- What are the differences between Manual Testing and Automation Testing?
- Explain Automation testing life cycle.
Automation testing basics for beginners
1. What is Automation Testing?
Automation testing is a process of automating the execution of test cases using special software testing tools and scripts. Automation testing reduces the need of manual intervention by -
- Executing test cases
- Comparing the Expected Results with Actual Results
- Logging the Test Result - Pass/Fail.
- Saving the test evidences - screenshots
- Logging defects in Defect Tracking tool
- Generating test data
2. When to use automation testing?
The purpose of the automation testing is to reduce the manual effort in software testing. Answer of when to use automation testing is below -
- Repeated tests:
- Regression Testing, Sanity Testing and Smoke Testing are best candidates for automation testing because of their repetitive nature.
- Time consuming tests:
- Data Driven testing runs the same set of test cases with different and huge sets of test data. If done manually it will require much human effort and time which causes utter boredom to the tester. Also, due to the large amount of data manual execution is prone to errors.
- Complex tests:
- Complex tests contain difficult and lengthy calculations, which are time consuming and difficult for a human. Due to intense calculations in test cases human errors may occur. Hence, it is best to have the computer run such complex test cases and use test automation.
3. When not to use automation testing?
Interestingly, there are cases when we should not use automation testing because the ROI (Return on Investment) of test automation will be low. For instance, we cannot invest months of automation scripting to run cases which will be run only once or twice in their life cycle.
In brief, the below points will cover on when not to use automation testing-
- Firstly, the test cases which will rarely be run are bad candidates for automation testing.
- Secondly, if the requirements are not stable then we should not keep on modifying our automation scripts with the changing requirements. Therefore, stable application and requirements are prerequisites for starting automation testing.
- Lastly, ad-hoc testing and exploratory testing require human eye to detail and human interaction. Therefore, we do not consider such testing types for automation testing.
4. Can you automate 100% test cases?
It is a very tricky question among the automation testing interview questions. To begin with, the answer to the question that can you automate 100% test cases is YES. Interestingly, we can automate 100% of the test cases, but usually we should not. We should try not to put time and effort in the test cases which will rarely be run once or twice. In addition, Graphical User Interface(GUI) based test cases require much effort in scripting, so it is better to execute such cases manually.
To summarize, the investment(time, effort, resources) we have put into automation of test cases should be less than the return(efficiency, execution time, defect ratio). As a result, the whole process of test automation will be successful and fruitful.
5. What is a test automation framework?
Test automation framework is a collection of tools, scripts, data and structure which aids the process of automation testing. An automation framework defines below:
- Code and coding standards
- Test data storage
- Object repository (e.g. in QTP- Quick Test Professional by HP) or elements (e.g. in Selenium Framework)
- Definition of environment and properties file
- Report generation, storage, emailing
- Logs generation and storage
6. What are the types of test automation frameworks?
Below are the different types of test automation frameworks.
1. Linear test automation framework
Linear test automation framework is also called record-and-playback framework. When the user performs any action on the application, the framework generates the test steps accordingly. Therefore, the steps are in a Linear form in linear test automation framework. Since, test data gets hard coded in the code itself there are no separate functions for each user task. As a result, Linear test automation framework fails to achieve scalability for future requirements.
2. Data driven test automation framework
Testing code and test data are separate from each other in the Data driven test automation framework. Basically, a data driven test automation framework is useful when the same functionality needs to be run on a variety of huge test data. External files like excel sheet, CSV file or text file etc. store the test data and we keep them separate from the scripting logic. In case,there is any modification in the test data then we only change the separate data file. Subsequently, there is no impact on the coding logic and scripts, which in turn saves testing time.Therefore, testers can execute automated test scripts using the data-driven test automation framework, without any changes in the scripts.
3. Keyword driven test automation framework
Similar to data-driven test automation, we keep coding scripts and test data separate from each other in the keyword driven test automation framework. A new terminology in keyword-driven testing is -’keywords or actions’ and they are the actions that the user will perform on the application. Furthermore, a separate ‘Keyword File’ stores Objects(web-element) and associated action words(keywords) in a tabular format. Finally, tester codes the test script based on the action words, for example- if user performs action- clickButton, the tester codes script to cover the functionality related to clickButton. Therefore, the keyword file, data file and coding scripts all are separate from each other.
4. Modular test automation framework
Let us discuss the steps to create a Modular test automation framework. Firstly, we divide the whole application into separate modules or functions. After that, we write test scripts for each module separately and test them independently. Next, we combine these modules into a single required test case. Since the test script for each module is created separately, the modules have abstraction property. Therefore, in a modular test automation framework, changes in the test script of one module will not affect other modules.
5. Hybrid test automation framework
As the name itself suggests, Hybrid test automation framework is a hybrid of any of the above three test automation frameworks- data-driven, keyword-driven, modular test automation framework. According to the requirement the tester combines any of the available framework types to achieve a flexible and robust test automation.
7. What are the different tools available for Automation Testing?
Below are few of the Automation testing tools.
- To test web applications, Selenium is an open source test automation framework.
- Selenium automation testing supports:
- Languages like Java, C#, Perl, Ruby, PHP, Python etc.
- Multiple browsers like Chrome, Safari, Firefox, IE etc.
- Operating Systems like Linux, Windows, Mac etc.
- Appium is also an open source used for mobile applications’ automation testing.
- It provides support to:
- Platforms like iOS, Android and Windows for mobile apps.
- Scripting in Python, PHP, Ruby and Java.
- SmartBear TestComplete, is a licensed test automation tool to create automated UI tests.
- It provides support to:
- Desktop, web and mobile applications.
- Using TestComplete, users can execute automated scripts using data-driven and keyword driven test automation frameworks.
- Cucumber Framework
- Cucumber framework is an open source test automation framework based on BDD (Behaviour Driven Development).
- In a BDD framework the requirement and test cases are defined in plain English. QAs, developers, clients, businesses analysts (BA’s) and all other stakeholders actively participate in requirement creation and test case creation while developing a BDD framework. In a ‘Feature File’ all plain text test cases are written, which anyone can understand. Subsequently, plain text test cases of the feature file are mapped to the actual test scripts. Mostly, cucumber framework is integrated with selenium framework, however, it is also used with Watir, Capybara etc.
- IBM Rational Functional Tester (RFT)
- IBM Rational Functional Tester is a licensed product by IBM.
- It supports functional testing, regression testing, GUI and data-driven testing. RFT supports testing of web based, Java, .Net, SAP, Ajax , Adobe PDF documents etc.
Intermediate Level Automation Testing Questions
1. What are the features of an automation testing framework?
An automation testing framework provides the structure, rules, and practices to follow during the whole automation testing life cycle.
We can discuss below features of a good automation testing framework when asked in Automation testing interview questions -
- Modular - A good automation framework has different folders for different tasks and is completely modular.For example it has separate source, library, report, test data folders.
- Reusable - The test automation framework should be designed in a way that it is reusable for different applications. When required, the test data and other properties can be changed accordingly.
- Flexible - Flexibility is a very important feature of an automation framework. The best automation framework design allows it to be used on multiple platforms, OS and browsers.
- Good reporting - A licensed test automation tool comes with an excellent reporting system of its own. When we are designing a test automation framework using scripting, we should be vigilant enough to create a good reporting module.
- Logs creation - A good test automation framework always has proper recording of the logs. Logs play a very important part in debugging and defect logging.
- Integration with other tools - A good test automation tool always has capabilities to integrate with third-party tools. For example, we expect integration of Selenium framework with Continuous Integration(CI) tools like Jenkins.
2. What are the advantages of automation testing?
Advantages of automation testing is one of the most popularinterview questions. To achieve and learn a skill we must first know the advantages of the same.
- Consistency - When we use a test automation tool, the results are always consistent. During a manual test execution the results cannot be consistent all the time. There could be manual errors and omissions.
- Reusability - Multiple modules and test cases use the same code for testing, this helps in achieving reusability. Sometimes, after minor changes different applications can be tested using the same framework.
- Maintainability - Once a proper test automation framework is in place, we can easily maintain it for a stable application.
- Better test accuracy - Test automation reduces the chances of human error, because of its consistent behaviour. This results in a better test accuracy.
- Better test coverage - The automated test scripts can run 24*7 and hence they certainly provide better test coverage than human testing within the same time frame. Data-driven testing using test automation is the best example of better test coverage.
3. How to decide the best tool to use for Automation testing?
There are many licensed and open source automation testing tools available in the market. Each with its own benefits and functionality, and hence this is a very important question among automation testing interview questions. We can decide the best tool to use for automation testing in a project, by following below steps-
- Select best candidates for automation testing from the test suite. Select the frequently repeated and most time-consuming test cases Examples are- regression test cases, data-driven test cases.
- Make an automation testing tools list based on -
- Platform support: Web based, Windows, mobile, API’s
- Languages supported by the tool: Java, Python, Ruby, Perl etc.
- Testing types supported by tool: Functional, Regression, Performance etc.
- Organisational budget for tool
- Training needs of the workforce and time required in learning new skills
Based on the above factors, we can select the best suited tool from many automation testing tools for our project.
4. What is the structure of a standard test automation framework?
Knowledge of the test automation framework shows you have practically worked on one. Therefore, it is also a part of important automation testing interview questions. A licensed test automation framework may have a structure of its own.
Mostly, the projects follow below structure for a test automation framework.
- Source code folder - contains the actual code of test scripts
- Library folder - contains library functions
- Class folder - Java uses classes and this folder stores Java class definitions
- Object repository folder - has Objects or web elements definition
- Test data folder - test data is stored separately here
- Log folder - stores logs of the automated test script run
- Report folder - stores the test run reports after the automated test execution. Email option is available.
- Environment and Properties file - contains Environment variables, properties of the webdriver(in case of Selenium Framework), url of application, browser related information.
5. Can automation replace manual testing completely? If not, what are the examples?
This is also one of the tricky questions among the automation testing interview questions.
No, we cannot replace manual testing completely. There are scenarios which require human attention and exploration, they cannot be replaced by automation. However, we use automation testing to reduce the load of repetitive tasks from humans. Ideally, manual and automation testing are there to help each other and to work in tandem.
Examples which require manual exploration are -
- Exploratory testing
- Usability testing
- Ad-hoc testing
6. What are the differences between Manual Testing and Automation Testing?
Differences between manual testing and automation testing is one of the most important automation testing interview questions. So let’s have a look at the automation testing vs manual testing points as below -
7. Explain Automation testing life cycle.
Again a very important Automation testing interview question! Below are the different stages in the automation testing life cycle:
- Define scope of automation testing - We need to decide which testing type we will perform and what requirements or test cases we will be automating. Accordingly, we should select the proper test automation tool.
- Selection of the correct automation testing tool - Once we have defined the scope of automation testing, we can select the appropriate automation testing tool. e.g. if our scope requires mobile testing we should use Appium.
- Creation of test scripts - Based on the automation testing tool and the preferred scripting language, the next step is to create the test scripts in the tool. Create test suites for the test cases.
- Setting up the test environment - Our next step is to set up the appropriate test environment for the test automation run. Set up the test data or any other environment for the test run.
- Execution of the test scripts - Automation testing tool runs the test suite with a click of button and marks appropriate status after the run as - Pass or Fail. This process becomes more easy with the Continuous Integration(CI) tools like Jenkins. With Jenkins, we can schedule the test run for a particular time and then the test suite will run automatically.
- Reporting - Automation testing tools generate test result reports, test run logs and test evidence as screenshots. The reports, logs and screenshots are saved by the tool in our preferred location. Subsequently, we can email the reports automatically to desired recipients.
- Maintenance - When there are any changes in requirements or the User Interface of the application, then some changes will be required in the script. In addition to it, the obsolete test cases and test cases which are repetitive, have to be removed periodically during maintenance.