Software Testing Interview Tips and Tricks
In this Software Test Automation Blog, we Guide you on how to answer confidently the most frequently and almost common Interview questions related to the Test Automation framework to more or fewer experience people while appearing in Automation Testing Interviews.
Here we guide you on how to explain Test Automation Framework in the Interview at any software testing company.
First of all, let’s see – What is a framework? In simple words, we could define a Framework as a Set of Rules or Best Practices that we can follow in a systematic way to achieve the desired goals.
Coming back to explaining the test automation framework in the interview, you will face this question to know your experience with the test automation tools in Software Testing Services. You have to explain each component of your Framework Architecture, and you have to specify right from the point of the Test Automation execution to generating the reports. If there is a whiteboard or white sheet, then utilize the same. It will be a better option if you draw all the components of your Framework Architecture and make connections between each other components with arrow keys while you are explaining the framework.
Tell about Types of frameworks you have used
As you all know, selenium supports multiple languages, so you need to specify which language you are using and what type of framework you have used.
There are many types of frameworks, and the major ones are Keyword-driven, Data-driven, and Hybrid Framework test automation frameworks.
Test-Base Class: Every framework has a Base Class; we initialize WebDriver and implicit waits and bloggers, reports, etc., in the test base class.
So you need to provide some stress on this part while explaining and coming to element locators.
Page Object Model: Do your tests independent of element locators. You have to specify where you store all the element you caters to, such as ID XPath CSS, whatever. If you are using a Page Object model to separate element locators with tests, then clearly explain that. Nowadays, everyone is using the Page Object design model to do this. We can also keep Element locators in property files.
Functions Library: Every project has some Functions Library, but in most cases, we use separate Functions as Generic Functions and Project-Specific functions, also called Business functions. Sometimes asked in an interview, what is the difference between Generic and Business Function?
Don’t get confused and reply Generic Functions are related to Operations we perform like Click, Select, etc., of an Element, and Business Functions are more related to B2B Business to Business applications nature. For example, Transfer funds Functionality is more related to Banking applications, whereas Order booking Functionality is more related to Retail Business applications like Amazon and Flipkart. If you call Test data from the excel sheet comes under Generic Function, and more technically, use property.
Here, we have mentioned some Utility functions property:
Property Files: We could place details such as browser type URL in property files and specify what Test NG Annotations you have used in your Framework.
Test NG: You can explain how you use Test NG Annotations in your Framework in case you are using Test NG Annotations.
Parameterization: You can explain how you Parameterize Test cases using Excel files or Test NG Annotations.
Screenshots: Explain how you captured the Error screenshots image into the Screenshot folder for the Pass or Failed Test Cases.
Test Reports: Explain how you Generate Reports like HTML, Extent Reports, etc., In your Test Reports Folder and how you send those Reports to your peers, like sending that email to your leads or related Peers.
Version Control: Mention the Version Control you have used as a GIT Repository or SVN.
Continuous Integration Tool: Mention continuous-integration tools like Jenkins if you use the same in your Project.
You can specify these things to showcase your software testing skills and practical knowledge related to Framework Architecture or your Framework. It is better to ask your Interviewer to provide a white sheet to draw the Architecture of your Project Framework. Explain clearly every component in Detail.
Language
Let’s get started with the language you can tell in our selenium project. We are using Java language in our project because most Automation developers know selenium with Java type of framework or any language you use, such as Python, C#, etc.
Types of Framework: In our project, we are using a Data-driven or Keyword-driven, or Hybrid Framework by using the Page Object Model Design Pattern with Page Factory.
Page Object Model
To continue in detail related Page Object Model, you can mention the Page Object Model. Under POM, we have maintained a Class for Every Web Page separately. Each Web Page has a separate Class, and that Class holds the functionality and members of that Particular Web Page. We have separate classes for every individual Test case.
Packages: We have separate Packages for pages and Test scripts. All the web page-related Classes come under Pages Package, and all the Tests-related Classes come under Tests Package. And all the Tests are kept in the SRC tests Java. The remaining files, such as Config .properties Element locators Utility files, test data, etc., are kept in SRC may in Java.
For Example: The homepage and login page of the Application have a separate class to store element locators for the login Tests.
There would be a separate class that calls the method from the Homepage class and login page.
Test base class
To continue with the Test base class, the Test base class deals with all the common functions used by all the pages. This class is responsible for loading the configurations from property files Initializing the WebDriver implicit waits. And Also responsible for External reports, and creating the Object of a file Input stream. Which is responsible for pointing towards the file from which the data should be read?
Functions library
To continue with the functions library, the utility file class, which we also call function class, stores and handles functions. A repetitive code such as waits, actions, screenshots capturing, or accessing Excel sheets and sending emails is a repetitive task. It uses these repetitive tasks across the entire framework. And these repetitive tasks we make as a function, and we use the entire framework. The main reason behind creating utility classes is to achieve the reusability of code. Like we create Login and Logout Functions and add them to our Function’s Library. We can call the same and use them for every Test case in our Project Application Framework. This class extends the Test Base class to inherit the properties of Tests Based on Test Util.
All the details that change as per the Environment and Authorization, we should keep them in config.property files keeping these details in a separate file makes it easy to maintain. And your Login credentials are such details.
Screenshots: will be captured and stored in a Separate Folder. Also, the Screenshots of the Failed Test cases will be added to the Extent Reports.
Test Data, We will place all historical test data in an excel sheet using this particular excel sheet. And we pass this data and handle the data-driven testing. We use apache to handle excel sheets.
Test NG, We use Test NG annotations for Assertions, Grouping, and parallel Execution.
Maven, We are using Maven for build execution and dependency purpose.
We integrate the Test NG dependency in the POM.XML file and run this POM.XML file using Jenkins.
Version Control Tool: In our project, we use GIT as a Repository to store our Test scripts.
Using Jenkins’ continuous-levilization equipment, we execute test cases daily. And simultaneously, they also execute them for night execution based on the schedule. Test Results will send to the Peers using Jenkins.
Extent Reports: We are using Extent Reports which generates beautiful HTML reports for Reporting purposes. We use detailed extent reports to maintain logs and to include screenshots of failed test cases in external reports.
You have to explain all these when the interviewer asks you about the Test Automation Framework in the interview.