March 6, 2017
Unit testing is a methodology which requires diligence and a relentless approach to testing software. In this article, we’re going to discuss our approach to QA testing across a vast array of TV applications.
Unit testing is a component of Test-Driven Development (TDD). Unit tests are critical as it ensures that smaller units of software are free of defects before they are reintroduced back into the main branch. The creation of an exhaustive list of test cases is vital to investigate the threshold of any software unit. Unfortunately, the hours required to perform such testing has increased dramatically over the past few years as the sheer number of TV devices is staggering.
Float Left Interactive builds TV apps for a vast array of set-top boxes, SmartTVs, and mobile platforms. These devices include but are not limited to Roku, Samsung Smart TV, Apple TV and Android TV. Each one of these platforms has a series of models and chipsets that we are required to support when deploying a new app. On average, we create roughly 300–400 test cases per device model.
3 platforms * 3 models * 300 test cases = 2700 test cases per app that would need to be tested and verified before sending along for certification and publishing! Also, device manufacturers often have several firmware versions in the market, and our apps much perform correctly on each one of them. Additional firmware doubles and sometimes triples the number of hours required to test properly.
By now you can imagine that the hours required to support the testing is difficult to manage. For this reason, Float Left has developed a comprehensive solution for reducing the human-factors of QA testing.
Aside from the obvious benefits of testing automation, is that faults in software will sometimes remain unseen during an initial test. Automation allows our us to perform the same test multiple times to ensure the unit is functioning as expected. It is incredibly tedious with a human performing this task.
Unit Testing for TV applications is much more challenging as compared to testing for a website or mobile application as the engineer can inspect each element and create a script accordingly. Automation scripts for TV applications offer little or no feedback as it is digital and dynamic for each channel. At Float Left, we have made it possible to create an automated unit test for almost all test cases required for TV applications.
Advertising, channel behavior, channel graphics, UI, performance, search, video, and audio functions are all converted into test cases regardless the device. We take care of each of the above aspects in detail before any channel is live to our client’s viewers. It also illustrates how our QA team investigates and decides to pass or fail a particular test case. We describe each test suite and their components in detail below:
Authentication is also another area we spend a lot of time trying to get accurate results. Defects or faults during these critical processes could be catastrophic for our clients. It could also create legal issues surrounding entitlement.
Automation testing is performed by navigating to each element and saving the screenshot for each test. The user interface or graphics differ from one device to the next or other resolution types. Linking or device activation, verifying the focus, episode picker, poster layout, and show detail screens are some of the examples related to the user interface that is tested manually and by automation. Our QA team pays close attention to these critical areas since it is directly reflective to what a viewer could see within the application.
Localization testing is necessary as there might be some text or poster which might have missed to translate into required language. Also, depending on the location of the ISP, some contents gets filtered. By automation, we can have screenshots of each screen and can study later while the regression is testing can run in parallel. The allows us to regression test and verify localization simultaneously.
In many cases, TV apps have a need for searching across vast libraries of content. With this in mind, it’s vital for us to test if a particular search string will retrieve the proper set of results. We can test search using our automation scripts. We send the search function pre-defined characters and verify the results. Various factors such as selecting only available content, or navigating it to the correct screen if a viewer selects an item from the results should NOT crash the app.
At Float Left, we are committed to creating innovative ways to help brands launch TV services in the most efficient way possible. We are always striving to discover new ways to reduce cost and increase the quality of our products and services.