Where it began
I find it interesting to keep track of where and when I run into new information relevant to software testing. This time it was an article in a German magazine for dog owners (issue 6 2012, to be precise). The topic was anthropomorphising dogs. And I think digging deeper into anthropomorphism can help us understand software development and testing better.
What is anthropomorphism?
This is the definition of anthropomorphism given on Wikipedia:
Anthropomorphism or personification is any attribution of human characteristics (or characteristics assumed to belong only to humans) to other animals, non-living things, phenomena, material states, objects or abstract concepts, such as organisations, governments, spirits or deities. (http://en.wikipedia.org/wiki/Anthropomorphism)
Why is it worth thinking about?
The German magazine article mentioned Adam Waytz as the author of a study and that way I found “Social Cognition Unbound: Insights Into Anthropomorphism and Dehumanization” by Waytz et al. (citation see end of this article).
The authors of the paper (details see below) say that “computers … can seem to have minds of their own” and mention that people “…curse at unresponsive computers…” (at least I have). If similar situations happened to you, maybe while testing software, then anthropomorphism affects your work.
I’m convinced that this topic requires more than a single post. This post is an introduction to the topic.
A brief summary of the paper
The authors discuss reasons for anthropomorphism as well as dehumanization and present three “primary factors—elicited agent knowledge, sociality motivation, and effectance motivation” which determine whether someone is likely to anthropomorphise or not.
Let’s look at the three factors:
- Elicited Agent Knowledge
- Anthropocentric knowledge is accessible and/or applicable.
- Social Motivation
- This is the need to be accepted, part of society and to connect to others.
- Effectance Motivation
- The motivation derived from understanding, explaining and (being able to) change or influence the environment.
Some ways this affects software testing
I will not go into much detail in this introductory post, but will instead list some of the behaviours that can be explained through this model:
- Effectance motivation and scripted testing
I will not add to the discussion of the pros and cons of scripted testing, but instead introduce a possible explanation why testing and testers are not well respected in environments where scripted testing is used.
When a rather strict execution of scripted test cases is demanded, the testers can’t influence their environment much. It’s about following scripts, manually operating the system under test and checking whether given conditions are met or not. In some cases changing scripts is not allowed, just following them. To others this looks like manually executing source code, something a computer is much more suited for. In other words: Testers work like computers, they’re perceived less human-like than they are.
That way effectance motivation is inhibited, leading to dehumanising of the testers (at least to a certain degree).
- Test versus development teams—and what they perceive of each other
I’ve worked in an environment where testers and developers were separate from each other. The most important communication was though the artefacts we were exchanging: Installed software on the test system, defect reports in a bug tracking system and may be the source code.
We couldn’t see each other as the humans we are, it was (mostly) artefacts, the ‘other side’ didn’t even look remotely human. Thus neither side felt much respect for each other.
- System complexity
The tester assumes the system is more complex than it is or has an intention that’s not there.
Software systems, at least today, do not have a human intent. If a system under test is subject to anthropomorphism the tester assumes the system is more complex (or complicated) than it actually is and therefore puts more effort into testing. This can lead to new ways of testing or new test ideas and therefore improve the testing.
This post introduced the idea that anthropomorphism affects software testing and described some of the effects. As mentioned above, I think there’s much more to discover for testing, so stay tuned for more posts about the topic!
Do you have examples of anthropomorphism in software testing? Please share them.
Waytz, Adam, N. Epley and J. T. Cacioppo. 2010. Social cognition unbound: Psychological insights into anthropomorphism and dehumanization. Current Directions in Psychological Science. 19: 58-62.