Technologies for automation testing – Our Story
The iGaming industry is a very competitive field. It requires continuous innovation to stay ahead of the competition curve. Automation testing is a big part of this process.
Our Sportsbook team continuously rolls out software updates that improve and enhance our sports betting software. Every update covers new features that the QA team tests alongside the existing ones.
In the iGaming industry slow and steady doesn’t win the race. You have to be quick, but you can’t afford to make a mistake. We used to perform 200 test in 12 min, while today we are easily executing more than 500 tests in less than 5 minutes. The automation tests save us time and increase the depth and scope of tests. The number of tests is growing continuously and each test is updated accordingly. – Ivancho Chagorski, Quality Assurance Team Lead
1. CREATING THE RIGHT TESTING ENVIRONMENT
Our QA team has worked very diligently to develop test automation. They have even created a custom-made Singular testing framework. It is based on Java utilizing several technologies:
- Jackson (Core, Annotations, DataBind, ParameterNameModule, JDK8 Module, JSR310 Module)
- MySQL Connector
The whole process started when we decided to migrate our regression test from JMeter scripts to Java code. First, we researched existing frameworks and utilities. However, existing tools could not help with our complex business model. For that reason, we decided to try and adapt some of the tools. But this didn’t work either. In time, we substituted the tools with our own code. This is how we build the Custom Singular framework that suits best our testing needs. – Kristijan Rusu, QA Engineer
2. AUTOMATION TESTING PROCESS AND TECHNOLOGIES
The testing covers three segments:
- Back – End testing;
- Front – End testing;
- Load and performance testing;
Each team member focuses on a different segment combining automation and manual testing. However, each of them goes through the process of building a test. The goal is detecting and eliminating bugs within a certain time-frame.
Test Scripts are the most detailed way to document testing. A test script is a set of instructions that is performed on the system. Each test script aims to ensure that the system functions as expected. There are various means for executing test scripts. A script typically has ‘steps’ that try to fully describe how to use the program. In manual testing, these are more commonly called test cases. A Test Case is a set of actions that verify that a particular feature of your software functions properly. – Deni Stojmenov, QA Engineer
a. Back – End regression testing
The team applies regression testing for the back-end. They test whether new software modifications have broken existing functionalities. Moreover, it confirms that the previously eliminated bugs do not reemerge. This way, the QA team safeguards the software from newly introduced bugs with the build of a new feature.
The regression testing aligns the technical and the business requirements. It also gives you complete control of the whole testing process and makes implementation of technical requirements much easier. Finally, makes the development of new test cases fast and easy. – says Rusu, QA Engineer
b. Automation testing of an Angular-based website
In the past, we did the Front-end testing in Selenium with a web driver on a selenium grid. But since we switched to Angular, the team started using Protractor for the FE testing. Selenium grid is used again for the testing process performed on a Mozilla, chrome and Microsoft edge browsers.
Currently, I am working on automation testing for our Sportsbook website. I have learned that the deep understanding of modules’ behavior is very important for each QA Engineer. In addition to testing whether the component works as expected, you also test how it should not work. One of the major challenges is choosing the right language and testing framework. We code in Typescript and use Protractor as end-to-end test framework. – Verche Gjorgieva, QA Engineer.
c. Load and performance testing as a key segment of software testing
The team conducts load and performance testing after each minor update. The load tests create a simulated demand on the software. The results show whether the betting website can handle the expected number and actions of users.
We create software for millions of users. Moreover our software deals with real money. For that reason, load and performance testing becomes one of your highest priorities. We use Jmeter for the distributed load test. While virtual machines are orchestrated with Ansible and Prometheus database with the custom-made dashboard in Grafana for monitoring Load test – Ivancho Chagorski, QA Team Lead
3. Manual is still part of the mix. WHY?
Automation testing utilizes tools, scripts, and software. It relies on pre-scripted tests. These run automatically to compare actual results with the expected ones. The programming languages that we use are Java and Typescript. Manual testing requires a QA Analyst to perform all actions as an end-user would do. This way, we get a better insight from a user perspective side. Manual testing aim to discover bugs under development inspecting the source code changes. – Mihaela Popovska, QA Engineer
While we keep manual as part of the mix, the majority of our resources are focused on automation testing. The junior QA Engineers start with manual testing which helps them better understand the software. Gradually, they learn to develop effective automation tests.