Software quality assurance is a critical component of software engineering which is designed to ensure that applications follow a number of agreed-upon best practices. This could include any combination of software quality assurance standards such as ISO 9000 or ISO15504, but it could also include functionality metrics set down by the developers themselves. Because of all these standards, vetting an application for quality is often a lengthy process.
Because time to market is so important, software quality assurance cannot act as a brake on software development. Companies have tried multiple initiatives, such as shift left and continuous testing, in order to break down the idea of testing as a specific phase the happens during development. Instead, the software quality assurance process happens in tandem with the development process, allowing the QA team to provide immediate feedback as programmers plan, write, and deliver new software features.
Even with these strategies, QA testers approach an asymptote of productivity because there are still tests that are boring, repetitive, and time consuming. In other words, the software quality assurance process is not complete without automation, which can liberate testers to perform more complicated, creative, and in-depth manual tests.
How do automation and automated testing fit into software quality assurance?
Software quality assurance activities are designed to evaluate two different aspects of an application—internal and external. The external aspects of software are concerned with usability and reliability, while the internal aspects of software are concerned with the underlying code. These two factors can work together in unexpected ways. You can have terrible code that produces terrible usability, but you can also have good code that nonetheless produces terrible usability metrics.
What’s more, it’s usually much easier to test internal code. In fact, most developers perform unit tests on their own, following a “you write it, you test it” approach. Integration tests and smoke tests are also low-hanging fruit for automation because they can be invoked via command line without involving the UI itself.
Because the UI is so critical to the customer experience, and because the quality of the UI can be independent from the quality of those code, QA testers often focus most of their efforts on the external aspects of an application—which can be much harder to test automatically. In addition, UI tests are also some of the most repetitive. Think of a test where you navigate to the homepage, click on a link, confirm that the link goes to the intended destination, and then sign up for the newsletter—and then manually do that over and over again with different combinations of browsers and operating systems.
In order to unlock the full potential of test automation in the context of software quality assurance, companies need to investigate how to test the UI and other external aspects of an application using automated methods.
How is automated testing done in the context of a user interface?
There are a few technologies that can help when it comes to automating UI tests. Robotic process automation (RPA), which is now the fastest-growing segment in enterprise software—is one candidate technology. Using RPA, companies can record and play back a series of actions that are otherwise difficult to reproduce using code.
Refer to the example above—it’s difficult to hard-code actions that involve navigating a website using keyboard presses and mouse clicks, but those actions can simply be recorded and repeated with RPA. If an application fails to load correctly, then the RPA won’t be able to complete, and the test will be marked as failed, allowing the tester to begin investigating the root cause.
There is one wrinkle in this approach, however. During a normal update, the individual elements—links, tabs, images, etc.—can move around. This will cause tests based on RPA alone to break, even though the application itself may still be perfectly functional. To correct for this, the automation solution you choose needs to remain aware of elements even when they change by identifying them within the CSS or HTML code.
Automated testing with mabl test automation
With mabl, testers can bring stable and reliable automated UI tests to their software quality assurance workflows. Testing with mabl is easy—just click a button to begin recording your actions, and then the mabl solution will learn your test and repeat it with as many variations as you set. Creating a test requires no code, and all tests are resilient to changes in the underlying application. By simplifying the process of UI testing, you’ll allow your testers to spend time on more complex and challenging tests that add rich feedback to your project. See for yourself, sign up for a free trial of mabl today.