People use lenses of various sorts for a number of purposes. We use magnifying lenses to make distant things seem closer or small things seem bigger so that we can better study them. We use colored or polarized lenses to block certain elements of light to create a 3D effect or protect our eyes from harmful radiation. No one lens serves all purposes though and in fact, lenses often make some things clearer at the cost of making other things fade into the background. Sometimes viewing a complicated subject requires using multiple lenses.
We can apply this metaphor to software testing. There are many perspectives and focusing areas (aka, lenses) we can use to look at an application. However, many testers remain focused on only one lens – the lens of requirements. This is an important lens in testing, but like physical lenses, it focuses our attention on certain aspects of the system while completely hiding other aspects. It’s possible to test to a set of requirements and still miss important bugs. In this talk, we’ll talk about the concept of lenses for software testing, talk about alternate lenses we can use, cover some aids to help testers remember to consider these other lenses, and even draw parallels to game design.