Wednesday, March 7, 2012

Why every tester should take BBST Foundations!

You should take the BBST Foundations class, and here is my reasoning:

What is every testers greatest asset? (Hint: It's not the ability to do something over and over and over and over again until they succumb and shutdown.)

No, it's their mind and their ability to think critically.

So what is critical thinking:

"Critical thinking is the process of thinking that questions assumptions. It is the process of deciding if a claim is true, false, sometimes true or partly true." (1)

One of the main components of testing is questioning assumptions.

  • business assumptions

  • developer assumptions

  • product assumptions

  • your assumptions

  • your assumptions you do not know you have

  • assumptions about how something works

  • assumptions about what doesn't need to be included

  • assumptions about what the client wants

  • etc.

Part of every testers job is to take these assumptions, analyze them (we call it test) and provide data back to everyone about which assumptions are true, sometimes true, partly true and blatantly false. In the ideal world you can do this before coding, by questioning the stories, or specification, as they are written.

Even if you don't believe in the Context-Driven school or Context-Driven approach, critical thinking skills can only help you in whatever job you're in. Unless of course your that person, the one who just wants to slog through your day and get your 8 hours done while accomplishing next to nothing.

So, the real question for testers is: How do you learn or improve critical thinking?

By training, and what is effective training? The traditional classroom setting can be useful, but interactive peer-review is probably the best that I've found so far. (ie "When learners talk and teach, they learn") (2)

BBST Foundations accomplishes this through it's online classroom structure - you are participating with 24 other testing people who are there to discuss, talk, teach and learn from each other. "The BBST series attempts to foster a deeper level of learning by giving students more opportunities to practice, discuss and evaluate what they are learning." (3)

Foundations is the first in a series of classes that focuses on critical thinking with a testing bent. This isn't a class you can just listen to and parrot back, you have to "add value to the course with your participation, ... submit reasonably good assignments ... and exams, ... provide reasonable assessments of other students' work". (3) In summary you have to provide useful data back to other students.

They do it beautifully; blending knowledge, skills and testing-relevant self-awareness.

The stated goals of the first class are:

  1. Familiar with basic terminology and how it will be used in the BBST courses

  2. Aware of honest and rational controversy over definitions of common concepts and terms in the field

  3. Understand there are legitimately different missions for a testing effort. Understand the argument that selection of mission depends on contextual factors . Able to evaluate relatively simple situations that exhibit strongly different contexts in terms of their implication for testing strategies.

  4. Understand the concept of oracles well enough to apply multiple oracle heuristics to their own work and explain what they are doing and why

  5. Understand that complete testing is impossible. Improve ability to estimate and explain the size of a testing problem.

  6. Familiarize students with the concept of measurement dysfunction

  7. Improve students’ ability to adjust their focus from narrow technical problems (such as analysis of a single function or parameter) through broader, context-rich problems

  8. Improve online study skills, such as learning more from video lectures and associated readings

  9. Improve online course participation skills, including online discussion and working together online in groups

  10. Increase student comfort with formative assessment (assessment done to help students take their own inventory, think and learn rather than to pass or fail the students)

Truth be told I took this class as a prerequisite for taking the rest of the series. I thought I would slog through this class, be bored and maybe gain a little bit in the areas of 8, 9 and 10. Using the process of peer-review from peers who have vastly different perspectives, I gained a better understanding for all 10 goals.

The major areas this class focused on were:

  • Mission of Testing

  • Oracles and Heuristics

  • Impossibility of complete testing

  • Code Coverage

  • Measurement


It managed to covers these areas as well:

  • Thinking about problems

    • Before planning for them

    • Before talking about them

    • Before attacking them

  • Step back and analyze what you're doing

  • Come at the problem from another vantage point

  • Communicating with varied audiences (and an example):

    • When talking with developers; do you know the high level aspects of the software you work in (ie http for web based software)

    • When talking with business; do you understand the user models you should be working in (ie financial software is for people who care about the numbers)

    • When talking with management; do you understand how what you are doing affects the schedule (ie early found bugs get fixed)

    • When talking with your testing peers; do you know how to communicate clearly about testing aspects (ie the difference between this or that approach)


And last but not least: I have found that in communicating with people, my style is lacking. I struggle to communicate with people in testing, unless they have 3+ years of experience. What about when I'm trying to communicate to developers with very little want or exposure to testing. Let's just say it takes a bit and leaves us all usually worse than when we came in. I know this class has allowed me to focus my thoughts and present my ideas with more clarity for all parties involved.

My advice to you. Sign up for this class, NOW. For you hyper-lazy (http://www.associationforsoftwaretesting.org/training/courses/foundations/)

Too many testing people don't treat their jobs as a profession. Even if you only want to be in it for the next 12-24 months, you need to treat it like a career for that time. This includes: communicating with others in a professional manner, being knowledgeable about testing and using that testing knowledge to demonstrate your skills in the software field. This class will help you on that path.


(1) "Critical Thinking", Wikipedia (http://en.wikipedia.org/wiki/Critical_thinking)

(2) "Training From the Back of the Room!: 65 Ways to Step Aside and Let Them Learn", Sharon Bowman

(3) "BBST Foundations", http://www.associationforsoftwaretesting.org/training/courses/foundations/