CSE 270: Software Testing - Reading Material

3.1 Tester Mindset vs. Developer Mindset

Overview

Before discussing different types of functional testing, it is helpful for us to consider the ways that testers and developers approach the problem of deploying software differently.

The Black Team

In the classic book Peopleware: Productive Projects and Teams by Tom DeMarco and Tim Lister the story is told of the Black Team. The Black Team was formed as a response to the inability of the developers at a certain large corporation to release code that was free of errors. The task of the Black Team was to find creative and unique ways to cause the code to fail. &This team became well known for their ability to uncover unexpected problems in perfectly innocent code. They delighted in vexing the programmers with their creative approaches to causing system failures. The success of the Black Team resulted in a healthy competition between the developers and the testers, and code quality improved dramatically.

This story illustrates the difference between tester’s mindset and developer’s mindset;. The developer’s job is to get software built as quickly and efficiently as possible. Many times, the developer is thinking only of the happy path, or the ideal path through the software. The tendency of the developer is to consider a program complete and ready to ship if it functions minimally. The tester’s job, conversely, is to find any conceivable way to misuse or break the software so that the end users of the program do not encounter any unpleasant surprises as they work.

Remembering Dijkstra’s maxim from earlier chapters, that we cannot prove the absence of software defects, the testers job is to do all they can to uncover latent defects wherever they may be found.

A Difference of Perspective

Below are some key differences between tester’s mindset and the developer’s mindset that help us understand the role of a tester in context a little better.

Focus on Quality vs. Building Features
Critical Thinking vs. Creativity
User Perspective vs. System Logic
Risk Identification vs. Problem Solving
Attention to Detail vs. Innovation
Verification vs. Construction
Communication Style
Diversity of Perspectives

While these differences exist, collaboration and effective communication between testers and developers are crucial for delivering high-quality software. Both mindsets play essential roles in the development life cycle, and a well-integrated team benefits from the strengths of both perspectives.