Effective testing is key to the success of any IT project, but can be difficult to get right. When not done well, it is a source of frustration for project managers, business users, and developers alike. This month’s feature suggests five tips for removing unwanted stress from the testing process.
1. Testing environment. It can be difficult to test in a poorly configured test site that has incomplete data, broken images, and other points of difference from the final live environment. This wastes time by prompting ‘non-bug’ reports, and acts as a distraction which can cause genuine problems to be missed. Testers should not need to ask ‘will it be faster and more stable when it’s on the live server…?’ but as far as possible be testing exactly what they will see when the new functionality is released.
2. Test plans. The testing process can be made easier for all concerned by creating a written test plan in a spreadsheet, listing step-by-step actions and expected outcomes. This ensures that all key functionality is covered, and makes it easier to conduct multiple rounds of testing by different or untrained testers. In addition, having the ability to run through the entire plan from the top will catch the common case where a fix for one problem has broken something else. As useful as test plans are, it is also beneficial to encourage users to do some ‘off piste’ testing of their own, as this will often turn up more unpredictable issues.
3. Beyond functionality. Most projects focus on testing functionality, but ideally this should be seen as just one part of a wider testing strategy. It may be beneficial to consider browser, usability, security, accessibility, and load testing too. It might sound obvious, but a website that functions perfectly for your internal testing team is of limited value to an outside user who can’t view it in their chosen browser, or finds the site is too slow to respond. With all bases covered, you can be more confident there won’t be any nasty surprises after launch.
4. Automated testing. In cases where testing is repetitive and time consuming for users, it can be beneficial to enlist the services of a ‘robot helper’ to run the tests programmatically. It is possible to automate any web based task that can be completed by a human, including logging into a site and moving through a step-by-step process, such as adding items to a shopping basket and then checking out. A smart developer might also enable their ‘robot’ to read and write spreadsheets, allowing it work through an input list (eg. of 100 products) and log the results for review, saving a huge amount of human time and effort.
5. Shared responsibility. Testing can be completed more smoothly if everyone does their bit, rather than seeing it as someone else’s responsibility. Above all, developers should test their code from a user’s point of view before releasing it for wider testing, such that they themselves are confident that no bugs will be found. That doesn’t guarantee a bug free development of course – but it’s a good starting point! On the tester’s side, they should see it as their role to track down and report any bugs that do exist, such that a problem that is missed is equally their own responsibility. And for the project manager, it’s essential to give testing the time it deserves, and not view it as something that can be ‘squeezed’ if schedules slip elsewhere in the project.