Why non-coders should know version control software
As a software engineer, I’ve certainly used my share of version control software (VCS) for my code. However, like most of us, I occasionally have to put on my tester hat, when I’m given a bug report and have to narrow it down before I know what part of the code to look at. I found myself using VCS for the first time ever in my tester role last Friday, and it was so useful I can’t believe I never thought of it before.
My bug report came to me that around 3 out of 4 times when starting from factory default and using a certain configuration, a specific failure occurred. That’s the kind of bug report I like: easy to repeat. The problem was, that configuration contained 200 lines, only one of which was likely to be the problem, and no easy way of knowing which one. Additionally, it might cause a problem only in combination with previous configuration items. The failure, although easy to test for, had many possible causes, half of which were contained in a black box we are interfacing with.
We’ve all been there. You get to a point where you think you’re close to the answer, and someone says, “Wait, when it worked before did we do x first or y first?” You’ve manipulated 200 lines of config in every which way imaginable, and no one can remember your previous results without going back and repeating previous tests. A perfect use case for version control software, so I gave it a try.
I used one file containing my config, and three associated log files with test results, all committed to version control at appropriate points with useful commit messages.
The difference was startling compared to previous similar tasks. Whenever I hit a dead end, I could back up to a known position and proceed with confidence that I wouldn’t forget something. Knowing which part of the log was associated with which test was a snap. I only had to think about the logical next step instead of everywhere I’d been. Since I had to keep less in my head at once, more brain power was devoted to debugging than to record-keeping, and I got the problem narrowed down with much less mental fatigue. When I go back to work tomorrow morning, it will be easy to retrace my steps if necessary, even though the weekend knocked it out of my mind.
So, even if you have never written a line of code in your life, it might be very worthwhile to learn version control software. Something like bazaar is fairly easy to learn, can be set up in any directory, without any server required, and removed as easily as deleting a folder when no longer needed. If you’ve been looking to take your testing quality to the next level, I highly recommend giving it a try. I know I will never look back.