Showing posts with label Michael Bolton. Show all posts
Showing posts with label Michael Bolton. Show all posts

Wednesday, 26 April 2017

A test is...

On twitter Santhosh Tuppad posted the following tweet:



It made me think about what 'a test' really is.

I made half an attempt to improve the statement Santhosh made and suggested the following:


This would make the statement read as following:
A Test is an experiment that tests to see if the testing yields observational information.
I have thought about this and it still does not appear quite right for what I would say is a test.

There have been many discussions on what testing is and how 'a test' relates to the testing.

A test is a part of testing as some of the links above state, therefore the definitions used for testing could apply to a test.  However there is a gap if you are communicating with someone and they ask you 'What is a test?'  What is your reply?  'Oh, it is a part of testing'  Hence thanks to Santhosh I wanted to look a little more into the definition of a test.

My thoughts is that for a definition of a test we should borrow from the scientific method.

You start with a theory, you run a series of experiments against that theory, you observe what happens, you analyse what you saw, you report the findings and adjust your theory based upon your new knowledge.

There is no mention of finding bugs within that process, looking at a dictionary definition of test it gives the following:


a critical examination, observation, or evaluation :  trial; specifically :  the procedure of submitting a statement to such conditions or operations as will lead to its proof or disproof or to its acceptance or rejection a test of a statistical hypothesis (2) :  a basis for evaluation :  criterion 
 an ordeal or oath required as proof of conformity with a set of beliefs 
a means of testing: such as (1) :  a procedure, reaction, or reagent used to identify or characterize a substance or constituent (2) :  something (such as a series of questions or exercises) for measuring the skill, knowledge, intelligence, capacities, or aptitudes of an individual or group 
 a positive result in such a test 
:a result or value determined by testing


Wow so many different meaning for a simple word!  

To aid the definition it needs context.

We are focusing on a software test, this enables us to narrow the definition of 'a test'. Note we are not using the term 'test case'.  Using 'test case' I feel encourages limitations in the scope of what a test means.

To conclude the following is my definition of 'a test' within the context of software testing.

A test is a series of experiments performed against a theory that evolves based upon observational and behavioral information uncovered by the test.
The software testing part is the reporting of these evolving theories and the observation made.

What about you?  Could you improve this?  Do you have your own definition?



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?

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!**



Thursday, 23 February 2012

Patterns from Nothing

Continuing on from my previous post on Cognitive Illusions I thought I would start with the ability we have as humans to be fooled into seeing patterns from nothing. It is common for people to find shapes or objects when starting at the clouds or to think that there is a pattern of luck associated with the game we are playing. We can look at a random set of data and without doubt we will naturally make a pattern. Ben Goldache talks about this in his book Bad Science[1] It is in our nature and we are over sensitive to making patterns when none exist. Look at the following example of tosses of a coin, H-Heads, T-Tails.

HHHHHHHHHHHTHHHHHHHHHHHH

Now what conclusion would you make from this set of results?

Have you come up with any?

If you have come up with a conclusion that is your natural instinct and intuition to create a pattern and a cognitive illusion. Given that the coin is true the chances that the sequence above would happen is the same as any other sequence. Take this one step further and I ask you to say what the result will be on the next coin toss.

What would you answer?

Why would this be your answer?

Using statistics the possibility of it being H or T is 50/50 or equal chance. This is the reason casinos make so much money they know we are all fallible and use that against us. We make the mistake that there is a pattern and that our luck must change. I am sad to inform you but there is no luck the chances are still the same and within a casino the odds will always be against you.

The same can be applied to those who follow sport and come across the phrase that someone is on a lucky streak; this again is our natural bias to create a pattern when none exist. For example a soccer player has the follow goal scoring record. (X means scored in the game – O – means did not score.

XXXXXOOXXXXXXXXXXOOOOOOOO

Our tendency to create a pattern means that we will take that data and say the player has had 2 lucky streaks of scoring and is currently having a dip in form. With such simple data it is so easy to create and formulate assumptions and make patterns where there is no pattern. This is especially easy to do if there is no context. The simple example above proves the need to have some context. If I gave some more information that the player above has for the last ten games been playing in the senior side instead of the juniors, would that make a difference to your conclusion?

So how does this apply to testing?

There is a talk within testing that we should trust our intuition (I am one of these people to talk about this) and go with our gut feelings. Malcolm Gladwell in his book Blink [2] describes this to great effect. However we need to be aware that our intuition can try and fool us and try to create patterns when we are carrying out our testing. The problems come when we start to see these patterns and this causes us to miss other information that may be important.

For an example of this watch the following video (Information provided by Gordon Pitz [3] )



Have you watched the video?

No?

Please go and watch it, it will help you understand the rest of this article.







Did you see the Gorilla? [4]

No?

This might be due to being distracted and focused on a task. Noticing patterns and forming inconclusive assumptions when there are none can cause the same effects and as such it does show the point that our minds can be easily distracted and miss important information. It is important when we are testing that we do not spend too much of our time looking and investigating patterns since out natural instinct is to see patterns we could end up missing a lot more important information.

This is vital when we are testing using the exploratory testing approach where it is very easy to go off track and away from our mission to investigate what we think is a pattern of behaviour within the system under test. It is best in these situations to make a note of it and continue on track.

Sometimes it is difficult to go against what is natural and some find it near impossible and this could be one of the reasons why the exploratory testing approach may not be suitable for them or they find it too difficult. I hope that this article will encourage those who have struggled to have another go knowing that sometimes that could be fighting against their own instincts and as such making it appear more difficult for them.

So are there are techniques that can be used to help resolve this bias?

The problem is that since this is a natural built in instinct, and because we are aware of it, it does not necessarily mean we can resolve it.

“Knowing that it exists does not remove it”
Gordon Pitz [3]

There are few techniques that could help

One previous described when using session based testing is to keep to your mission and make a note of interesting patterns that you think are emerging. Later when you do a feedback session to others explain your thoughts about the pattern and see if others see the same pattern. If they do not it could be a case that you see a pattern when there is none
.
Another way which may help to prevent this bias is to use paired testing, there is gathering evidence that social facilitation [5] can help to reduce cognitive bias and paired testing is one way to make use of social facilitation. We seem to be more attentive and aware when we are being observed. It should be used with caution since if the task is complex and difficult people will perform badly. So this can only really be used when the task is not over complex.

One more technique that I have found invaluable is the use of testing framing as mentioned by Michael Bolton [6]. I attended a course on this and I do recommend that people read the article on his website. Using this approach helps the tester to focus on the purpose of the test but it also has a cool side effect that it can help to remove this bias to see patterns when there are none. It works especially well when you have to justify your reasoning.

The next article will look at the cognitive illusion of regression to the mean and its possible impact on testing.

References:

[3] The Deceptive Nature of Intuition – Gordon Pitz- http://www.unc.edu/~gpitz/pdf/Chabris-Simons%20review.pdf
[4] The invisible Gorilla - Christopher Chabris and Daniel Simons - http://www.amazon.com/Invisible-Gorilla-How-Intuitions-Deceive/dp/0307459667
[6] Test framing – Michael Bolton - http://www.developsense.com/blog/2011/05/ive-been-framed/