Why Every Software Tester Should Watch Pulp Fiction

[article]
Summary:
The 1994 movie Pulp Fiction is a modern classic. And its eclectic dialogue, groundbreaking cinematography, and dramatic flair actually provide good inspiration to talk about a few things every tester has probably experienced in his or her career. Here’s how plot points and film techniques in Pulp Fiction mirror some experiences in software testing.

The 1994 movie Pulp Fiction is a modern classic. It introduced a new technique in storytelling and influenced many other movies. It also shook up the careers of John Travolta, Uma Thurman, and, of course, its director, Quentin Tarantino.

For anyone who hasn’t seen the film, the language is salty and there is definitely some objectionable content; it isn’t for kids or the faint of heart. But due to the eclectic dialogue, groundbreaking cinematography, and dramatic flair, some facts and trivia from the movie inspire good jumping-off places to talk about a few things every tester has probably experienced in his or her career.

Here’s how plot points and film techniques in the Oscar-winning movie Pulp Fiction mirror some experiences in software testing.

Every important turn happens behind the scenes.
This is a trick Tarantino learned from the ancient Greek dramas. The "big" things (war, victory, etc.) happen behind the scenes; the audience only sees their effects on the stage.

This is just like in black-box testing: You can not actually see the software going rogue, only the effects afterward. And sometimes these symptoms can lead to a very serious bug in the system.

Episodes are out of order.
The movie consists of seven episodes. Tarantino’s master move is mixing these episodes so that you’ll get the whole picture only after watching the entire movie carefully.

Similarly, in integration testing, you have to make sure you go through the components of the system thoroughly. And sometimes you don’t have the whole system prepared for testing, so you have to work with assumptions, or use a stub or a trunk to simulate a component still under development.

Marsellus and Mia Wallace never speak to each other on screen, despite being husband and wife.
Two major components not interacting in the system? It’s very useful to analyze whether they should or shouldn’t do so. This can be done by static analysis or using a diagram that covers all the possible steps and routes between the main components of the system.

Jules Winnfield's famous and oft-quoted Bible passage (Ezekiel 25:17) was mostly made up by Quentin Tarantino and Samuel L. Jackson.
When you don’t have an important tool you need, you create it yourself, right? Take test data. There are dozens of test data generators, databases, and lorem ipsum sites on the Internet, and there is a huge need for them. These tools are good for simple test data generation, but for more structured, usable data (such as user addresses, or any specific key-value pairs in JSON or CSV format), you have to make it yourself for your special needs.

Whenever Vincent Vega goes to the toilet, something bad happens.
You’re perfoming your go-live test—maybe you even have a script set up and running—and you don’t dare leave it, even for a minute? We’ve all done that. We’ve all waited impatiently in front of the monitor even though we know a two-minute break won’t make any significant difference. This can be considered one of our occupational hazards if you take it too seriously. Make sure you have your regular breaks, and provide your own poison as needed. Who wants to work with a tired and hungry tester?

Words and names are important.
The dialogue is one of the most referenced and revered parts of Pulp Fiction. Many of the more memorable quotes are around the names of things; remember the line about what they call quarter-pound hamburgers in Paris, or when Butch corrects his girlfriend about the chopper?

Discussions about the actual names of things should be familiar—even from the definition of the word test. It can mean a test script, a single test case or a set of test cases, or a combination of all of the above. It takes a tester’s knowledge to decide how detailed he describes a term.

On the other hand, even the requirements themselves often can not be considered a source of truth; you frequently have to question major parts of them so you can do your work and test the system properly. The worst case is when you have a partial oracle—requirements documents from which you can get only partial knowledge about the required behavior—or you have no such thing at all. This can result in your having to decide which is the rightous system behavior and which is the bad one, just like Jules does in the movie, which leads to his total transformation by the end of the story.

Despite the fact that this is a story about gangsters, not a single police officer appears in the movie.
You can spend hours experiencing the protocol or the system to be tested without actually executing a predefined test case; this can be part of exploratory testing, which is well-described in Lee Copeland’s A Practitioner’s Guide to Software Test Design. And sometimes, you can find very good bugs by working “around” the predefined test cases, changing your focus a little to the exact behavior of the system.

Miracles happen.
You can catch a very good bug, even take a screenshot of it, but it can be totally irreproducible the next day, without any environment and code change. Yes, this happens. I wish I could explain how.

Sometimes, you use your own car.
Vincent Vega's 1964 Chevrolet Chevelle Malibu convertible actually belonged to Tarantino. This is something all the developers, testers, and people working in IT do: We use our own tools and skills in our work.

It could be something you picked up or learned in college, in a book, or just by Googling something. After awhile, it’s hard to pinpoint which of your ideas and techniques originated from where—it only matters that it was the right tool for the job at hand.

Some symbols are empty.
One of the important symbols in the movie is Butch’s watch. The character held on to his father’s gold watch for years; this attachment affected his life and the lives of others, and served as main motivation points throughout the story.

Can you think about such attachments you may have, like the way you work or follow a process? Can you think about leaving them—especially when there is no more true meaning behind them? Wouldn’t it make your work easier? And maybe more effective?

Bruce Willis cites the same song in Die Hard: With a Vengeance as he sings in Pulp Fiction.
When Butch is driving away from his apartment, he sings along to "Flowers on the Wall" on the radio. In the Die Hard sequel, John McClane references the song’s lyrics, saying, "Don't ask me. I was home, smoking cigarettes and watching Captain Kangaroo."

Okay, this one isn’t really connected to software testing. But it’s still fun, isn’t it?

User Comments

4 comments
Akhila E K's picture

I haven't watched the movie.

But I really enjoyed te cmparison you did.

September 16, 2015 - 1:56am
matt butler's picture

Nice article, well done.

September 16, 2015 - 8:39pm

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.