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?