GUI Test Automation 101 | Racine Framework
What's Stopping Your Team?
If any software or app were to succeed in the digital market, the bare minimum consumers expect is they provide a bug-free user experience regardless of device, browser, and operating system. However, what gives us headaches is that with products being equipped with increasingly sophisticated features to win the competition, manual testing to verify each of features has become such a complicated and long-winded task for us humans.
Nowadays, we feel it’s rare to come across a team that doesn’t wish to automate testing that are so energy-consuming. However, apprehensions regarding its implementation might be stopping many teams from making the switch to automation. You’ve been there, we’ve all been there. But if executed right with the right expertise, we assure you that automation testing is the best productivity booster you can take advantage of. In this article, we will discuss keys to successful automation, common practices and our best selling automation framework “Racine”.
Rule #1: Not All Tests Can Be Automated
Since comprehensive testing is essential for optimal software operation, automation helps to make testers’ lives easier by letting them manually test only what they absolutely have to. For example, repetitive tests like regression tests and integration tests that are prone to human error and are best left to machines.
However, automation testing requires the right automation framework and technical knowledge to yield results. In another words, key to success is to choose the right framework made with languages your developers/testers are used to and ONLY automate what is necessary.
Deciding Which Tests To Automate
Let’s remember, it is NOT possible to automate every test since some of them can only be conducted with human judgment. So, every test automation plan must begin with narrowing down which tests will benefit from being automated.
We identified and advise tests with the following characteristics should be automated:
1. Tests requiring repetitive action with vast amounts of data
2. Tests prone to human error
3. Tests that need to use multiple data sets
4. Tests that extend across multiple builds
5. Tests that must run on different platforms or configurations
6. Tests focusing on frequently used functions
3 Types Of Tests
・End-to-end testing to simulate in actual user environment
・Absolutely necessary to verify a product works at the end of testing process
・Can be costly, therefore should be selected
・Can be executed with less time, used to verify everything works other than GUI
・Relatively easy, can be left to testers to create test case and execute
・Systems with no user facing interface may execute API test as end-to-end
・Used to check program logic in units
・Speedy and stable, suitable for comprehensive verification
・Focus is on units, so its purpose is different from overall system and integration testing
What’s Commonly Automated
Generally, it is considered unit testing is best executed with accuracy by developers as they develop features and components, while “the rest” should be a collective effort between developers and tester. At SHIFT ASIA, we have done the same but “the rest” involving GUI is the heaviest part. For that, we have replied on “Racine” which we use for most of our automation projects to minimize initial setup and accelerate the process.
What Racine Offers
Racine is a GUI test automation tool built based on opensource selenium, designed to automate web application testing. In addition to Selenium, Racine utilizes technology such as Appium, Selenide, Allure and functions unique to Racine in order to meet various testing needs on mobile application side.
Selenium is one of the widely used open-source frameworks, but it comes with limitations. Racine is an all-in-one automation tool that combines different elements to support functionality what Selenium alone cannot do.
• Screenshot version comparison
• Email receiving test
• PDF version comparison
• Data variation test
• API calling test
• Cloud test service data coordination
What we add to Selenium:
• Email receiving test
• Data migration or reference using REST API
• Screenshots and form PDF validation (image/text)
With Racine, thanks to its intuitive interface and functionality, environment setup only takes 2-4 days while most projects require about a week for architect and custom java scripter to complete just the initial setup. SHIFT ASIA can assist ease the load so your team can focus more on building cool products and less on testing management or flaky automation scripts.
How Often do we update?
We regularly hold meetings with clients and engineers to understand needs to reflect those on our next release. This includes monthly update to support OS, browser and latest versions.