Wednesday, 4 June 2014

software testing toolsI’ve been working as a tester for more than 6 six years. During this period much has changed in QA practices, and I’ve always tried to keep up with times. As I have quite a decent experience in software product testing, from time to time my colleagues ask me of some advices concerning various tools that simplify performing their routine tasks. This finally brought me to the idea, the result of which is in this post.
So, I’ve decided to make a list of tools, which I often use in my work and which make my life as a tester easier.  They are all used for different tasks, on different platforms and in different cases. This list contains only free and open-source tools which are useful for testing any software products (perhaps, I’ll make another one for paid tools).
Xenu’s link Sleuth is a great tool for checking links. It was named the fastest link-checking software by industry authorities. Apart from checking for broken links, the tool provides a much broader functionality, which is useful primarily for website optimization. For instance, Xenu provides the site map, detects and reports redirected URLs, finds non-unique page titles, finds images with missing ‘alt’ attribute, etc.
Testers can use one more Xenu’s feature, which is searching for pages with long response. Of course, this does not in any way replace load and performance testing, but can provide some useful information about the response optimization. I like Xenu for a simple and accurate interface as well.
Clip2net is a must-have tool for everyone, and testers are no exception. It allows quick and easy capturing, storing and sharing screenshots. I often use it during Skype calls. The simple image editor with arrows and notes is really essential when you need to highlight some points. Available for Android and iPad. Lite and Pro versions provide greater possibilities, such as bigger storage space, longer storage time and others.
PicPick is a multifunction tool that allows capturing screenshots, editing images, picking colors, and provides a broad range of graphic design accessories. I use PicPick mostly when I have tasks related to redesign. It allows for quick checking pixel color instead of applying to code and digging in .css file. But the tool is actually much more than that.
This well-known web development tool integrates to Mozilla Firefox. You all know its great debugging, editing and many other possibilities. I’d just like to add that it is especially helpful for beginners, who want to look through the code, to see what the server returns. When writing test cases, Firebug can be used to name an element, to know its id, to describe bugs and elements.
This is a powerful tool for Android debugging. DDMS is integrated to Android SDK and ships in the tools/ directory of the SDK. Designed primarily for programmers, this tool is useful for us, testers, for collecting logs and capturing screenshots on Android devices.
I use this tool to generate locators of web elements quickly and easily. This powerful Firefox extension is really helpful in test automation. You can use this tool also for finding and testing already generated locators, which you use in your automated tests, for checking XPath existence on the page, testing the work of Selenium methods with them.
7. Sikuli
Sikuli is an image-based automation tool, which takes a visual approach to elements on your desktop. You show it how a button, shortcut or link looks like, and the tool recognizes it and captures some part of screen for active area. Sikuli is great for desktop automation when you cannot easily access GUI’s source code.
JMeter is a load testing tool designed initially for web applications. It allows measuring software performance both on static and dynamic resources. Apart from its intended application, I used its source code for writing scripts for continuous integration.
Jenkins is a perfect tool for continuous integration. We use it all the time: when some build is released, the tests start running automatically. What I like about Jenkins is an active community support  and a great amount of plugins to support development and testing process.
10. Appium
We’ve chosen Appium among several analogs for mobile automation. It supports both iOS and Android native and hybrid apps. The thing I appreciate the most is its dynamic development. New features appear frequently, bugs are quickly fixed, etc.
Another tool for mobile automation Robotium is targeting Android only. It is a simple and stable framework, which requires minimal time and knowledge. Its smooth integration with Maven, Gradle or Ant allows to run tests as part of continuous integration.
The tool is designed for test documentation management, such as test cases and test suits. It provides a big detailed report data, which can be managed easily. You can sort the reports by sections, which is really useful on big projects, when it’s hard to keep an eye on everything.
13. iTools
This is a great analog to iTunes, which simplifies the work with iOS devices significantly. It has a simple interface and all the necessary features to make the work with iOS devices easy.
14. Github
This is a public cloud repository, which provides convenient management of your code. Multiple users can make changes to the code, comment on lines, report bugs. When you have a big team, Girthub is great for work optimization, integration and synchronization.
15. Maven
Maven is a project management tool which makes it easy to work with Java projects. Maven has its own repository where the libraries are stored. It decreases the project size significantly when developers pass it to testers and vice versa. The libraries are downloaded locally and you don’t need to look for new versions through Internet to update them.
These are my top 15 free tools for testers.  Which would you add or remove? I’d be glad to hear your thoughts in comments.