Ut tensio, sic vis


British physicist Robert Hooke published Latin anagram in year 1660:


No one managed to though figure out what it meant and therefore it took 18 years (1678) until he revealed the solution to it:

Ut tensio, sic vis

Which can be translated as: As the extension, so the force. 

Hooke’s law is a law of elasticity and Britannica for example defines it like this:

For relatively small deformations of an object, the displacement or the size of the deformation is directly proportional to the deforming force or load.

At this point some of you might be wondering why I am explaining the law of elasticity here. The reason is, that I think it is a great methaphor for an online course I just attended. The course is BBST Foundations and it is held by the Association for Software Testing. It lasted one month and I’m still waiting for my final grade (pass/fail) for it.

In my opinion, the course was like a spring. The more I put effort on studying and interaction with other students, the more the course gave back to me (and hopefully to others as well). I can also assure that I was far from reaching the elastic limit of the course.

Via Dolorosa
Before I move on to explaining all the things I loved about the course and what I’ve learned, I want to say few words about the journey and especially how hard it was for me.

Few months ago I tried to google information about this course, and especially the amount of time it will take, but I did not find much specific details about it. Sure I found estimations that said it will take 10-40 hours per week, but those were just numbers to me then. I want to bring up how it was for me and not just numbers, but also pure examples from daily live of mine.

(Photo: Creative Commons / Stuartpilbrow)

I knew that the course would be challenging as I have family (fiancee and less than 2 years old son) and a job that requires, at the moment, early wake ups. I did not still estimate well enough the impact that the course would have on my daily life. Because I did not want it to take away time from my son, I did not do the course when he was awake (09AM-09PM). When you add the fact that I had to get up to work every morning 0445AM, you will notice that there was not much room for the course.

I was fortunate to go with a bus to work as I could do the assignments there. Then I also used the weekend mornings (got up 05AM, when others woke up 09AM) and during evenings when son had gone sleeping. But this took quite a lot of the time away from me and my fiancee, which I found troublesome.

In the end I was sleeping on the average 4-6 hours per night and it started to eat me inside. Actually now that I had first Monday since the course ended, I overslept 4,5 hours this morning and I thought if my body just decided to take the sleep debt I had kept building.

You might be also thinking why I participated to the course. But I can assure you, that it was still worth it. I had such a strict constraints in my life that it made the course more challenging to me than it did for other people. I still believe though that I managed to make it an experience that gave me and others a lot. I feel more capable as a tester now than I did before the course.

Previous part went through the pain I had to go through in order to evolve. This part goes through about how I have evolved as a tester because of the BBST Foundations -course.

First of all, BBST Foundations requires you to participate into thinking practical and difficult software testing problems. Besides that it also requires you to participating into discussions about these practical problems. I noticed through the course that participating into the discussions was perhaps the most fruitful way of learning.

This photo belongs to: Smithsonian Astrophysical Observatory

Other thing that strike me on the course, was that there were so many problems and assignments that seemed in first glance rather simple, but after a moment they grew out to be anything but simple. I thought though that it was a sign of a important skill, noticing things. Specifically noticing problems that are hiding behind assumptions.

I also learned how effective diversity can be for facing problems. When there are people with different backgrounds and thinking, you will receive several interesting varying approaches besides your own. George Dinwiddie once tweeted that

The roof don’t leak because the holes in each layer don’t line up with each other.

This came after we asked about ways of managing confirmation bias. He referred to having people with different backgrounds. I noticed that with my own eyes while discussing about difficult problems during the course. Solutions to problems vary as much as the people who you ask them from vary with their backgrounds. But more importantly the opinions about what actually is the problem vary to the same degree. This is the power of diversity.

The course also had five fundamental topics that serve long time as pilars for my knowledge about testing. These were: Information objectives drive the testing mission and strategy – Oracles are heuristic – Coverage is a multidimensional problem – Complete testing is impossible – Measurement is important, but hard. They cover a vast amount of information and I have not yet finished all the material we were either required or recommended during the course. My plan is to do that in the near future. That will take time though as recommended readings included several books.

I think I could sum up things that I personally learned from the course. I want to though highlight that these learnings are based on my experiences. They might change when time goes on, as I will go through the material again. My learnings are also probably different from other students and even from the learning goals of the course.

Before I list things I learned, I want to mention that I highly recommend the BBST Foundations -course. It will require you to give a lot, but in exhange you will evolve as a tester relatively to the amount of effort you have invested on it.

What I learned from BBST Foundations -course:

  • Diversity is a good thing.
  • Challenge assumptions.
  • Five fundamental topics (Information objectives drive the testing mission and strategy – Oracles are heuristic – Coverage is a multidimensional problem – Complete testing is impossible – Measurement is important, but hard) and vast amount of knowledge under them.
  • Interaction and discussion are powerful methods for dealing problems and defining what the problem actually is.
  • Facing practical testing problems is mandatory for evolvement as a tester.
  • Context defines our testing strategy.
  • Express myself in a more effective way and think the content of my writings through outline.
  • Testing is never perfect. I am never perfect (nor I should aim at perfection). Outcome is a compromise made under the constraints we have.