How does it feel? The difference between Checking and Testing

Standard

Leaving the office late one evening, after spending most of the day writing automated Checks for our application, i started to reflect on how my emotions. Earlier in the week i’d spent most of the day Testing and Exploring our application. The emotions i’d felt on those days were distinctly different. I decided to keep a track of my emotions to see if there was a correlation between how i felt when doing Checking or Testing.

Let me firstly define the terms Checking and Testing:

Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product.

(A check is an instance of checking.)

Testing is the process of evaluating a product by learning about it through exploration and experimentation, which includes to some degree: questioning, study, modeling, observation, inference, etc.

(A test is an instance of testing.)

http://www.satisfice.com/blog/archives/856

What is my Emotional Context?

Before i bare my emotions, let me share my context. I work as a Tester in an Agile Team where everyone is encouraged to be a T-Shaped cross functional team member. This means that both Checking and Testing are very much part of my average week(in addition to other activities). I’ve been working in Software Engineering industry for around 9 years. My early career was focused on Testing but in the past few years i’ve been spending more and more time in front of a Development IDE, such as Microsoft Visual Studio, writing code. This could be automated Checks using WebDriver, writing utility scripts using PowerShell or even developing production code. In terms of my “Programming” ability i’m still on a steep learning curve, especially as i’ve jumped around different development languages from Java, C#, JavaScript to name but a few.

Understanding your Emotions

So reflecting back after a few weeks there was some impact of my activities on my emotions. My next question was “How do i make sense of these emotions?” I’m by no means an expert on emotions but luckily there are some models to help us. Recently i attended Stephen Janaways excellent talk on Testing your emotions at Belgium Testing Days. He talked through the emotions he has experienced in Testing and presented us with the Plutchick Emotional Model:

Plutchik-wheel-2

Using this model i’ve been able to start to identify the different emotions i’ve experienced when Checking or Testing.

At some point in time i’ve experienced all of these different emotions in both activities however there are certain emotions i feel more regularly between the two:

Emotions in Checking Emotions in Testing
Fear “That i wont be able to code the solution”

Apprehension “I’m not sure how to do this”

Ecstasy “I’ve finally cracked it! This coding is easy!”

Boredom “Fixing checks, AGAIN!”

Amazement “It worked!”

Trust “I trust that the team have tried to do their best”

Anger “Why doesn’t it work?!?!”

Joy “We’ve built a really great application’

Annoyance “We had this problem two days ago!”

Anticipation “There must be some problems somewhere”

As well as Plutchicks model i encountered this interesting research paper:

“What Emotions Do Novices Experience During their First Computer Programming Learning Session?” – http://pnigel.com/papers/bosch-csl1-aied13.pdf

Some of the findings resonated with the emotions i’ve experienced writing code for Checks.

“flow/engaged (23%), confusion (22%), frustration (14%), and boredom (12%) were the major emotions students experienced, while curiosity, happiness, anxiety, surprise, anger, disgust, fear, and sadness were comparatively rare.”

When doing Checking i also usually suffer from confusion, frustration, boredom and flow. This is in contrast to Testing where i often feel the emotions of curiosity, happiness, surprise and anger.

Lets dig a little deeper into these differences……

Feeling Engaged and “In the Flow”

Flow was originally coined by Mihály Csíkszentmihályi who said creativity is a central source of meaning in our lives.

“When we are involved in creativity, we feel that we are living more fully than during the rest of life.” He is the architect of the notion of “flow” — the creative moment when a person is completely involved in an activity for its own sake.

http://psygrammer.com/2011/02/10/the-flow-programming-in-ecstasy/

As the study found, Flow/Engaged was a prominent emotion found when programming. This is something i’ve experienced too. Quite often when i’m working on complex coding problems i’ll get into Programming Flow which also has a link to the emotion of Ecstasy.

With Testing, i don’t get that sense of Flow/Engaged, as profoundly. This worries me as Flow is defined as being “absorbed into your activity completely”. Upon reflection i’ve thought of a couple of competing emotions that may prevent me from getting Flow state in Testing. Firstly is being distracted which often happens when encountering a potential problem or a behaviour that interests me. Do i investigate? Do i Stop? Do i keep on my testing path? If the system under test is problematic the “distraction” is intensified. My creative thoughts can also be a distraction. I’m often overwhelmed with the number of potential ideas for Testing.

Confusion

Another interesting difference is the feeling of confusion when Checking compared to Testing. More worryingly there is evidence to suggest that confusion correlates to learning. If i’m not feeling confused regularly in my Testing then potentially my learning has stalled?

This video explores confusion in learning in more detail(Thanks to Llewellyn Falco for the tip):

Why are understanding our emotions important?

Emotions can be used as useful heuristics in everything we do in life. Michael Bolton says that:

Emotions and feelings are signals. Look into what they’re signalling.

http://www.developsense.com/presentations/2013-05-STAREast-EmotionsInSoftwareTesting.pdf

In my case i can look at the emotions i feel between Checking and Testing.

  • I can accept that because i’m on a learning curve i’m bound to be confused and frustrated when Checking.
  • I want to be more confused by Testing. I want to feel confusion in my Testing so that i can be confident my learning is continuing.
  • I want to feel happiness in my Checking knowing the quality and coverage of my code is improving.
  • I want to experience more flow state in my Testing to ensure my creativity is maximised.

How do you feel?

With the increasing emphasis on Testers, as Team Members having T-Shaped skill set, how do you feel?

Maybe like myself you are a Tester who is doing more coding of automated Checks? How do you feel compared to when you Test?

Or maybe you are a developer who has been asked to do some Exploratory Testing. How do you feel compared to when you code?

Advertisements

One thought on “How does it feel? The difference between Checking and Testing

  1. Rasmus Koorits

    Great article – I love all the references to external resources, as well as the conclusion!

    I too have recently found that frustration and confusion can be a good indicator that my brain is learning something new. An analogy to this would be having sore muscles after a workout. So when learning something, I have come to associate confusion and frustration with neurons rearranging in my brain in order to allow me to think in new and interesting models and abstractions.

    Framing it this way allows me to think of a confusing and frustrating problem as an interesting challenge waiting to be overcome. Maybe the way a climber would feel like when standing on the foot of a mountain.

    As with actual physical workout, I have learned not to overdo it though – acute frustration is also a sign for me to STOP, take a break, or maybe even sleep on it. When I tackle the same problem next time, I usually feel much more confident and familiar with the topic.

    By contrast, when I’m not feeling frustrated at all when testing or coding, it seems to me that I’m not doing anything particularly interesting – so maybe I should make things just a bit more complicated for myself.

    As for ‘flow state’, I assume this is the same thing that some programmers call ‘the zone’. In the Rapid Software Testing sense, this seems to be all about ‘focusing’ with none of the ‘defocusing’. Uncle Bob Martin actually warns even programmers against this practice in his ‘The Clean Coder’ book (link to a review mentioning this – http://blog.coryfoy.com/2011/06/book-review-the-clean-coder-by-uncle-bob-martin/).

    Personally, I have spend several hours in the ‘zone’ trying to fix strange bugs in my code. I would try to remain in the ‘zone’ because the code was difficult and if I lost my trail of thought it would take me a while to get back in. However, I have come to realize that this is probably just another kind of frustration – maybe I should take a break, defocus and try to make the complex code easier to understand, refactoring the one big complex part into several small understandable blocks.
    This is also what systems thinking/computer science is about – abstracting to control complexity (According to Gerald Jay Sussman, MIT 1986 lecture, link – http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/1a-overview-and-introduction-to-lisp/)

    For testers, I think maintaining a big picture can be even more important.

    Like

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s