This is the first blog in the series “Why am I Context-driven”. In this serie every member of DEWT writes a personal story on why he or she is context-driven.
“Because testing (and any engineering activity) is a solution to a very difficult problem, it must be tailored to the context of the project, and therefore testing is a human activity that requires a great deal of skill to do well. That’s why we must study it seriously. We must practice our craft. Context-driven testers strive to become the Jedi knights of testing”. James Bach
My first steps on the testing path were in a happy-go-lucky way. I didn’t know much about testing and common sense helped me to do my work. Next I learned about structured testing methodologies. As a tester and later as a test manager, but also as a teacher, I observed many people test and learn to test. I struggled with the testing I did and saw others do. I started doubting the testing I was taught and teaching myself: it just wasn’t right… There is much more to testing that wasn’t told in the common testing classes. And why weren’t we testing actual software in these classes?
I have been trainer of factory based methods for many years. After telling the same story over 10 times, you get the chance to really think about it. I remember one day when I drove home, I thought about what we did in class. A three-day class where we never actually tested anything. We only did exercises on paper like applying a test technique on an over-simplified example written out on paper.
I watched many people doing testing. But what were they doing? They were applying standards and often a happy-go-lucky approach was used. Not using test techniques, because they are too difficult to apply. And why were people struggling in their testing projects? Testing has a bad name in many organisations and testing is often undervalued. Testing is often devalued as “pushing buttons” and “everybody can test”. Many people use testing to get into IT. And looking at our industry, it can be done easily. Nine out of ten job interviewers do not know how to recognize the difference between fake and real testers. That is why so many fake testers are still running around without being detected. Do you remember your last job interview? Did you have to do actual testing? Or were they only asking questions? In the movie business even actors like Brad Pitt have to audition for a role. The director wants to see them do the character they have to play in the movie…
On foreign blogs I started reading about agile and context-driven testing. I found there is much more to testing then I could guess. I learned new, exciting and interesting aspects, which I hadn’t considered before like critical and systems thinking, heuristics, the art of asking good questions, safety language, models, credibility, diversity, storytelling, social sciences and exploratory testing. Some of these ideas where considered controversial by my colleagues.
Polder models in testing?
Testing standards are created by many people around the world. And if many people work on a standard or methodology it becomes an average, something everybody has to agree with. Everyone working on it, wants their thing in there. The standard has to fit every context easily. In the Netherlands we call that a polder model. Consensus rules and nobody gets what he really wants. These standards are made for an average situation or project. But is there such a thing as an average project? I think not! Projects are unpredictable, often complex and depend on humans. Skills are absolutely required to deal with difficult, complex and ambiguous problems.
Within context-driven testing people are the most important part of projects. Skills matter and they are trained by context-driven testers. Context-driven testing promotes skepticism, thinking and advocates problem solving instead of merely applying standards.
Factory approach or research and development?
Software development is often compared with product manufacturing in which standards and best practices are successfully used. But to me software development is more like research and development. No mass production but creating a product that solves a very specific problem. Testing can be also be seen as a form of research: investigating the system and finding information about it. In research critical thinking is important. Collecting, analyzing and interpreting information requires critical thinking skills. Critical thinking to me is about thinking (critically) about your own personal thinking. Framing your own assumptions and using this to try to remove bias and hopefully clarifying your thoughts with reasoning.
Why is it important to me…
I am a passionate person and I always want to be the best or do the best work possible. I refuse to do bad work. I have a high standard and ethics are important to me. Context-driven testing gives me that. The community is awesome. We share and learn together, we challenge each other and we practice continuous learning.
When I look at people working in IT, many are doing a 9 to 5 job. Not learning and applying stuff others tell them to do. They take bullshit from managers and project managers who do not know anything about testing, but still telling them what to do. Like writing or counting test cases, creating worthless metrics and writing bulky documents. They are happy to do what they believe are best practices. That is not for me. I need challenge and I want to do the very best possible in any situation. Considering that projects are always different, testers need to have many skills. I wrote a series of blog posts in 2011 on how to become an expert tester and what makes a good tester here, here and here.
The seven basic principles of the Context-Driven School tell us that people, working together, are the most important part of any project’s context. That good software testing is a challenging intellectual process and only through judgement and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
Context-driven testing gave me a lot of new challenges in testing. It brought me a lot of fun and gave me new insights to improve my understanding of the craft like social science. Studying social science gave me better understanding about people and biases. Reading books like thinking fast and slow helped me understand how the human brain works and made me aware how people make judgements and come to conclusions. I learned about qualitative and quantitative research. This gave me more knowledge about dealing with ambiguity, situational specific results and partial answers. Context-driven testing also brought me ways to cope with the difficulties I struggled with years ago. Exploratory testing made testing more fun and heuristics help me to guide and structure my testing to be able to do fast and efficient testing. I became aware that science is important. It gave me critical thinking and that helps proving the theories we have about the product. Try to prove yourself wrong instead of proving yourself right. Context-driven testing appeals to me because it puts the tester’s mind at the centre of testing instead of documents, process and standards.
Context-driven testing made my testing more personal. Not doing stuff everybody does, but it encouraged me to develop my own style. It is a mind set, a paradigm and a culture. It is not only about what I do, it is more about who I am!