Monday, May 21, 2012

On Testing, Crossing the Rubicon or Nailing the Theses to the Door

The last ten days or so, I've had a series of conversations that have left me baffled.  Do people really listen to the words they speak or write?  Do people understand what words mean?

Whilst being "gently informed" in a variety of ways that I "just don't get" testing.  Apparently I'm a heretic as far as at least these four people are concerned.

The details of the words varied, not by much, but they varied.  The expressions used were actually quite similar.  This surprised me because the environments they each work in are totally different.  Not just different companies, different development environments, but different intended development methodologies.

In short, they said "Our goal is to improve the quality of the software by doing good testing.  Testing needs to verify that everything is right."

I responded that I viewed testing as much more than that.  Testing is neither confirmatory nor destructive.  Instead, testing is an interrogative activity that allows us to discover the true behavior of the software and how it reacts or responds to various stimuli - data, keystrokes, sometimes, simply time.

Rather than breaking software or confirming the requirements have been fulfilled, or showing what doesn't work or... whatever, we can focus on learning how the software really behaves.

No, I was told by five different people, I was wrong.  Plain and simple.  Wrong.

That is NOT testing, they said.  Testing is proving the software conforms to the requirements.

So, all the requirements I asked?  Yes.  All the requirements.

Do we know the requirements?  Of course we do - they've been fully documented in the requirements definition phase (Even the guy that said they were Agile said that. I guess we disagree on more than one thing.)

Now, one of the benefits of the education I had lo those many years ago, is one retains certain things.  One of the things that is in my mind is Martin Luther's statement at the Diet of Worms - the one where he defended himself at an ecclesiastical court.  Some sources, now considered remarkably questionable, simply because the words don't appear in the earliest transcripts, have Luther saying "Here I stand.  I can do no other."

Now, I think it makes sense.  Its a great line.  It is the kind of thing we wish could be dealt with and directed and - well - a defiant refusal to submit; to not go down without a fight.  It is often portrayed as a defense of his heartfelt beliefs that he could not, and would not, gainsay.

Others may point to that as the sin of pride.  One can not admit to that they are wrong. I'm not sure. It could be something of a mix of these things.

In the end, I'm not sure it matters. The simple thing is, you can compromise on some things, maybe a lot of things.  Fundamentals though, tend to be closely held and tend to be inflexible.  At least for people who really believe them.

Are my views on testing firmly held?  Some of them certainly are.  I'm also open to discussion to see if we use different terms to mean the same thing.  I can be reasonable, after all.  Then there is the concept of developing understanding - that one's views can develop and evolve over time.

In the end, a breaking point will be reached.

I don't know the point that will be.  Mostly, it is a different point for each and every person.  What that point is, for anyone reading this, I do not know.  I know my point.

When that point gets reached, each individual must decide for themselves.

When Caesar (Julius - the real Caesar) crossed the Rubicon River in 49 BCE, leading his Legions into Italy proper and initiating the Roman Civil War, he is reputed to have said "Alea iacta est."

The die is cast.

At what point do we say "Enough?"  At what point do we refuse to compromise? 

Here I stand.  I can do no other. 




2 comments:

  1. and then you get down to your beliefs.

    This comes close to the work I've been doing on writing a software credo. I'm boiling down all of my professional experience into a core set of beliefs for myself. Good luck with yours.

    and oh yeah, requirements: I was once asked to test a requirement that an update was accurate to a picosecond. That's when I realized written requirements aren't everything and that there are some people who will never get that.

    ReplyDelete
    Replies
    1. Sometimes the cognitive dissonance gets to be too much, no? We can keep our mouths shut so we can "get along" and "play nicely with others" until the combination of what we are expected to do and how our mind functions are no longer compatible.

      Thanks for the comment - Good luck with your journey.

      Delete