Tuesday, 30 October 2012

Making the most of the conference experience


FOR THOSE ABOUT TO CONFERENCE… WE WILL TALK TO YOU…..

Since it is so close to the Eurostar conference in Amsterdam I thought I would post a conference related blog. #esconfs @esconfs -

I had planned to do this blog article a few weeks ago when I posted on twitter about the point of conferences is not all about the tracks but about the conferring. Many thanks to Rob Lambert The social tester for spurring me to complete this post together with his great A quick guide to Eurostar 2012

What?  You have not read it yet!!!  Then please stop reading this and go and do so…… (There Rob plug over with I expect the cheque to be in the post tomorrow or at least buy me a drink at Eurostar!)

This article is not going to be a “you should do this or should do that” and follows some of the messages that Rob states in his article. I remember my first conference (many, many years ago) and how it can be very intimidating.  It is even worse if you are little shy or a quiet type.

The best value you can get from a conference is not from the tracks or the keynotes but from talking to other people and conferring.  You soon learn that the problems you face in your day to day job are similar to others. This may help you to feel that you are not alone and that the issues you face are normal.  It is so easy within our profession to become insular and trapped in our own bubble.  Conferences gives you a great opportunity to see that the issues you experience are common and others are facing the same problems.  This is a great part of attending conferences to discuss these issues with others and sometimes you may discover solutions which could help you resolve the problems you are facing.

There are many ‘strong’ characters in the software testing community and some can appear to be very intimidating.  Try not to be scared and approach them, maybe just listen to begin with; this is what I did at my first few conferences and I felt too nervous or inferior to even think about taking part in the conversation.   It was at one conference when, what I would consider, a high profile figure within the testing community  asked for my thoughts about a topic I was listening to with a group of people.  So I said what I thought and the person took what I said and said this was a great example of the point being made.  This made me feel good and that I had something worthwhile to say.  This one encounter at this conference changed my whole perspective of the testing community and spurred me to start writing this testing blog.  So the conference can change you and encourage you in unexpected ways.  (Thanks Michael B – your encouragement has led to all of this from your keen observations)

At the conference lookout for non-conference social meets they are sometimes advertised on twitter.  You are not on twitter?  Please do join twitter it is a great way to interact with the whole testing community worldwide. I am @steveo1967 on twitter if you want to find me.  Others are word of mouth so it is important to socialise with people at a conferences.

Do not attend every single track at the conference doing so will exhaust you and place you under a lot of pressure.  Take some time out to reflect on  what you have attended maybe even write it up on a blog or as notes to follow up at work.  Even better take some time out to visit the expo or the great sights around the venue.  A conference is not about the number of tracks you attend or making sure you fill all your time with attending lectures.  I tried to do that for the first few conferences I attended and it did not work I had no time to reflect on what had been said and forgot so much useful information.

I have met many wonderful people at conferences and some of them have gone on to be close acquaintances that I have regular contact with even inviting them to my home.  All it takes is a little courage to try and get involved; this is so difficult to do for some but very much worth it.

I would say to that who are regulars at conferences if you spot someone on their own please try to approach them and introduce yourself. At the Eurostar conference this year there is a new concept called the community hub,  which is being hosted by Peter Morgan.  I recommend that you come along and practice doing a little socialising.

ENJOY YOURSELF – it seems strange to say that but I have seen so many people come to a conference with a unhappy face – they have come because they have been told to or feel like an outsider.  Make the most of the conference by taking part and becoming a part of the community.  The testing community can be intimidating for an outsider but if you take those first wobble steps to becoming a part of the community then it welcomes you with open arms and lots of support.

You never know you may meet someone at the conference who changes your life or at least makes you think in a different way.

In memory of Ola Hylten whom I first met at a Eurostar Conference






Thursday, 9 August 2012

Testing RESPECT


Whilst researching for a recent blog article on science v manufacturing and testing I came across an interesting article about scientific standards called the RESPECT code of practice and I made a mental note to come back to this since I thought it could have some relevance to testing. The article can be found here and a PDF version of the code can be located here:

The purpose of this article is to look at each of the statements made about what socio-economic researchers should endeavour to and my thoughts on how it may apply to testing.

The first paragraph is the one that drew me to the article in the first instance.
Researchers have a responsibility to take account of all relevant evidence and present it without omission, misrepresentation or deception.
It is so interesting how this is closely related to the responsibility of the tester when carrying out testing.  We have a duty to ensure that ethnically and morally we provide a service that meets these responsibilities. 

The bit that stood out  within the main body of text was the following statement
does not predetermine an outcome
I still find that within the field of testing there are still people writing scripted tests in which they try to predict the outcomes before they actual experience using the application.  This is not testing, testing is exploring the unknown, asking questions and seeing if there is a problem.

Now if we look at the last line of the paragraph
Data and information must not knowingly be fabricated, or manipulated in a way that might lead to distortion
Hmmm? Anyone want to start a discussion on testing metrics?  Cem Kaner talks about validity of metrics here

Then the article gets into the reporting of findings.
Integrity requires researchers to strive to ensure that research findings …. truthfully, accurately and comprehensively…have a duty to communicate their results in as clear a manner as possible.
I get tired of seeing time and time again shoddy or poorly documented testing findings/bug reports.  In my world exploratory testing is not an excuse for poor reporting of what you did and what you found

The most exciting part of the article was the final paragraph in which they realise that as human beings we are fallible.
…no researcher can approach a subject entirely without preconceptions 
It is therefore also the responsibility of researchers to balance the need for rigour and validity with a reflexive awareness of the impact of their own personal values on the research
It is something within this blog that I talk about a lot the need to understand that we have our own goals and views which could impact and influence our testing.  We owe it to ourselves to try and be aware of these sometimes irrational and emotional biases. 

The following is my attempt to go through each of the statements made in the article and provide my own personal view (with bias) or some external links in which others within the testing community have already discussed.

a) ensure factual accuracy and avoid misrepresentation, fabrication, suppression or misinterpretation of data

See previous link to article by Cem Kaner on metrics, Also by Michael Bolton here  and here by Kaner and Bond

b) take account of the work of colleagues, including research that challenges their own results, and acknowledge fully any debts to previous research as a source of knowledge, data, concepts and methodology

In other words if you use other peoples articles, ideas etc give them some credit.

c) critically question authorities and assumptions to make sure that the selection and formulation of research questions, and the conceptualisation or design of research undertakings, do not predetermine an outcome, and do not exclude unwanted findings from the outset

STOP accepting that because it has always been done this way then that means it is right.

d) ensure the use of appropriate methodologies and the availability of the appropriate skills and qualifications in the research team

Interesting one, I do not take this as meaning to get certified, other people  may.  I take it that we have a responsibility to ensure that everyone we work with has the relevant skills and if they do not mentor them and support them to obtain these skills.  Encourage self-learning and look at all the available approaches you can use for testing and select the one most suitable for you.

e) demonstrate an awareness of the limitations of the research, including the ways in which the characteristics or values of the researchers may have influenced the research process and outcomes, and report fully on any methodologies used and results obtained (for instance when reporting survey results, mentioning the date, the sample size, the number of non-responses and the probability of error

In other words be aware of both your own limits and project limits such as time, money or risk.  Testing is an infinite task so when reporting make sure it is clear that your sample of ‘tests’ are very small in comparison of all the possible ‘tests’ you could do.

f) declare any conflict of interest that may arise in the research funding or design, or in the scientific evaluation of proposals or peer review of colleagues’ work

Does this apply to testing?  If you are selling a tool or a certification training scheme then this should be stated clearly on any material you publish regarding testing.

g) report their qualifications and competences accurately and truthfully to contractors and other interested parties, declare the limitations of their own knowledge and experience when invited to review, referee or evaluate the work of colleagues, and avoid taking on work they are not qualified to carry out

To me if you stop learning about testing and act like one of the testing dead (see article by Ben Kelly – here) then you are not qualified to carry out testing.

h) ensure methodology and findings are open for discussion and full peer review

Do not hide your testing effort inside a closed system in which only the privileged few have access.  Make sure all your testing effort is visible to all within your company (use wikis)

i) ensure that research findings are reported by themselves, the contractor or the funding agency truthfully, accurately, comprehensively and without distortion. In order to avoid misinterpretation of findings and misunderstandings, researchers have a duty to seek the greatest possible clarity of language when imparting research results
  
In other words make sure that what you have done when testing is what you report and that you report clearly and without ambiguous facts

j) ensure that research results are disseminated responsibly and in language that is appropriate and accessible to the target groups for whom the research results are relevant

Make sure that all relevant parties have access to your findings, communicate, talk, discuss.  As stated earlier do not hide your findings publish them for all to see warts and all.

k) avoid professional behaviour likely to bring the socio-economic research community into disrepute

We all have a duty as testers to be professional in our behaviour and this means even when we disagree we still need to respect each other’s view and be able to participate in a debate without making others feel inferior.

l) ensure fair and open recruitment and promotion, equality of opportunity and appropriate working conditions for research assistants whom they manage, including interns/stagiaires and research students

Employers and recruitment agencies STOP using multi-choice certification schemes as a filter for working in testing.  Holding one of these certificates do not mean that you can test.

m) honour their contractual obligations to funders and employers

This is a given no comment needed on this.

n) declare the source of funding in any communications about the research.

If what you are publishing is in your own self-interest or a vested interest in which you can receive funds then please be honest and up front about this.  As professionals we can then make an informed decision about the content.

The context driven testing school has a list of principles here and it is interesting to compare the two there appears to be some overlap but maybe we could improve the context driven one by using more of the RESPECT code of practice.  What do others think?  A good starting point maybe?

Thursday, 26 July 2012

Is testing a manufacturing process or a scientific approach?


Question
Does testing need to move away from manufacturing processes and more towards scientific approaches?


If we take a look at the world of manufacturing you can find many standards (ISO and others) for various everyday things.  However even within the same subject field there can be many competing standards.  For example look at the standards for mains electricity around the world.  Which standard do you use? 




What about light fittings in your country how many different types are available?




In some cases these standards have been changed to meet local and cultural differences in others it has been a question of business and not wishing to pay a royalty fee. However in all these examples context plays a part in the adopting of a standard. Maybe I am being unfair and using examples that are not typical.  From the research I have done I find the same within the QC field, depending on what is being manufactured the processes and standard can and do change for similar products. 

The xkcd comic strip shows this very clearly.





The problem I have within the domain of software testing is that when we apply manufacturing processes to software testing we are making many assumption. The biggest one being


 all software is the same and behaves the same 


which is not true. 


As such we require different approaches to deal with this which is in context with the software being developed rather than trying to make it fit to processes designed around the assumption that everything will be done exactly the same way.

My concern is with the new ISO software testing standard ISO/IEC 2911  which appears to be based on manufacturing process and practices.

The question I have is why? 

Software testing in my opinion is not a manufacturing driven process but more a scientific experimental approach in which the tester has questions and theories that they wish to prove or disprove.So why try and tie a thinking process down to a checklist style document driven process?  Is it because 'management' can have a false belief that it more easily to manage or am I being sceptical?

Looking at the field of science and research - yes I acknowledge there are still some processes but these seem to be based upon what has been done and experienced rather than up front unnecessary documents.  I see very little about processes more a case of techniques and approaches to use. 




If you then add in other fields of science such as social and anthropology you have a wide range of approaches that lend themselves to testing. I see testers more as scientists, researchers or investigators looking at debunking their theories, biases and understanding and trying to learn more about what they are testing.

One approach I stumbled across was the following: http://www.respectproject.org/code/cstds.php?id and I think this could lead to another blog article there is so much useful information here for testers.



Quoting a couple of them:

  • ensure factual accuracy and avoid misrepresentation, fabrication, suppression or misinterpretation of data
  • critically question authorities and assumptions to make sure that the selection and formulation of research questions, and the conceptualisation or design of research undertakings, do not predetermine an outcome, and do not exclude unwanted findings from the outset 
  • ensure methodology and findings are open for discussion and full peer review

I found this code of practice very similar to the ethics I try to employ when carrying our exploratory testing, as I have already stated I may come back to this with another article at a later date.

I remember in school during science lessons we would:


  • Start from a theory
  • We would then test that theory
  • Write a conclusion based upon what we did 
  • Report what we found.

In my mind this is like exploratory testing

  • We have a charter and a mission
  • We try to prove the mission right or wrong
  • We write about our discoveries and what we learn
  • We report what we find
  • We check to see if what we find matches our original mission


We prove sufficient information for our peers to be able to replicate what we did and see if they come to the same conclusions or not.  We do this by treading similar ground but sometimes not exactly the same steps.

The similarities between exploratory testing and scientific research appear to be many.


  • Formulate a theory
  • Test the theory
  • Explore ways to prove the theory is incorrect (Peer testing)
  • Report your findings

So to conclude I feel that exploratory testing and testing in general has more to do with the sciences than it has to do with manufacturing.  The sooner we can move testing away from a manufacturing process centric way of working to a more natural scientific way of working the better the world of testing will be.  We really must stop testing being forced into a process in which people can tick a box and say yes we have a document for that and for that and that and of course that.   


Testing is a thinking activity not a document creation, ticking boxes checking process.  


Monday, 9 July 2012

Book Review Experiential Learning - Beginning


Experiential Learning Beginning - Gerald Weinberg - A Book review

Telling is not teaching

This is my first attempt at trying to review a book so please be patience with me.

Part of my role in work is to coach and mentor other testers and this can either be informal or formal half day/full day workshops.  I have been fortunate and been given opportunities to coach exploratory testing to other testing teams within our organisation all over the world.  As part of this I do a mixture of both lecturing and practical workshops.  Some of which have been successful and others less so, I have always wondered what makes some successful and others not so.

I follow the blog posts of Gerald M Weinberg and have noticed his comments about putting together some books on Experiential learning and after researching this a little more I found it could be very useful for what I do as a day to day job.

It was because of this research that I decided to purchase the first two books by Weinberg on experiential learning: (There is a third book currently in the process of being written)


This review mainly focus on the first book (I have not completely reading the second one yet.)  Before I start I should state that these books do not offer a step by step guide on how to implement experiential learning into your coaching style.  The book acts more like a tour guide and offers you points on how to think differently in how you organise and run workshops.  These books are about making you think about being creative in your workshops and encouraging people to learn by doing rather than by you telling them. 

This reminds me of a quote by Nassim Nicholas Taleb

We are better at doing than learning. Our capacity for knowledge is vastly inferior to our capacity for doing things – our ability to tinker, play, discover by accident.

I do wonder if this/was a catalyst for the books that Weinberg has written.

Experiential Learning – Beginning 

It is very difficult to do justice in a review of a book which by its design is quite a technical book so I do hope Weinberg will forgive me a little if I quote directly from the book and miss some sections out otherwise this review could be very long.  Any misunderstanding or otherwise from the material within the book are my own making and no way reflect on the views that Weinberg may have been attempting to get across.

The first part of the book gives the reader some examples on how to start to implement experiential learning into their workshops.  It uses a zero level example of dividing your group into two teams and getting them to learn by doing the exercise and seeing what they could do by using the alternative method/approach you are trying to teach them.   From this first chapter I was able to come up with 3 or 4 different zero level examples I could use in my workshops.  The chapter explains the importance of feedback (I agree with this so much and is one of my frustrations with testing we do not feedback often enough.)  Weinberg goes on to explain how to design an experiential class and for using an off the shelf starting point.  All these suggestions give you the reader valuable pointers that can be applied with some thought on your behalf to any workshop exercises that you need to deliver.

The next chapter deals with how to construct an experiential leaning program and introduces the three stages of experiential learning.

  1. Exploration
  2. Invention
  3. Application

Within this section Weinberg presents a quote from Piaget: - Learning was a process of constructing not receiving new knowledge


Which indicates that to learn we need to do and construct our own thoughts and theories with some adjustment from the trainer.  Hence we allow the class to explore, we allow them to invent solution and then we apply the solution to the problems found. (This sounds so much like exploratory testing)  The role of the trainer changes from a lecturing role to a supporting guiding role.

Weinberg then goes on in the next chapter to explain in detail how to create learning cycles within the workshops and getting students to be responsible for their learning. This is expanded in the next few chapters in which bad exercises can be used to create good idea, Evolution an Exercise and improving the exercises metaphor.

The next chapter on using progress observation is one which offered me some insights as to the role of the trainer.  I have come from a traditional background of learning and teaching in which I stand in front of the room and present.  However either from my own experiences or from some unknown source some of my workshops are 100% practical and I take a role in observing and supporting rather than telling the group what should happen.  I have found that these workshops are the most successful in getting the message across and this chapter backs this up with a few more examples on how I can improve what I already do.  I especially like the section on the importance of feelings.  Something I have talked about in the past within this blog.

The next few charters deals with moving your own workshops forward and starting to generate ideas , being able to lead exercises ad keeping  exercises simple.  There are some interesting concepts discussed here along with reference to Weinberg’s other excellent book on the secrets of consulting.  The key elements of these chapters is guidance on prevents you the trainer from jumping in and showing people how to get to the so0ltuons without them working out for themselves, a difficult skill to master.

These are followed by a chapter on the opening exercise in which Weinberg describes the course principals and their importance to successful learning.

These principals being.
  • Safe
  • Comfortable
  • Transparent
  • Fun
  • Considerate
  • Redundant
He then describes methods to form teams and gather requirements for the exercise.

This is followed by a few chapters on working with people who do not and do know each other with some methods that can be used to encourage team work.  It also gives some advice on dealing with conflict issues with the group that may arise. These sections were the only ones that I am not sure at this time offer me any benefits.

There is also in between these chapters a chapter on Virginia Satirs Three Questions in which Weinberg starts a workshop by looking for answers to the three big picture questions.

  • How do they happen to be here? (Past)
  • How do they feel about being here? (Present)
  • What would they like to have happen? (Future)

These provide really good pointers as to why people are attending your workshop and provide the trainer with some valuable knowledge that can be used to help tailor the training so that they want to learn (An important concept of experiential learning)

The book finishes with some pointers on using exercises to help deepen working relationships within the group which appears to naturally lead on to the next book – Invention.  Which I have currently started to read and find it very interesting……

Conclusion
This is not an easy book for a novice to get into and requires you to read and then reread chapters.  This I feel is the intention of the book, it is to encourage you to reflect and think before you act and is a powerful way of helping you to learn and understand something. Would I recommend the book to other?    Yes I would, it is another tool in the arsenal of testers who need to mentor; they provide some very useful techniques and approaches that you can adapt to meet your needs.    There are some section in the book which frustrated me since it appears to concentrate on getting teams to worth together rather than how to use experiential learning to encourage people to learn, but maybe I need to reflect and think more on the message that is being delivered.

They are not a blue print for showing you how to deliver testing workshops more a guide to help you understand that people do not learn from being lectured to using a bulleted slideshow. (Death by Power point)

What I found interesting is that in the past I have been fortunate to have attended a few workshops by Michael Bolton and I can see some of the techniques that Weinberg has suggested within the book being used by Michael.  I do wonder if Michael is a student of experiential learning.  These book could teach the ‘factory schools’ a thing or two about how to learn to do testing, it is by doing rather than telling. That maybe a topic for another blog post!

 As part of my journey learning more about experiential learning I came across the following resources that people may find of interest/use

David A. Kolb on experiential learning
International Consortium for Experiential Learning

**Some corrections made - thanks Phil - I should proof read before hitting the publish button!**



Friday, 11 May 2012

The Importance of Worth


I am going to start this article with a reflection of when we were children.

I want you to imagine that day in school when you was a very young child and you produced your first ever painting.  You took all day to produce it, making careful use of colour and getting exactly how you wanted it to look.  At the end of the day you took your painting home to show your parents.  You were so excited and full of joy and expectations of what your parents would say about all the hard work you had done.  You ran into the living room with your painting in your hand and shouted out “Look Look, what I have done today”.  Your parents come over and take great interest in what you have produced, commenting about how clever you are and how wonderful you are.  They say how proud they are of you and they place your artwork on the fridge in the kitchen where everyone can see it.

Now if you have recalled this scene in your mind and many of you will do so.  How are you feeling?  Did the thought make you happy?  Did you feel pride in what you did?  Are you smiling at this thought?

So now let us zoom toward to present date…

You spend days/weeks/months (Cross out which is applicable) creating test scripts based upon assumptions, writing them up in whatever test case management system you have been told to use.  You put all your effort and thinking into being creative creating these step by step instructions for ‘testing’ the system.

After you have done this you then get ready to start testing using the work you have spent so long creating.  Once you start testing you realise that most of what you have already done upfront, all that effort is not going to be used.   So all these test scripts which you sweated over creating and completing in step by step precise detail, get ignored, never see the light of day, the labour of your work, forgotten and not commented on.

How often when we are told we must follow a scripted testing approach does this happen?  If we are honest it does happen a lot, I know to me in the past over half the scripts I created never got reviewed or used.  Half of the work I did was just forgotten about and left to gather dust in the test case repository.  I should make it clear that I am not against test scripting and that with the correct context they have value but indiscriminatingly forcing people to do something without experiencing it is in my opinion is such a stupid and pointless exercise.

Let us step back to our story from earlier.

Now imagine as a child you rush home to your parents with your painting in hand and once at home your parents take your painting and without saying a word lock it in a drawer and carry on with what they were doing.  How would you feel now?  Place yourself into the mind of your child self and imagine how would you feel?  Upset?  Sad?  Hurt?  Worthless?

So why when we do something as creative as testing do we do this?  We create so much in the way of test scripts but never get the chance to be proud of what we have done, what we have achieved.  We lock it away never to be used again, never to be talked about.  Is it any wonder that so many testers feel sad, unhappy and worthless in what we are being asked to do.  It is a key aspect of human nature that we want to show people what we have done, what we feel proud about, we need feedback to know that the tasks we are performing are worthwhile.  We need confirmation that we are valuable, needed and wanted.  If we continue to carry on with this path of insisting on doing pointless and useless tasks in which we then ignore or and just throw it away then we deserve to feel the way we do.

There are alternatives, using the exploratory testing approach can help prevent this waste; based upon only doing what is necessary at that time, using context.  Session based testing can make sure feedback on what you are doing becomes a key element of the testing approach.

Let us start to feel that we are important to software development and that testers are a worthy addition to this.

Some useful reading:

Session Based Test Management

What is Exploratory Testing 

Exploratory Testing Resources

Principles of Context Driven



Friday, 4 May 2012

Great Expectations

I recently spent some time running exploratory testing workshops in India and found I had some free time to start to reduce the mountain of books I have on my Kindle. I managed to read two books by Dan Ariely

Predictably Irrational, Revised andExpanded Edition: The Hidden Forces That Shape Our Decisions

The Upside of Irrationality: The Unexpected Benefits of Defying Logic at Work and at Home


Within these books there are some great insights into how we think we behave and how we actually behave, Dan calls the work he does behavioural economics.  There are many interesting article he talks about in his books and most of them I can relate to software testing.  The one I want to pick up on for this blog article is how we can be easily influenced into following a certain path and making us act in a predictably way by manipulating our expectations.

The worlds of advertising and marketing have very clever ways in manipulating us into buying their products.  One of the ways they can do this is to ‘Prime’ us, by doing this they make us think of a subject or a product so that we unconsciously act in a way that makes us want that product and only that product.

For example if right now I asked you to come with words that are associated with being elderly, what words would you come up with?  If for the next 10 minutes I said think about this and you came up with a list of positive and negative words for elderly.  After you have done this I then ask you to perform some tasks.  When you perform this tasks you will be slower, take more time and notice little aches and pains you have.  All this is from just thinking about the term elderly.   The use of association has a very powerful effect on our unconsciousness.  Taking this a stage further if you have been primed your expectations have been manipulated so that you tend to have a bias towards the initial priming.  For example if you are told beforehand that a certain type of coffee is unique, expensive, has a secret ingredient and tastes wonderful.  You will at some point have to try it and once you do because of all the priming you have to like it (If you like coffee that is – replace coffee with chocolate, beer or whatever your favourite thing is) your expectations have forced you to enjoy it.  Even if your taste buds are saying it tastes vile, if you have paid a lot of money for it and have been told many times how wonderful it is it.  You will tell yourself it is wonderful and amazing.  Priming your conscious is a powerful bias that can override many other indicators.

Now what if I tell you that the secret ingredient is elephant dung now you have this knowledge your mind will be changed, what if I told you this before you decided to buy the product, would you still buy the product?

So how does all of this relate to testing?

Imagine if all you are doing when ‘testing’ is validating the requirements, your expectations have been primed and managed.  If you keep hearing that the software is bad by the development teams, that the model being used is poor. Then these all force you to be primed and you automatically assume the product is poor and that the requirements are what we should expect the product to match.  Can you see how dangerous this would be?  You are priming yourself to only confirm what the requirements are or what people are saying. 

One of the ways to help resolve this is by using an exploratory testing approach, which can help to reduce your expectations and assumptions of the product under test.  It tries to achieve this by the use of models, oracles, and heuristics to ensure that your beliefs, biases and expectations are constantly being challenged as you are testing. 

Michael Bolton at Developsense has recently wrote some articles on oracles and heuristics on his blog page.