What does it take to test software in a complicated environment of Hardware->Mobile->Software->Cloud? These days, applications are made available on multiple platforms and OSes, which naturally generates a larger codebase and sometimes requires using multiple programming languages. This makes testing, and more specifically test automation, way more challenging. In this article, Mr. Barak Aviv, QA manager at Top Image Systems (TIS) shares with us his point of view on how to make it right with open source tools.
“… I am a big believer in automated testing, and I do recommend implementing it anywhere possible.…”
Mr. Barak Aviv, QA manager, Top Image Systems
Founded in 1991, TIS operates internationally while being publicly traded on the NASDAQ stock exchange. TIS provide organizations around the world with the technology needed to automatically transform their incoming business content into useful, digital data that’s delivered directly into the applications that drive the business. TIS robust platform successfully drives some of the world’s most complex, highest volume document process automation projects at SSCs and BPOs worldwide. The end result: helping companies achieve the highest rate of straight-through-processing possible.
Please describe the R&D environment at TIS
At TIS we work mostly with the Microsoft Eco-system. We use the Team Foundation server (TFS) in conjunction with PowerShell to support and execute the entire software continues integration, build and release processes. Microsoft HyperV technology provide us with the necessary server visualization capabilities. TFS post-build steps validate the software and environment readiness for test automation and are responsible for executing the relevant tests.
In addition to the TFS flow, we use more tools to complete our test automation needs – TestComplete C# scripts for the desktop application, Selenium for the web modules and the Appium framework for mobile applications.
What tools do you use to support E2E Android Automation for the TIS Android solution?
To support our Android automation needs in the mobile area, we have developed an internal proprietary framework which relies on several open source tools:
- Appium for functional testing.
- Android SDK (Device camera API).
- Amarino, a toolkit consisting of an Android application and an Arduino The toolkit provides an easy framework for processing events between an Android application and the Arduino open-source prototyping platform.
- Automatically controlled robotic arm that mimics an actual person and his movements.
This collection of tools provides us with E2E testing capabilities, which in turn contributes to a higher level of product quality and improvements to our Android solution algorithms.
What in your opinion, is the optimal release cycle in an agile based development environment?
We release a mobile version on a bi-weekly basis, and every two months there’s a major version with new features. This means that we have about 2 weeks to complete the regression cycle, and test automation plays a significant role here. In addition to automation, we use crowd testing to help shorten the overall testing cycle. We use Applause testing solution to cover a verity of smartphone devices and geographical locations in a relatively short period of time. Crowd testing also enable us to test features which are almost impossible to achieve with automation, such as user experience.