EDITING BOARD
RO
EN
×
▼ BROWSE ISSUES ▼
Issue 26

BBST® - A practical course on Software Testing

Alexandru Rotaru
Managing Partner
@Altom Consulting



TESTING

In the context of professional development in the IT domain, programmers are normally very used to the idea that, in order to advance in their career as software developers and to improve their professional skills, they need to take different courses, obtain different certifications for specific technologies, learn new techniques or new programming languages, take part in workshops where they get to apply these techniques in a practical way and be up to date with the latest software trends.

The software testing domain is not so different from the software development one, but, as opposed to programmers, testers have less alternatives when it comes to learning new skills.

Based on the discussions we"ve had at Altom with young graduates or students from Polytechnique or Computer Science University, we noticed that, even though universities do offer software testing courses, the students don"t understand the complexity of the typical problems in testing and they cannot apply the concepts that they learn.

During interviews with different people for software tester positions, we noticed that, when asked what they read about testing and where they find new information when it comes to the domain that they want to specialize in, even experienced candidates tend to reply that they read some articles online, but, quite often, that they cannot give a clear example of an article they found interesting or useful. They can rarely mention a software testing book that they have read.

Some of the candidates happen to mention that they have studied the ISTQB syllabus. After a series of questions, it"s easy to notice that many of the ones that have passed the ISTQB Foundations test just know different terms used in software testing, but they don"t actually understand the concepts themselves and they don"t know how to implement them in practice. The ISTQB materials work with these concepts at definition level only, without going into details about applying them in different situations.

ISTQB certifications are, on the other hand, very well promoted and many see them as the only alternative for testers who want to specialize and improve their testing skills.

Some of the companies that recruit testers tend to either prefer candidates that are already ISTQB certified, or invest in certifying their employees. In the current context, in which an increasing number of people want to specialize in software testing, ISTQB certifications that are focused on theoretical aspects only create a new problem: junior testers don"t feel prepared for real work situations in the software testing domain, where efficient prioritization, communications skills, investigation and exploration are extremely important, while experienced testers who are looking to improve their testing skills feel demotivated and unappreciated and can"t find the right context to work on improving these skills.

The importance of software testing courses in the current context

While the demand for software testing services is increasing and service providers are trying to stay competitive, the risk of differentiating between them based solely on price is increasing as well. As a consequence, testers" skills become less important and the focus is shifted to testing processes, to methods and tools.

The result of such a situation is not one to be desired: testing is done poorly, in a rush, testers become demotivated, the testing activity is seen as one that anyone could do, at any time, without and special skills that could bring value to the product.

It is important to shift our perspective and to head towards a model in which the value of the testing services is the one that matters most. As testers, we want to be the first ones to head in this direction and demonstrate through our testing and investigation skills that we can bring value to the product that we work on. We cannot do so if we focus only on processes and methods and if we are satisfied with obtaining a certificate instead of actually developing our skills.

To become good testers, we need exercise, practice, examples from different contexts and feedback from people who have extensive experience.

The practical alternative

Fortunately, ISTQB courses are no longer the only option. The BBST® courses offer a practical alternative to any tester that wants to improve the skills needed in software testing.

BBST® is a relatively new acronym in Romania when it comes to software testing courses, but which has grown significantly in the last few years, as many BBST® graduates have described the importance of these courses and have talked about the influence and help the BBST® materials have had in their day to day work, in a direct and practical way.

BBST® (or Black Box Software Testing) represents a series of online software testing courses that introduce a practical approach to software testing, through which students have the chance to apply what they learn, to test different applications, to write test plans and work with different contexts that are very similar to situations they run into at their current jobs.

In contrast to ISTQB, the BBST® courses don"t teach "best practices". Instead, they teach practices that are useful in certain situations and that take into account that different contexts ask for different practices. Throughout the series, testing is presented as an investigation. Good investigators are actively looking for information and don"t wait for it to be handed to them. The main purpose of testing is to find information about the product that the stakeholders need to know about.

There is no predefined formula for testing, there is no "best procedure" or "best practice". Different situations ask for different approaches and competencies and, unlike ISTQB courses, which just present different theoretical aspects, the BBST® ones are built around assignments in which students get to really work with different situations and contexts and receive feedback from their fellow students and their instructors, with a "learn-by-doing" approach. BBST® students learn to use tools that are most efficient under the given circumstances, not simply a set called "best tools to use".

The BBST® Series

Currently, the BBST® series includes four courses:

  • BBST® Foundations - the first course in the series, focused on basic concepts in software testing. Students will deepen their understanding of concepts like test strategy, the mission of testing, test coverage, and they will try to work on some of the most difficult challenges in software testing:
    • How do we know that a program passed a test or not?
    • When do we stop testing?
    • How do we decide we have covered the product well enough?
    • How do we measure testing and the quality of the testing that we have been doing?
  • BBST® Bug Advocacy - a course focused on one of the most important tasks for a tester: finding and reporting defects and software problems, stressing their importance from the end-user"s point of view, isolating a bug, supplying additional information. Students will work with an open-source software, will look for bugs that have already been reported, report new ones and develop their skills when it comes to reporting and adding details to bugs.
  • BBST® Test Design - an introductory course to different test design techniques, with focus on a few of the most popular ones. Students will learn to apply certain techniques, and understand the strengths and weaknesses of each of the presented techniques, so that later on they can decide which of those fits best in their current work context.
  • BBST® Domain Testing - an extremely practical course that focuses on one of the most well-known testing techniques: equivalence class partitioning based on the domain of the variables in a program and choosing best representatives from each class to create tests with maximum efficiency when it comes to finding bugs.

BBST® - an online course

The BBST® courses are organized online. If you now imagine something similar to a webinar session, but longer, you"d be surprised to find out how different from this idea and how interactive these courses really are.

The courses last for four weeks and use an online learning platform that facilitates direct interaction with instructors as well as with fellow students.

The first three weeks are dedicated to lectures and assignments (there are two lessons each week) while the last week is for the final exam.

Each lesson contains:

  • a video lecture with Cem Kaner and the slides for it
  • a quiz with multiple choice questions which is meant to simply help with understanding the materials and that do not affect the final decision for course completion (the grades received for quizzes are for informative purposes only)
  • a lab or an assignment through which the students directly and practically apply the concepts explained in the previous lesson. For example, for one of the first lessons in the BBST® Foundations class, students will receive a description of a product in a certain context, and they will have to write a test strategy for it, while answering some specific questions regarding what areas need to be covered.

Besides this practical approach, for each assignment, students will receive feedback and comments from the instructors of the course, which are actively involved in the discussions and try to coach the students throughout their learning process.

Students receive and give feedback to their classmates as well, and many of the BBST® graduates say they have learned a great deal not just from the instructors of the course, but also from their classmates. Each student contributes to each lesson, bringing in new aspects, describing new contexts which are very different from the ones other students work in - and this diversity of opinions makes the experience much more useful.

From the beginning of the course, students have access to a set of questions with an open answer that cover the aspects discussed in each module in the class. The final exam always contains a subset of these questions, for which students prepare essay-style answers. Throughout the course and especially during the last week of class, when there are no other labs or assignments to turn in, students can discuss the questions amongst themselves, review each other"s answers and improve them while they understand the concepts better.

Thus, the final exam will not be a "surprise", but a natural outcome of the student"s work throughout the four weeks. After the exam, students receive feedback either in a one-on-one Skype discussion with one of the instructors, or in writing, based on their own choice.

The final decision on whether a student has completed the course or not is taken by the instructors based not only on the answers given for the final exam, but based on an evaluation of their entire contribution throughout the course and on their performance for each of the included activities.

Unlike ISTQB, where the final decision is driven by the answers given to a multiple choice test, BBST® instructors follow, above all else, each student"s individual evolution, their understanding of and their ability to apply the presented concepts. Communication, attention to detail, overall involvement in the class and their interest in learning and becoming better testers also affect the final decision.

Short History

The materials from the BBST® courses have been developed as part of a research study funded by the NSF Grant on "Improving the Education of Software Testers" and "Adaptation & Implementation of an Activity-Based Online or Hybrid Course in Software Testing".

The main author of the materials presented in the courses is Cem Kaner - Professor of Software Engineering at the Florida Institute of Technology and the co-author of one of the most well-known software testing books: Lessons Learned in Software Testing (Cem Kaner, James Bach, Bret Pettichord).

These materials are used also in the university courses Cem Kaner teaches at the Florida Institute of Technology. They have been adapted and modified so that they can be taught to a larger audience, online, by Rebecca Fiedler, who holds a Ph.D in Education from the University of Central Florida.

Why BBST?

Speaking about ways in which we can develop our skills, Cem Kaner says:

"I think the best way for people to develop skills is to do something, get feedback on how to do it better, improve it (or do something similar), get feedback, and keep doing this with problems that are increasingly difficult or that apply the technique in new ways."

The process described sounds so natural it seems obvious.

From personal experience, in a complex and continuously evolving domain like software testing, it"s difficult for us to find opportunities to practice a technique inside the project that we work on, it"s hard to create situations that get progressively more complex. In the real case of a product in development, especially in the Agile context, as testers, we barely have time to react, let alone rehearse.

It is just as difficult sometimes to find mentors that can invest the time to give us useful feedback for our work and that can help us grow and improve our skills.

The BBST® courses create an environment for learning where we can afford to practice different techniques and try them in different situations, to give and receive feedback. It"s an environment where the context and the problems are very similar to the real ones from our job, but where one mistake really does mean just a new opportunity to learn. It"s like a test environment for testers.

VIDEO: ISSUE 109 LAUNCH EVENT

Sponsors

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects

VIDEO: ISSUE 109 LAUNCH EVENT