Pawn Takes King

At some point every product team reaches a point where the features are (allegedly, anyway) all checked in and complete, no new functionality is being added, and all that's left is to find and fix bugs until the team decides the application is of good enough quality to ship. Some teams, especially those doing Agile-ish development, hit this mark every iteration, with some never being anywhere else. Other teams approach this point every milestone and drive hard towards it during final stabilization. And I'll ignore those teams who declare their app ready to ship just because their scheduled-three-years-ago ship date has been reached.

Testing is important throughout the product cycle, but once you hit feature complete (for the iteration or the milestone or the release or whatever) testing becomes perhaps the most important activity.

Aside: It's important to remember that testing is *not* about deciding whether your application is ready to ship. Testing is about providing information to the people who make that decision. (Testers  certainly may be part of the team making decisions, but they are two separate roles.) Likewise, testing is *not* about finding bugs. The bugs we find are but one type of information we can provide.

Big bang testing - finding crashing bugs, identifying missing functionality, and such - is of course still important. The little things, however, now become extremely important as well.

Things like completing your Did I Remember To list (now in the process of being expanded and annotated on my DDJ blog as You Are Not Done Yet posts).

Things like regressing every bug that was ever opened and verifying that a) if it was fixed it still is fixed, or b) that it still reproduces.

Things like scrutinizing help desk call transcripts looking for issues or problems or test cases you may have missed.

Things like banging on your app every day looking for problems.

Things like triaging bugs and test cases and bug fixes to ensure the most important ones are tackled first.

Huh. These are all things you can (and should) do throughout the product cycle too. So why do most teams leave these activities until the end, if they do them at all?

 

*** Want a fun job on a great team? I need a tester! Interested? Let's talk: Michael dot J dot Hunter at microsoft dot com. Great coding skills required.