Visual Testing: A Necessary Component to DevOps
To keep up with the stresses and agility of continuous integration environments, software vendors are either going to have to keep performing the drudgery of manual testing, or move on to the thrills of visual testing!
As we all know, continuous integration and agile methodologies are on the rise, meaning that companies are releasing tons of software releases – not just in a month, not just in a week, but on a daily basis. With this increase in releases, it can be extremely difficult to ensure that you are thoroughly testing every webpage, every visual element, every User Interface (UI), with every release, and knowing with certainty that any new code hasn’t broken the appearance and layout of your application.
So what is the answer to this conundrum?
That’s exactly the question that our friends at Applitools are trying to answer, and they may have cracked the code with their foray into Visual Software Testing.
Visual Software Testing is the process of validating the visual aspects of an application’s UI. Visual Testing focuses on validating the layout and appearance of each visual element of the UI and of the UI as a whole, as well as ensuring that the correct content is displayed. Layout correctness means that each visual element of the UI is properly positioned on the screen, that it is of the right shape and size, and that it does not overlap or hide other visual elements. Appearance correctness means that the visual elements are of the correct font, color, or image.
Adam Carmi, one of Applitools’ Co-Founders, conducted research of image processing algorithms that can imitate a human tester’s eyes and brain and has come up with a set of algorithms that finally did the work! Based on those algorithms, they built their tool around the premise that it must inspect the application’s UI just like a human does. This means processing entire UI screen images rather than isolated image fragments or opaque UI objects within the application. Advanced image analysis is required to reduce false defect detection and to pinpoint the root cause of detected changes. For example, the tool automatically categorizes the difference as a content, layout or appearance defect, and pinpoints the specific UI elements that caused the defect. Another aspect of a successful visual testing tool is ensuring that the tool is smart enough to highlight and resolve each detected change only once – even if it appears in multiple screens of the application.
The motivation for performing visual testing has grown dramatically in recent years. Software vendors invest huge amounts of effort, time and money to design and develop user interfaces that stand out from the crowd and meet ever increasing customer expectations. Vendors must verify that their UI correctly displays on an ever-growing variety of web-browsers, screen resolutions, devices, and form-factors, as even the smallest UI corruption can result in loss of business. To keep up with the stresses and agility of continuous integration environments, software vendors are either going to have to keep performing the drudgery of manual testing, or move on to the thrills of visual testing!