I’ve tended to keep this blog more distanced from my day to day testing but this in itself has drawn some comments that I don’t talk about day to day “testing”. Well, I’ll hopefully address that with the following few posts about some of the tools and processes I use when testing.
Most of my testing is very lightly scripted and consists of lots of exploration, mainly because this way of working suits me better. I’m not one for re-writing manual tests, ammending manual tests when little details change and being too reliant on a test I wrote well in advance of my testing. Information is constantly coming in and to re-adjust to this with static tests is something I’m not so keen on.
One of the most important things for me when testing is to have as much information as I can at my fingertips, so that when I find a bug I don’t have to spend ages setting up some tracing, reproducing loads of times and then constantly adding more details to the bug ticket. All at once. As much information as possible is my moto. I can then whittle it down and include only the necessary. It also helps when communicating issues as the more information I have available the more concise and accurate I can be when discussing bugs.
What I list here is MY way of working. It suites ME and the way I think. For many testers this may be too over the top, for others it may be too little, for some it might prove useful. I do hope you get something from it or gain some inspiration to check out new tools that might add some value to you. But more importantly I hope it inspires you to tell me (and the test community) how you do your testing. What tools do you use? What approaches make you more effective? I’m always intrigued to see how testers work. Testing is very personal and we each have a special way of utilising our minds to the fullest. This here, is mine, but I would so love to hear more about yours.
Logging, tracking, effectiveness and monitoring
The following tools and techniques are all free and could offer some effectiveness gains when testing.
Fast Access to tools
Being able to fire off tools and apps quickly is a key point to becoming super effective for me. For all of my regular applications I have a batch file on the desktop which opens the tool of choice with the right settings first time. This means I’m never more than two clicks away from launching an app. I could use the quick launch bar or other docking stations too.
Separation of work and play
The first thing I recommend to anyone is to get some separation between work and play. In my view there is a huge effectiveness gain to be made by focussing on the task at hand without the distraction of Email, web, instant chat and twitter etc. Sure, you might need them for collaborative projects but when testing alone I always recommend separation. Time boxed sessions of testing where distractions are limited lead to wonderful testing.
To keep work and distraction seperate I use “desktops” from sysinternals. Desktops allows me to have four different desktops available. So I keep work in one, and communications/distractions in the other. I often work on VM’s so I keep these sessions on another desktop. One physical desktop, four seperate containers to split them out.
ALT + 1,2,3 or 4 switches between the desktops and the usual copy/paste stuff works too.
I also have a VM created for my different browser tests. The VMs have nothing but testing tools on them meaning limited distractions.
I use the various bookmark synching tools to get bookmarks on all machines. An example of which is XMarks for Firefox. I can install the add on, download my favourites, then disable XMarks and remove all none-work links. This means I won’t lose the server stored bookmarks but I can remove temptation to surf the web for the latest NBA results or that nice shiny car I want.
Having every browser you test on already set and ready to go is essential for any web tester..right?. I also have VMs with older versions of browsers too meaning I can quickly spin up a version and repro a bug or do some new testing. A good source of old browsers is here
Firebug and Fiddler
When I test I like to use Firebug and Fiddler as a base set of traffic/post sniffing tools. Firebug not only captures errors (that you have configured it to catch) but it also enables you to inspect the page elements too. This is great for seeing where specific errors might lie in the code. It’s also a good way of identifying elements for automation.
They are both super little tools for finding out what messages are being sent between browser and server. You can intercept, change and remove these request too, which is great for failover and security testing. Others are available though….I also quite like CharlesProxy.
When testing websites I always like to run a quick accessibility test just to give me some feedback on the structure of the html and CSS. Even though it is looking for accessibility issues it often reveals some surprising information about the structure and quality of the code. I did a whole post on accessibility testing here.
Big thanks go to Alan Richardson for his inspirational blog post regarding Samurize.
I copied Alan’s setup and then changed mine slightly to also include the last 50 records of the main activity server log which basically shows me instant reports on what the server is doing and what traffic is moving within the system. This is excellent when you encounter a bug as you can often see straight away what got logged out. Extra information but also rapid information for raising bugs.
I run Samurize in a VM as it’s not supported on Windows 7 64 bit. I find this keeps it clean also and doesn’t annoy me when I’m not testing. It’s also possible to create many different config files meaning I can easily switch between log reports or other heads up information. It really is a super little tool.
Your not using a notepad on steroids? Notepad++ is my favourite with it’s massive array of add-ons like file comparison, file monitoring (tracks the last x rows in a log file), coding intelligence and a huge number of other features. Superb.
BGInfo is a new tool to me that got mentioned in a meeting the other week. It basically adds to your desktop background a whole load of information about your machine. This not only aids in reporting bugs about specific machine make up but it also stops confusion when using multiple test machines. It’s now nice and clear which test machine I’m testing on.
I’ve blanked out my computer settings btw.
Xenu Link Checker
A quick run through of your site with Xenu Link Checker will give you a good idea of all the dead links and missing content. This is a really fast way of seeing broken content on websites. I tend to run this first off as it gives me clues and ideas of where to look for more serious bugs.
I tend to have process explorer on standby ready for those times when i need to find out more about an application and further details of it’s process. Think of this tool as Task Manager on Steroids. I particularly find this useful for searching out detailed DLL and memory usage.
Process Monitor is a super useful way of seeing what processes are being used when. I use this rarely but it’s a great tool for finding out what processes are being used when.
Wireshark is a new one to me [Wireshark is a packet trace tool that allows the user to capture network traffic going in or out of a specific device]. I’ve been using it recently to track SIP protocol messages whilst investigating a loss in connectivity between my SIP phones. It showed that no messages were going one way which highlighted a dodgy config of SJ Phone. That would have taken me a while to find this fault without a useful tool like WireShark. In some instances that could have resulted in a bug ticket using up resource to investigate?
My IDE of choice is Komodo edit. I’m no coding expert but I dabble with really basic Python and Ruby scripts. I use them mainly to do basic checking like scanning folders, extracting text from websites and launching basic ui tests.
I also do internal reporting pages in HTML etc so use it for those tasks too.
Where would I be without trusty Burpsuite? I’ve only really dabbled with Burpsuite sporadically in the past but since starrting here at NewVoiceMedia I’ve been cracking on with Burpsuite in gusto. Burpsuite is a security testing tool. It’s so rich in features that I could spend an entire blog post on it, maybe I will do. I’ll let the burpsuite site explain the basics instead.
There’s some more links here on my delicious feed: http://delicious.com/maximumbobuk/security
For basic data loading through the UI or observational testing I find Selenium IDE invaluable. On a project a while back I needed to constantly log in and out to get access to the feature under test. So I used a UI automation test to do the donkey work for me. Don’t be put off by people saying NO UI TESTING!. There are levels of UI testing. If you are basing your entire automation suite on a set of record and playback tests then I’d suggest you need a new strategy. If you are using Recorded tests to speed up repetitive jobs, to get you to known states, to do blink testing or to load sample data then there’s not much wrong with that.
Notetaking, Reporting and Test Management KeePass password manager
With a huge array of networks, tools, web logons and environments it takes a secure password manager to keep them all safe. Step up KeePass. Simple. Safe. Quick.
Treepad is my uber multitask tool. I use Treepad for all of my work. I’m writing this blog in Treepad. I have my books, eBooks, scripts, articles, presentation outlines and learning material in treepad. I use Windows Live Mesh to sync between machines. What this means is that it has also become the defacto place for me to write out my notes and other pertitnent test information.
I jot down observations and insights, ideas for discussions and snippets of information.
It’s easy and quick to open. Saves using CTRL+S. Outputs to txt file. Allows copy and paste. Allows hyperlinks. And that’s about all. Not a lot of gloss. just the basics. Perfect.
Freemind and Mindmeister
My mind flows in diagrams and visualisations. My mind works best when I try to visualise things. I like simple diagrams to explain logical flows. I like screen mockups rather than words. I also prefer mindmaps to descriptions and notepads. A good mindmap tool allows me to jot down ideas and thoughts and move them around to form a logical pattern or flow.
I always use mindmaps to brainstorm test ideas. Some of these ideas become test cases, some become areas to explore, some become nothing but information and many often get deleted. Freemind is a good free and open source tool. I prefer mindmeister because it feels quicker.
When we read we often read at a much slower speed than possible. To speed up our reading process we can use the tried and tested finger moving across the page faster or hop on to the web and use a tool like spreeder
I started using Spreeder about a year ago and absolutely love it. Got a long spec to read, some emails, blog posts? Not a problem, load up spreeder copy the text in to the window and then get reading. Spreeder works by flashing the words on the screen one at a time at a speed you can define and change on the fly.
At first I was skeptical but I actually ended up reading at a much faster rate and accomodating this information at the same time.
There’s also a handy Bookmarklet which opens up any selected text from your webpage in Spreeder ready to go. It really does make reading text quicker, but don’t just take my word for it. Have a go.
Let me know what tools you use in your day to day testing.