When people talk about testing tools we all generally think of the same things: test management tools, test automation tools, test design tools, etc. Often overlooked, however, are the software tools which testers across the world use every day to become more accurate and efficient in everything that they do. Here we’ll run through some of the most useful categories of tools to look into to take your testing capabilities to the next level. Most of these tools are even free!
No, we don’t mean Microsoft Word. Every developer out there will be intimately familiar with the plethora of robust text editors on the market and has perhaps even started a minor war debating the merits of their favorite one. But these tools aren’t just for developers! Most testers, at some point in their career, have had to work with some sort of script, verify the contents of a file, or manipulate data.
Depending on your operating system, there will be around 3 or 4 really solid text editors that rise to the top. Some are free, some aren’t, but they’re easy to find thanks to how large the community of users is. Do yourself a favor and find one you like. Whether you need to write some code, compare the contents of files to each other, or build some input data for your tests, a quality text editor will make your job much easier.
I don’t think I need to tell any tester about the value of capturing on screen images. This can be useful for defect reporting, communicating issues to support, detailing steps to reproduce bugs, or even just to capture something for your own review later. That being said, the standard screen capturing support of most operating systems is a bit lackluster. Use tools to expand the capabilities of screen capturing with new features like cropping, region captures, annotations and more.
Most of today’s applications are developed for the web and, as a result, testing software has changed significantly. Sure the process is what it is, but from a technology standpoint, this kind of software is a totally different animal. As technologies change we need efficient ways to keep up. A tester should understand what a web site is made of. So we have another class of dev products that aren’t just for dev; the developer tools of modern browsers. Chrome ships with its own flavor of developer tools, Firebug is a popular choice for Firefox, and the other major browsers have something similar available as well. These tools become crucial for most test automation activities and can provide enormous value during manual testing efforts as well. Get familiar with these tools, the HTTP protocol, and at least the basics of HTML.
Often times, when testing web applications or networked applications, looking at the application presentation just isn’t enough to detail the source of a bug. Much like the browser based developer tools which glean a lot of information, there are other low level tools that can lend a hand. Tools like fiddler operate as a local proxy capturing network traffic and presenting it in a context meaningful way depending on the protocol. It handles HTTP traffic very well. Going even lower, packet capture tools like Wireshark can help identify the source of communication issues with an application. A little bit closer to reality are things like W3C validators which identify illegal markup and user agent spoofers which allow your browser to issue requests with an alternative user agent string.
There are few things more frustrating for a tester than not having appropriate environments in which to conduct testing. The capability to spin up a virtual machine for testing can be invaluable when you simply cannot afford to wait for appropriate environments to become available. Try these tools for a robust and well documented solution to personal VMs.
When it comes to one off tasks like massaging or creating data, performing complex calculations, or generating defect specific debug data based on some large input, you’ll often find that writing some code will be easier and faster than performing these tasks by hand. Ruby, Python, Perl, or even shell scripting languages end up being excellent candidates for this kind of work. They’re lightweight, easy to learn, and come packed with all kinds of goodies for common mathematical and file I/O tasks. Be careful not to get caught in the trap of spending an hour writing code to solve a 30 minute problem, but doing so to solve a 2+ hour problem can be a real boon.