Skip to main content
Öine linnavaade

Don't be afraid of test automation

Tanel Tromp

Is it possible to automate tests without code?

In today's labour market situation, finding a person who is good at testing but can also write code without working as a developer can be quite a hard nut to crack. When I started working as a tester a few years ago, the “test automation” clause was waiting for me behind every figurative door I opened.

 

The need to create a framework for automated testing in agile development that would free up and save time and money was increasingly talked about then, and it is still being talked about today. As someone with a background in UX, writing scripts to create tests didn't seem like a reasonable or encouraging prospect, although testing itself seemed like an exciting and suitable activity for me.

 

So I started looking for a tool that could create automated tests for web solutions without the need to write code and that would have an user-friendly interface – it seemed logical that there would be more testers out there with the same needs I had.

 

After some searching and experimentation with various tools (e.g. Katalon, Selenium ), I finally found EndTest, which had exactly those basic features that I needed as a beginner automated test creator:

 

  • code-free – you don’t need to know how to write code and therefore, it has a fast learning curve;
  • user-friendly interface and configuration – the tool is cognitively and intuitively easy to understand and relatively frustration-free;
  • proper customer support – if you're struggling with technical nuances, then you don't have to ask for help from a forum or conduct a Google search for an answer, both of which are quite time-consuming.

 

In my opinion, the problem with a lot of the so-called open source or code-free test automation software is related to the last two reasons mentioned above. However, with EndTest, I was able to get off the ground quickly and even create my very first automated tests despite having no previous experience with it.

 

 

Why automate tests?

It doesn't matter whether you are in the role of a tester, product owner, end-user or software developer – automating tests is a highly welcome activity. After all, it is extremely frustrating for all parties involved to be in a situation where "everything is broken", "nothing works anymore" and you "accidentally" discover all of it and it only serves to amplify any general uncertainty about the product’s quality.

 

In my opinion, the main purpose of test automation is to be one step ahead of the end-user and also the product owner in discovering (new) errors that occur during development. In essence, the automated testing software runs sets of regression tests that check to make sure that no errors have appeared in the older code during (additional) development.

 

For example, if a new login method is developed, the previous login methods must still work correctly after further development. Manually performing all of the regression tests is very time-consuming and cumbersome (even demotivating), and their cost curve follows a continuously increasing pattern, i.e. the cost of manual testing increases in proportion to the size of the project.

 

However, the time spent on automated tests stabilizes at some point since despite the fact that the number of tests increases, all previous tests are performed "automatically”.

 

"Graph of  the cost  automated testing vs manual testing

Figure 1: The cost increase/decrease of automated testing vs manual testing over time

 

 

What are the direct benefits of test automation for the product owner?

In addition to the above, test automation helps to assure the product owner that the developed product is working properly. And he doesn't have to spend time every morning on entering the domain name with trembling hands or peeking shyly into his inbox to see whether any bugs have been reported by an angry user to make sure whether everything is fine.

 

Proper test automation software can be integrated with communication channels (such as Slack) to send out e-mail reports as well as automatic daily reports. You can also decide whether notifications should be sent whenever tests are running or only when faulty tests are run, and the number of "bad surprises" should decrease very quickly.


"näide tooteomaniku “Tugi” Slacki kanalisse EndTesti poolt automaatselt saadetud aruandest testi ebaõnnestumisel"

Screenshot 1: Example of a report automatically sent by EndTest to a product owner's "Support" Slack channel after a test failed

 

 

Why test the visuals or the appearance of a user interface with automated tests?

EndTest is a tool for performing automated graphical user interface (GUI) testing. In addition to checking the functionality of a solution, I mainly use EndTest to check through comparison in two different time frames whether the visual imagery AKA the appearance of the web solution’s user interface (or app) meets the requirements set for it.

 

Graphic web applications are more visual today than ever before – visuals and design themselves are becoming increasingly more important. In other words, the way information or functionality is visually presented, whether in the form of a button, text, tooltip, search box, etc. is methodically thought through, analyzed from the user experience point of view and supports the user’s goal-oriented behaviour.

 

Therefore, the "preservation" of visuals during development and their stability in the user interface are essential. For example, automated API schema validation tests are not enough to check the user interface (e.g. whether a workflow or element is present on a page) as these tests pass even if all the styles (CSS) are missing and the end-user application cannot actually be used. Besides, it is not uncommon for an API query to appear to be OK (i.e., "Status code is 200") but in actuality, the query does not fully display the data in the UI.

 

"Näide kasutajaliidese võrdlemisest ja ebaõnnestunud testist EndTest tarkvaraga"

Screenshot 2: An example of a user interface comparison and a failed test performed with EndTest.

 

 

How does EndTest work?

EndTest is a paid, code-free, cloud-based platform that uses the Selenium engine to create tests for web solutions and Appium to create tests for mobile apps. Simply put, the software copies and then launches various actions (steps) that a user performs on a website.

 

At the same time, it also checks to see if the web application behaves as expected in the selected browser, operating system, and resolution when an automated test is launched. The expected results are determined by the tester and includes various requirements. The software then checks whether the solution is in compliance with these requirements.

 

For example, you can create an (automated) test for filling out an event registration form in a web application. Such a test may include various requirements defined by the tester: whether the registration modal matches its design, whether the form fields display error messages, button styles, etc.

 

These requirements can go as far as checking whether the content of the filled form also reaches the database. If so, does its content correspond to what was entered in the web application? Or has some data been lost? It is essentially possible to cover the so-called "end-to-end" framework with automated tests.

 

Adding steps to tests during test creation should be doable for most people. All you have to do is run the corresponding EndTest plugin, which records all activities performed by the tester in the web application. Alternatively, you can create the appropriate test manually and add the desired actions (e.g. click on a button).

 

Next, you will need to localize the elements with which an activity is performed (e.g. with Id or xPath) and finally, you must add the requirements (known as assertions), which form the expected solution that happens as a result of a specific activity being performed – for example, if I click on the search button, then the search results are displayed in a specific visual way.

 

"Näide kasutajaliidese võrdlemisest ja ebaõnnestunud testist EndTest tarkvaraga"

Screenshot 3: An example of EndTest’s clean and intuitive design and the structure of a (fictitious) test

 

In addition to graphical user interface testing, EndTest also allows you to perform and automate API queries, which means that you no longer need to use a separate program (e.g. Postman) to check if the Status Code of a query is 200.

 

These queries can be successfully added on to other UI tests. EndTest also supports performing SQL queries and, if necessary, it can access databases (MySQL, PostgreSQL, Microsoft SQL).

 

" EndTestis API päringu “Status Code`i” kontrollimiseks kontrollitakse loodud muutujat (“Variable”) ja selle väärtuse säilimist"

Screenshot 4: To check the Status Code of an API query in EndTest, the newly created variable and its value are checked

 

What I especially like about EndTest as a tester:

  • API testing capability;
  • added mobile and app testing capability – one tool can do everything;
  • data-driven testing capability, i.e. testing different data via CSV files;
  • having the option to use JavaScript command lines in tests if necessary;
  • the appearance and ease of use of the user interface;
  • it is cloud-based, so you can access your tests from anywhere at any time;
  • continuous development of content through additional functionalities;
  • continuous development of the software’s appearance;
  • very fast and excellent customer support;
  • integration with other platforms (JIRA, Jenkins, BrowserStack, Slack, etc.);
  • the ability to view test results as videos;
  • built-in Web Crawler to check page load times.

 

 

What I don't really like as a tester:

  • result logs have poor readability;
  • the tutorial documentation could be more comprehensive;
  • the UX is missing in some parts and the user activity is limited.

 

I highly recommend that all testers who have not yet dared to take the first step in automated testing try out EndTest’s software. EndTest also has a trial version, which allows you to try and create some initial tests to make sure that this is the tool that your company and you need.