Elemental Testing

Even with requirements, it can be overwhelming to decide how to test an application.

Whether you’re new or experienced, you may be faced with something to test and just think… where do I start?

A trick that works is to adopt a persona, and stick with it for a time, in order to focus and find bugs of a certain type.

Originally, I was gonna see if I could come up with 20, then assign each side of a 20-sided die to one persona and go with it for an hour.

I made it to about 11. Or 9. Nowhere near 20. And some of those were really stretching things.

So instead of 20 I did 4. And, they’re based on the 4 elements–Earth, Fire, Water and Air.

As it turns out, some interesting approaches to testing can be found in these parallels:


Testing under this mindset is used when you want to make sure the software behaves as the customer expects. It should be solid, like the earth. Ensure that the expected functionality is working, and also ensure there aren’t any regressions. This type of testing is a good candidate for automation when you have concise test cases in this category.


Fire can be a destructive force, or a constructive one. A wildfire can destroy a city, but a skilled welder can rebuild one. The difference is focus. This type of testing is for seeking out deliberate ways to break the system, things outside the requirements, and things people likely wouldn’t think of. Think: hacking, load/stress/fuzz testing, and performance testing. Either blasting the system with random data, or focusing powerful attacks in certain places, falls in scope of this method.


Water takes the path of least resistance, and always seeks the lowest level. Testing with the water mentality will look less like targeted steps or random ruckus, and more like exploratory testing. Test part of the system, and look where the “flow” goes–what looks weird? What patterns do you see? Can you test that part more thoroughly? Determine where to focus your attention next until you find some juicy water bugs. “Slimy yet satisfying” 🙂


A gas, such as regular air, will expand to fill whatever container it’s in. It’s light, it’s trivial, there’s not much to it. Testing under the Air persona will look like small sets of tests–like smoke tests. It’s the smallest possible subset of tests that you can run, to give you the quickest answer to whether the software’s working well. This isn’t deep testing, or testing a bunch of permutations of data, but more like “are these services all up and talking to each other properly?” or “are the databases responding?” If you have tests automated already, it’s likely some of those would fit into these category.

Can you think of others? What are some mental helps that you use to figure out what, or how, to test a complex project? Share in the comments below!

Humans are abstract critters.

Well… that came out wrong. Makes me sound like an alien. I’m totally human and I, too, am an abstract critter. 

One of the biggest challenges is trying to convey complex thoughts to other people, simply. And using word pictures is a good way to do that. 

Is your QA team not communicating well with other teams, or among themselves? I can help with that. Totally 😉 www.archdevops.com



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s