A day after taking a deep dive into the art of performance testing, I was curious to explore some of the intellectual underpinnings surrounding the craft. After all, if one assumes testing is more than just a predefined series of motions designed to accomplish a specific task, then it is likely safe to conclude that strategies and philosophies are shaped by more than an individual’s experience alone. This idea was best captured by Huib Schoots‘ basic observation that “software is built for humans, by humans.” The logical extension of this observation is that lessons drawn from other academic disciplines, particularly those that explore the complexities of the human condition are deeply relevant when it comes to designing and testing software.
A particularly excellent illustration of this idea came at the end of the day in a session by Parimala Hariprasad. Starting from an example of simple mechanical devices (such as a doorknob), she stressed that products must be designed in a manner that is intuitive and logical. This human factors-oriented approach should also be applied to testing, in the sense that end users experience products via a series of touchpoints where the product interacts with the customer. Thus, the goal for developers and testers alike should be to work together and emphasize feedback in order to maximize the user experience. After all, she concludes, “if you don’t give your customers an engaging experience, they’re just going to go elsewhere.”
Earlier, Huib Schoots drew upon the lessons of a variety of social science disciplines, and the implications they might have for testers. Maria Montessori was a pioneer in the field of pedagogy and education, and emphasized discovery-based learning – a concept of particular importance to context-driven testers, but extremely relevant for all testing methods. Disciplines as diverse as political theory (Karl Marx) and anthropology (Claude Lévi-Straus) lend important insight into how complex systems are organized and communicate information (human society can be viewed as a complex system).
Lessons from psychology play a massive role in the art of testing. Since software is designed by humans, inherent psychological biases can get baked into the final product. Effective testing must take into account such things as confirmation bias (finding facts to support one’s preconceived notions) and the Dunning-Kruger effect (confidence resulting from a lack of knowledge of the complexity of a concept). Being aware of fallacies and biases and drawing upon interdisciplinary lessons is important for any tester.
Finally, learning is not just something done from a book – lessons for testers can be had by being aware in and participating in debates surrounding the industry in real time. A good example of this was highlighted in James Christie’s session on the debate around standards, or the certification and codification of testing procedures and professionals. Arguing against ISO/ICE 29119, Christie delved into an overview of credentialization, and why they can be justified in certain industries (in the case of say, doctors), versus others, such as hairdressing. One important takeaway was that testers, like any profession should advocate for whatever they believe is in their best interests. Lessons from the outside world, be they academic or issue-oriented, serves only to enrich the art of testing.