Software testing like any other IT industry branch provides a wide field for automation. As complexity of software products increases, the quantity of steps required to assure their quality is literally boosting; and definitely a great deal of those steps can be performed by automated tools. So let us investigate how this demand for test automation software is being met today.
The first stage is automating the code investigation and improvement process. Such things as checking the compatibility of code units in a big software project are impossible to perform manually. Given that each project has its peculiar code structure, the unit tests are typically written by developers. In order to facilitate this process they use special testing frameworks such as xUnit. Most of those frameworks are open-source and thus the deep customization is possible in order to meet specific demands of a project in a best way.
GUI testing is somewhat a more complex task. It is mostly related to emulation of an end user experience with the product so there is too much of personal approach about it. Such things as interface simplicity or color scheme attractiveness require a human to evaluate. Still, various GUI testing tools exist which help to automate at least some basic user actions.
Selenium’s main advantages are flexibility, easiness and support of multiple programming languages. The latter is highly appreciated by developers carrying the task of UI testing because typically, even inside one project, each team member has its own favorite coding techniques. Still, there are some flaws as well. Selenuim is not always good at processing complicated test scenarios with multiple steps. It is vulnerable to session shutdowns and browsers failures; some complain about test failing due to slow page retrieval. Hopefully these issues will be fixed in the future as the tool continues to be improved by contributors.
Sikuli is another well-known automated testing tool, developed inside MIT and presented in 2009. Its killer feature is ability to use screenshots as testing instructions: a user captures his or her actions with UI elements and then these actions are added to the Sikuli script. Of course this needs to be done in a correct way; yet, afterwards you get a working test script which you didn’t even need to write yourself. Thus this tool does not require knowledge of any specific language and is especially handy for performing mobile testing. Speaking about cons, Sikuli is vulnerable to significant GUI design changes – if the GUI becomes different, the old script may become useless.
Another product in this niche, QTP (Quick Test Professional), is a big corporation offspring. When a big corporation decides to establish its presence in an industry segment (automated testing in our case), it quite possibly means the latter has a promising future. Initially developed by Mercury Interactive in 2001, QTP was integrated with HP Service Test product following the acquiring of the company by Hewlett-Packard. QTP was designed for testing Windows-based application mostly and is well compatible with such platforms as Oracle, SAP, Windows Mobile, Silverlight etc.; at the same time it does not support Opera and Safari. Its big advantages are enhanced compatibility with databases and reporting functions. QTP is a licensed software product; this makes it more enterprise-oriented.
There are many more testing tools; and perhaps even more are proprietary and locally used (big software companies tend to develop their own ones internally) so there is not much open information about them. As the QA software niche continues to grow fast together with the whole IT industry, we will surely have new solutions coming soon. So stay with us and get prepared to more detailed reviews!