You’ve just finished an automation course or you’re trying to transition from manual testing to automation, and you’re looking for a beginners test automation position? Great! You’ve come to the right place! Here are the most popular questions and answers that you must be familiar with in order to land the job you’ve always dreamed of and make your way into the ever-growing test automation field 😉
Here we go…
1. What are the Chrome developer tools built for and what do we use them for?
Chrome DevTools is a set of web developer tools built directly into the Google Chrome browser. As a test automation developer, DevTools can help you in the following matters:
- “Console”: View console log error messages, to quickly identify possible bugs.
- “Network”: Analyze site performance, headers and the http/s commands.
- “Elements”: Inspect the DOM to identify the beset element locator strategy to make the automation stable and robust.
2. What is Selenium WebDriver and what browser does it support?
Selenium is a suite of drivers for automating web browsers. It gives you the ability to access web elements based on their DOM locations and to perform a set of different operations while interacting with the element. The supported browsers are: Firefox, Internet Explorer, Safari, Opera and Chrome. It’s important to emphasize that there is a different driver for each one of the browsers, however the selenium API commands are the same. Thus, tests that were written for Chrome should run on Firefox as well, if you implemented the obstruction layer to support multiple browsers within your framework. TestProject, for instance, provides selenium-based SDKs that already implement that abstraction and allows to run any selenium test on any browser.
3. What are the basic Selenium commands?
We can generally classify WebDriver commands as:
- Browser commands
- Get commands
- Navigation commands
- Web element commands
- Action commands
- Result commands
Some of the popular functions are:
- Get() Command using get() to open a URL in the current browser.
- getCurrentUrl() to check if the URL is correct.
- findElement(By, by) and click() to find and Click on any element of the webpage.
- implicitlyWait() to set a wait time before searching and locating a web element.
- navigate() to navigate between the URLs.
- getScreenshotAs() to Capture the entire page screenshot in Selenium WebDriver.
4. What are the most common locator strategies and what are their pros and cons?
Element selectors for Selenium WebDriver are one of the core components of an automation framework and are the key to interaction with any web application. Choosing the best element selector strategy is critical to the success and ease of maintenance of your automation effort. Therefore, when choosing your selector, you should consider aspects such as ease of use, versatility, online support, documentation and performance.
Some of the popular ones are: ID, XPATH, CLASS. Here is the full article on element sector strategies and their pros and cons.
5. What is the difference between Selenium and full-blown functional automation frameworks (such as Robot or TestProject)?
Selenium WebDriver is a driver that gives you the capability to access your elements on the DOM and perform some actions on them each time for a specific browser.
A full-blown automation framework should provide you with a complete toolchain for your test automation: logging, working with multiple browsers, data-driven with external data sources, reporting dashboards, deployment, execution, collaboration options, code reuse, and much more! To achieve such a full-blown automation framework, many organizations develop a dedicated proprietary infrastructure using complementary solutions to Selenium such as: Unit testing frameworks (Junit, Nunit, TestNG), 3rd party logging and reporting systems, execution with Jenkins or similar. You can simplify the process of developing your own framework by simply using one of the most popular FREE full-blown functional test automation frameworks, my favorite are: Robot and TestProject.
6. How can you handle dynamic web elements in Selenium?
Sometimes IDs and classes of web elements keep changing. Such web elements are called dynamic web elements. These are server-side or database based elements and their values get refreshed every time the page gets refreshed or the database gets updated. In order to overcome these dynamic elements, there are a few known methods:
- Absolute Path: This is the easiest way to solve the issue of dynamic elements. Absolute XPath is the path starting from the root.
- Relative XPath using contains or starts with text: This is the preferred method for handling dynamic web elements if you observe a pattern in the attribute values like ID or Class of the web element.
- Identify by index: Sometimes, you will have multiple elements with the same locator value. For example, there may be two submit buttons with id starting with ‘Submit’. In this case, you can use findElements method and locate the element using the index.
- Multiple attributes: To identify a particular element you can use multiple attributes if a single attribute is not enough to identify your web element uniquely.
Here is a great article with detailed examples of how to use each of these methods.
7. What are the most popular Http based protocols that exist to-date?
- SOAP: XML-based, operates with the two basic functions – GET and POST. GET is used to retrieve data from the server, while POST is used to add or modify data.
- REST: Considered to be a simpler alternative to SOAP. Web APIs that comply with REST architectural constraints are called RESTful APIs. These APIs use HTTP requests (AKA methods or verbs) to work with resources: GET, PUT, HEAD, POST, PATCH, CONNECT, TRACE, OPTIONS and DELETE.
- GraphQL: A query language for APIs. It allows the client to detail the exact data it needs and simplifies data aggregation from multiple sources so that the developer can use one API call to request all needed data. Another special feature of GraphQL is that it uses a type system to describe data.
8. What’s the difference between GET/POST commands?
Both GET and POST method is used to transfer data from the client to server in HTTP protocol. However, the main difference between POST and GET method is that GET carries a request parameter appended in the URL string, while POST carries a request parameter in the message body (which makes it a more secure way of transferring data from the client to the server in the HTTP protocol).
9. How do basic SQL queries look like and what is the use cases for using them?
The use cases of basic SQL queries in test automation varies from testing environment preparation (making sure that we start our testing when the application under test contains with the exact data that support our test scenario) to supporting our data-driven test with values that come form the database source.
There are 3 commands that every test automation engineer should be familiar with (read data from the database, insert data to the database and get data from multiple database tables). Here is the queries examples for those:
- SELECT statement that is used to select data from a database. The data returned is stored in a result table, called the result-set.
- SELECT column1,column2, … FROM table_name WHERE
- The INSERT INTO statement is used to insert new records in a table.
- INSERT INTO table_name(column1, column2, column3, …)
- JOIN clause is used to combine rows from two or more tables, based on a related column between them.
- SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
- SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
10. What are the most popular FREE recording tools available for Web?
The most popular FREE recording tools available for Web are:
11. What are the basic network principles everyone needs to be familiar with?
- IP address: An Internet Protocol address (IP address) is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication.
- DNS: The Domain Name System (DNS) is the phonebook of the Internet. Humans access information online through domain names, like nytimes.com or espn.com. Web browsers interact through Internet Protocol (IP) addresses. DNS translates domain names to IP addresses so browsers can load Internet resources.
- DHCP: Dynamic Host Configuration Protocol (DHCP) is a protocol used to provide quick, automatic, and central management for the distribution of IP addresses within a network. DHCP is also used to configure the proper subnet mask, default gateway, and DNS server information on the device.
- Ping: A utility that helps one to check if a particular IP address is accessible or not. Ping works by sending a packet to the specified address and waits for the reply. It also measures round trip time and reports errors.
- Traceroute: A utility that traces a packet from your computer to the host, and will also show the number of steps (hops) required to reach there, along with the time by each step. Traceroute works by sending the packets of data with low survival time (Time to Live – TTL) which specifies how many steps (hops) can the packet survive before it is returned. When a packet can’t reach the final destination and expires at an intermediate step, that node returns the packet and identifies itself. So, by increasing the TTL gradually, Traceroute is able to identify the intermediate hosts. If any of the hops come back with “Request timed out”, it denotes network congestion and a reason for slow loading Web pages and dropped connections.
12. What is the use case of VPN/Proxy/Localhost in testing?
Sometimes you need to include a VPN or a proxy service to your test automation flow in order to simulate user connection for multiple geolocations, for instance, you want to test how your web application will perform with users connected from a distant location. You will want to check if the localization works properly and the CDN provider works according to expected, or that you are able to apply a specific policy based on region. Some of the popular free services for this are:
The same can be done for mobile testing. You can fool your mobile device and by changing its location while testing. TestProject offers an Addon that mocks your location. Here you can read more about it: https://addons.testproject.io/geolocation-utils.
Localhost is a file that is used to tweak your local machine to appoint any URL for any IP address. It is commonly used to test production URLs with testing environments.
13. What is Page Object Model and what are its pros?
Page Object Model (POM) is an object design pattern in Selenium, where web pages are represented as classes, and the various elements on the page are defined as variables on the class. All possible user interactions can then be implemented as methods on the class. It is recommended that you review these articles as well to get a more in-depth understanding of POM and its benefits:
- Test Automation in Selenium Using Page Object Model and Page Factory
- .NET Core Test Automation in Selenium Using Page Object & Page Factory
- Implement Page Object Model using Appium & Java for Android Tests
- Develop Page Object Selenium Tests Using Python
- Page Object Model- Make It Simple, Use Abstraction
- Page Object Pattern Advantages & Implementation
14. What is KDT and which frameworks support KDT by design?
Keyword-driven testing (KDT) enables to design test cases using keywords that actually represent actions. This is done by implementing an abstract logical layer on top of an automation core framework – i.e. a set of functions & methods. In some cases, the core framework is responsible for the actual execution, while in others it interacts with 3rd party APIs and tools. KDT architecture allows creating different variations of automated test cases using a fixed set of keywords, without requiring any coding skills. The results in an exponential growth in automated test cases and testing coverage. Here you can read more on KDT and on the pros and cons of using KDT vs. test automation scripts.
15. What are the most popular programming languages for test automation?
If you have finished studying all of these 15 questions – You are all ready for your beginner test automation dream job! If you have ideas for more questions everyone needs to know to be ahead of the game and get the job – Feel free to share it in the comments below!
Good luck and Happy Testing 😎