In May 2010, the first Writing About Testing conference brought some of the top minds in the field together to discuss the current state of public discourse on software testing and areas where testing is evolving within the realm of software development. In this column, Chris McMahon, who designed and launched the conference, continues his mission to advance the discussion by sharing ten of the most interesting frontiers for software testing.
October marked the one-year anniversary of the call for participation for the first Writing About Testing (WAT) conference. Ultimately, fourteen of the best software testers in the world (along with a representative from StickyMinds.com) met in Durango, Colorado, for two days to discuss the state of public discourse in software testing.
I proposed the WAT conference because what we know as "software testing" risks not keeping up with the overall state of the art of software development. The fundamental positions on subjects like certification, heuristics, exploratory testing, open source, automation, etc. were all formed long ago, and the popular discussion on the subject of software testing risks becoming an echo chamber where the same concepts go around and around forever. But, I know that there is some wonderful and creative software testing going on in the world.
At the conference, we had presentations and discussions on REST architectures (where the concept of a "user interface" becomes very fluid), data visualization, system administration, programming, creating test frameworks as mashups of existing applications, abstractions based on agile methods, the role of aesthetics and artistic performance in software development, and a wealth of other topics. My goal for the WAT conference was simply to stretch out and make room to work with some of these new concepts. For the second WAT conference, I want to expand the software testing discourse into newer areas. To that end, I propose ten frontiers for software testing:
There is a surge of interest in recent times in a concept called DevOps, which proposes an alliance among software developers and system administrators in order to create the best possible production environment experiences. Testers need to be a part of that conversation. Testing system upgrades, testing deployments, and using virtual machines and cloud resources in order to know in advance what will happen on production systems is interesting work that gets very little exposure.
Not only our applications but also the whole world around us generates incomprehensible amounts of data, and the only way to make sense of it all is to render that data in a visual or tactile fashion. Making maps of territories, explicitly showing hidden connections among sets of otherwise obscure data, and tracking information about development projects in coherent ways are all relevant to testing software.
Good test automation today happens at every level. A single framework may exercise the user interface, call REST or SOAP APIs, and reach into a database—all in the course of a single test suite. Myriad tools for such testing exist. Finding and choosing these tools—and knowing how to get such tools to talk to each other for a particular purpose—are becoming critical skills for testers.
Great strides have happened in user experience work in the past few years, and there are exciting advances on the horizon. From touch screens to efficient navigation paths in applications to feature design, the community of software creators is rethinking approaches to engage users with software. Testers have largely ignored the conversation happening among user experience experts, but testing expertise can inform that conversation.