Why Software Testers Should Help Developers Debug
In your software development team, do testers help developers troubleshoot code problems and participate in debugging? Some managers frown upon testers scurrying any farther down the rabbit hole than finding a bug and reporting it; others want their testers to be active members of the bug-fix team. Helping developers debug can be a boon to the team; testers are naturally good at sniffing out problem areas and understanding how seemingly disparate pieces tie together.
Moreover, helping coders boosts your credibility. It shows the team that you’re all in and willing to help solve problems, make life easier for other people, and make your teammates look good. Here are some suggestions to make debugging fruitful.
Ask where the logs are for every service and handler involved in whatever you’re testing. Often there are multiple logs that can be searched or watched in real-time as you test. Logs can give valuable information that pinpoints exactly what’s going on—if the log reports enough information.
Pasting log events into a bug report positions the developer that much closer to understanding how to fix the problem as soon as the report is received. If the events in the log aren’t verbose or if a log doesn’t exist at all, testers can help here too by suggesting the logs be improved. Testing is easier when observability is high.
You should also consider the state—that is, the state of the application or an object at any given time. Make models of what the software can do and change only one variable each test. Learn about race conditions and deadlocks.
In practice, testing can only exercise a tiny fraction of all the feasible paths the code can take, so some bugs may be very hard to reproduce and therefore debug. But, if nothing else, it helps to know in what states and conditions the bug does not occur. Like Edison said: “I have not failed 10,000 times. I have not failed once. I have succeeded in proving that those 10,000 ways will not work. When I have eliminated the ways that will not work, I will find the way that will work.”
Take good notes. Keep an editor window open to record both your stream of consciousness as you test and everything you’re doing to the system. Alternatively, use a product that automatically records everything done during a testing session. This will prevent those situations where you find a bug and can’t remember exactly what you did that may have triggered it. Plus, you can use the notes to compose a story of your testing, which may help provoke questions that yield further insights for debugging.
Testers, use these tips to take the reins for some debugging. Your team will always benefit from your doing a little bit extra to help the investigation.