Source control for testers - What Changed?

Other than the obvious uses (tracking changes in source code), there are a few uses for source control I think are interesting to testers. One of those uses is the ability to compare changes to isolate the cause of a bug or regression.

The Hocus-Focus comic strip by Henry Boltinoff ran in the newspaper my family received while I was growing up. If you’re not familiar with the strip, it was a simple two-panel strip where the two panels looked identical, but the text in between the panels asked the reader to “Find at least six differences in details between panels.” It usually only took me a few minutes to find all six differences, but my strategy was consistent. I cycled through each object or feature in the first picture and compared the shape, size and other attributes with the same object in the second picture. Sometimes the difference was in part of the object, and sometimes I had to look at an entire area at once to see the difference. Over time, I got better and better (faster and more accurate) until I reached a point where I could spot all six in a few seconds every time.

Similarly, as a software tester, I use a source control management (SCM) system, and diff tools (utilities that show the differences between two files) to isolate coding errors. Because the SCM system has a record of every change made to the product source code, when I discover a bug testing a scenario that previously worked, I can turn to the SCM system to help isolate the problem. Source control can show all changes made to a file, module, feature, or entire application between any points in time. If I discover a bug that didn’t occur on a test pass two weeks earlier, I can easily identify all source code changes and examine the differences to investigate which change may have caused the error.

Toe me, it's just like Hocus-Focus.