16 November, 2009

Black Box Software Testing Foundations Course

I just completed my BBST Foundations course. BBST Foundations course is an online course which includes a basic introduction to black box testing. Ah! An online course, 1 month duration, black box testing. Yeah, Yeah, You have heard a lot about universities offering online/distance learning courses to working professionals who are desperate for university stamped paper certificates. I just figured out this is NOT such a course.

What I learned in BBST foundations course?

Basic knowledge of Computers
Before you think that I am challenging your ego, just answer this question ‘Do you know how memory storage works in computers?’ Compare your answer with actual facts of memory storage. Do they match? Basic knowledge of memory storage in computers is essential to being a good tester. This adds to the skill set of the black box tester. BBST showed me how miserable my knowledge of the basic computers is.

Basic knowledge of Arithmetic
While working on Matt’s Testing Challenge, I was surprised to see how the number of potential test cases was arrived at. At that time, I just wondered about that magic number. I did not realize that it was simple arithmetic computation. Knowledge of basic arithmetic computations is important to find the populace of tests that need to be executed.

Self-Inflicted Captivity
In India, test cases and scenarios are written by the leads and passed on to the sub-ordinates to test without questioning (in most organizations). In simple words, the trainees, junior/senior testers would not have scripted test cases or designed test strategies until they become leads themselves. The problem with these people is that they never stepped out of this captivity like me. Now I know why I failed in Matt’s Challenge. I am not concerned about winning or failing a challenge. I am concerned about not learning from these challenges. My ex-CEO Josh Pickus once said ‘Don’t be afraid to fail. Fail. But don’t fail to learn from your failure’.

Automated Testing
I worked very little on automated testing in my first job. Later on, I learned Perl which I never used. In my current job, I hardly find enough time for manual testing; forget about automated testing. Solid excuses. The truth is I have not made a determined effort to learn and practice automated testing. I realized this gap while I was studying BBST course. There were a couple of questions that focused on test automation and I was pathetic to say the least. Testers need to have a hang of automated testing. Like Elizabeth Hendrickson tweeted recently ‘I advocate 100% of *regression* tests being automated. But no, I don't know anyone who thinks 100% of all *testing* can be auto’.

Solving Practical Problems and Investigation
A tester needs to think beyond the testing job to be a good tester. Just testing may not make anyone a good tester. Being able to learn and solve different types of problems helps think differently. Identifying and solving real time problems as simple as ‘Door Lock not working’ or ‘Your car making strange noise while driving’ gives good experience in investigation skills. Investigate Now!

Careful vs. Sloppy Reading
All of us read blogs/articles/magazines/books on the internet. How much of it we really absorb and apply to our context matters over how many of these we read. Most of us fail to see the significance of careful reading. You never know when an idea strikes while you are reading. Read carefully. Sloppy reading hardly fetches anything.

Written Communication
Some of us fail to write as well as others who are good at it. Some of us write better in native languages and get intimidated to write in English for fear of losing the right ideas during translation. What if you are expected to work in a global setup where you need to interact with testers from different parts of the world? You need to interact in English and put across your thoughts precisely. You may be saying the right thing, but you may not be clear enough in your writing. This challenge was significantly seen in the foundations course where a few of us were unable to articulate our thoughts clearly resulting in more and more clarifications during group discussions. Written communication is a key skill for a tester. Start writing your experiences. Blogging is a great way to learn about writing. Start your own blog and practice writing.

Reading about diverse topics
Being a science graduate, I found psychology books fascinating. I would read psychology text books for hours on Saturdays in my college library. This helped me be a good counselor among my friends to help with their problems (silly teen problems!). Back then, I felt very proud of this trait and I read more just for fun. Today, as a tester, I find that knowledge helping me understand the emotions of the humans much better while using the software. Read anything and everything that fascinates you. Don’t get bogged down by the fact that you can’t put what you read to immediate use. Knowledge is power. Get that power.

What I learned in BBST Foundations course does not make me a good tester overnight or over a period of few months or years. It makes me a good tester if I have assimilated what made sense to me and my context and put it to practice in my daily working life. This course clearly highlighted my strenghts and weaknesses. I need to enhance my strenghts and work on my weak areas to be a better tester.

BBST Foundations course is a MUST for all people who test and who manage people who test. It was a course of reflection for me and I am glad I took this course so early in my career. I now know where I was heading all this while and I also know where I want to be heading going forward.

BBST Foundations course emphasizes on learning through practice and experience instead of memorizing answers to objective questions like the ISTQB/CSTE/CSQA and other crappy certifications (I call them crappy because the value add after getting certified is so little). Being an online course, this is no easy one to get through. It is a well thought out and practically designed course with years of hard work, revisions and modifications. BBST does not certify that you are a good tester, it will show you different paths to be a good tester. You need to figure out which path to choose and how to make it work for your context. This course has taken me a little closer to James Bach's Personal Vision of Testing Expertise 'I can test anything under any conditions in any time frame relative to my standing in the local community, how hard I try and my technical insight'.

This course is by far one of the best learning experiences in my entire life. I am looking forward to the Bug Advocacy course already! Go Experience BBST!

Thank You BBST for the lovely learning experience,

Addendum on 1st Dec 2009:
I passed the BBST exam. Pari Pass Ho Gayi!

Happy Learning,
Parimala Shankaraiah