Augment your exploratory testing
Patryk Oleksyk - 27 czerwca 2018
Human augmentation is a technology that enhances human capability. If you want a better hearing there is the cybernetic implant for this, you want to see further and better – there is an implant for this as well, you lack social skills, there is an enhancer for this, you want to run faster – let’s just replace your legs with robotic ones, you want to have blades instead of arms? Dude! That’s awesome, but we’ve got too far. So let’s just push “go back” button with this one.
This all sounds like a science fiction taken mostly from Deus Ex game series.
In fact, it is (for now), but is this something we could achieve right now with exploratory testing?
Yes (except blade arms).
Here I want to write a useful list of tools that can improve our exploratory testing activity with the accompaniment of Deus Ex series quotes.
“If you want to make enemies find bugs, try to change something.”
So why even bother with exploratory testing? You could have your checklist which can be executed before every build/deploy or even better, automation could run everything 24/7.
You could have done some product exploration at the beginning of the development process, so why do it again in the maintenance phase?
Because, thanks to that, you could find new threats and issues with the system. Your checklist/automation just compares your inputs (steps/actions) with an output (validation of steps) using some algorithm. You do not find anything new here that you have not coded or written down, because these things look for something else, the regression issues. Checks are needed in your project, there’s no doubt about it, but they cannot be your only testing activity, because you will eventually miss the new issues that will show in the software.
But, in your software, there are a lot of different states and flows that are hidden in the product you’re testing. Only by exploring new flows, doing variations of your action and changing test data, you could find new bugs that could cost your client a lot of money.
And what’s fun about exploratory testing, it gives you a freedom of actions. Moreover, you will encapsulate test planning, designing and performing in one single exploratory session. So if you have ideas to test the product you are basically good to go.
“I never asked for this”
Before we begin our transformation into a half man, half machine. Let’s do a quick overview regarding features your exploratory testing process should have.
- It has to be session based with a strict timebox,
- minimal planning is involved before,
- no formal test documentation is needed before test session, everything is executed ad-hoc,
- freedom of actions, you can test whatever you think is crucial and you are not strict to follow the testing scripts,
- It ends up with test report which is reviewed,
- exploratory testing is a better activity for testers than executing “n” time the same checklist.
Technically, what you also need for this kind of testing is a product, pen and paper and your brain and imagination. That’s true, but you could miss a quick glimpse of an issue, or the issue is not exactly in the user interface. Moreover, transferring information from pen and paper takes a lot of time and this could be an issue when you never have enough time to test (especially in agile or startup projects).
“Technologies are invented to make our lives easier”
So let’s have some ground rules about the tools:
- no automatic script tools involved – we want to explore our system not to create checks for later,
- no test case/checklist managers – in most project management tools is already picked up, so migrating from one tool to another is not an option,
- tools should be only in a digital form – software only,
- have to be free – no paid wall included for the use of its basic functionalities,
- no all in one tool – I would rather have different tools that are built to execute specific tasks than to have tools, the potential of which I would never use.
All clear? So let’s begin.
“The world has changed. The old rules no longer apply.
- Bug magnet (Firefox/Chrome plugin): If you need quick access for test data, bug magnet the browser plugin is your way to go. You can quickly add various values from drop down menu which could be accessed by simple right mouse button click. The only issue is that the test data does not have variation, so for more data-driven exploration, you would need to look for something else, like…
- Data generators – For test data variation and accretion of parts cover there is nothing better than data generators. Here are some popular and out of the box web data generators.
- Mockaroo.com
- Generatedata.com
- Recorders/screenshot – You need an evidence that issues are showing up, sometimes the whole bug reproduction description is not enough, besides showing a visual representation of a bug is always better perceived by developers.
- 1click Screenshot (Firefox/Chrome) – Simple web screenshot plugin for the web, which can also be used for desktop application testing. Screenshots can be altered in the app itself so no additional image editors are required.
- Nimbus Screenshot & Screen Video Recorder – The same functionality as 1 click Screenshot + addition of recording tool. It is accessible the same way as a bug magnet (right click – drop down menu). Additionally, you can take a screenshot of html elements plus, it has the ability to send files to slack and google drive.
- Notepads/stickers – You can replace your pen and paper with digital tools too, it will speed up sharing the information with the team.
- Notepad+ – Used for gathering your idea’s
- Sticky notes apps – up
- Google docs – mainly for the ability to quickly share your reports with multiple people.
- Atom text editor – For report creation, if project management or a team/client dislikes Google products.
- Mind Maps/Models generator – If you need to visualize your ideas and want to have models to represent your thoughts. Mind Maps are your way to go. Also, adding mind map to the test report could have a purpose of the visual implication of your further testing ideas.
- Offline solution – Xmind
- Online -Mindmup or Draw.io
- Accessibility verifier – Accessibility will be more and more important in the future and to speed up verifying accessibility (according to WCAG guidelines) you could use the tools below.
- Siteimprove Accessibility Checker (chrome) – the browser plugin that will scan your site and generate the issue report with the information, where to find an issue in DOM structure.
- WAVE – a tool that requires only your website url. And after few seconds it will display all the issues that your website have, that are not compatible with WCAG guidelines.
- Product Logs and System monitoring tools- Every action, which is done in the system should be, somehow, traceable. You should have access to it to gather additional information If it’s a log file or a monitoring system.
- Knowledge helpers/cheat sheets – You don’t have to know everything (shocker). You can also enhance your knowledge and testing ideas with cheat sheets or testing related mind maps. Search for “testing cheat sheets” or look up for “testinsane mind maps” for additional information.
- Time tracking tools – You need to track your test session time. Knowing when to go deeper, or changing the context of your testing, is one of the skills that you need to enhance when you are exploring the software
- Stopwatch – It’s a must-have, and there is a lot to choose from, knowing how much time you have left in the session, it’s a good motivator to speed up your action or change context.
- 5-minute beeb record – In RTS/MOBA games map awareness is the most important thing if you want to win. So to train yourself, many people just have a beep sound, played every 5 seconds, and after to beep, they have to look on the minimap. You can use the same technique with exploratory testing. So let’s say you have 1-hour test session. And with this 1 hour, you have to change the context of your testing space. Use the 5-minute beep recorded to keep track with your submodule session time.
- Postman – HTTP Request composer to simply and quickly test web services.
“It is not easy to process infinite possibilities alone.”
Exploratory testing is a good and a rewarding method for testing software if done well. There are a lot of tools (a lot more than you can find here), that could help you with your testing activities, but don’t let only tools drive your testing. They are only here to support our work and not to do the job for us. Your main tool for this activity should be always your brain, so use it vigorously.
If you have some other tools to recommend and are not on this list, I would gladly hear about them.
And like always, have fun.
Patryk Oleksyk
Test Lead, IT consultant.
Patryk is the Company's first tester. An agile testing enthusiast who finds
fun and passion in exploratory testing and checkers automation. Tries to
be an advocate for clients and testing. In free time he plays indie
video games or can be found working out.
Comments