I've spent the past ten years of my life in the IT industry, living and breathing for quality software testing. I started out as a tester and even though I've spent my last few years as a Quality Manager, I'm still a tester at heart. In all my experience, I've always encountered one phenomenon that stands out from the rest. This is the tester's plight, wherein managers will often believe that literally anyone can test applications, their confusion whenever bugs still happen in a productive environment, even after months of extensive testing in a sandbox and the overall state of a demanding but yet unrecognized profession. More often than not, this leads to testers feeling unappreciated, despite their hard work, and the manager's propensity towards superficiality with regards to quality assurance. I feel like this dilemma stems from a lack of knowledge, a lack that has been plaguing the IT industry ever since quality assurance became a thing.
"What's the point of testing if we still end up with bugs in production?"
I felt like I needed to do something about it, so I began to draw. I had to put my thoughts, my experiences, my knowledge of software testing on paper because I wanted other people to see what I see. I worked whenever I had some spare time and, after a few months, I managed to put something together. The first attempt was clumsy and, to put it nicely, ugly as hell to say the truth. As soon as the first draft was ready, I started looking at my drawing like a map. A map that unlocked meaning, a map connecting dots that represent the main areas of software testing. It took some tailoring and polishing but, after a few more weeks, I finally had something to show to the world. I bought a domain and uploaded the map in digital form. You can visit it at http://thetestingmap.org/.
"The map had grown so much in scope and content but it was still a drop of water in an ocean. As such, my ambition grew."
I began looking for more info on the web. As difficult as it might sound (and it was), I managed to find a great deal of relevant articles beneath the heavy pile of spam and advertisements. I made my own Google custom search engine that performed search queries only within software testing websites. As the map continued to grow in size I discovered an amazing community of testers that shared my enthusiasm and passion for this job. I found loads of websites and blogs, authored by testers which were willing to share their knowledge for free.
There was so much useful information that I began to link it to map areas. I was on a reading frenzy, reading about 50 articles per week, for several months, just to see if the subject of the blog post could be included on the map.
Eventually, I was forced to build a new webpage where I could read the articles then include them in The Testing Map. You can find the page at http://softwaretestingblogs.thetestingmap.org/.
Now let's go through the main areas of the map together.
Processes and activities. We need rules and regulations but, on the other hand, as Barry Schwartz puts it: rules will not be able to guide people through complex or unclear situations. Real world problems are often ambiguous or ill defined and the context is always changing. Finding a balance is the key to having a good process.
Methodology. Testers should know which tests they should run and the techniques at their disposal, and when to adapt them.
Usage of Methodology. Sometimes methodology doesn't cover it all. There might be corner cases and, as such, this area is still under construction. But I have begun creating some testing exercises that, I believe, will help testers a lot.
Testing Principles. Without principles, we have no guidance. Truth is, no one agrees on which testing principles come first. It's a an open discussion so pick your favorite.
Support Activities. Testing is a living and evolving part of the development lifecycle. It's not the salt that you sprinkle over your omlette after you've removed it from the frying pan but more like the continuous stirring and attention you give it throughout the cooking process.
Tools . The pain and gain of each profession. A good painter is one that knows how to adapt the brushes at his disposal to the painting's requirements.
Technology. We believe that a foundation of technical skills is needed. The best drivers are often good mechanics as well because they understand how a car works and what it takes for the car to perform.
Soft Skills. Testing, more often than not, takes place within a context, a context that involves people. Thus, testers need to know how to work with people.
Learning Resources. There is no holy Bible on testing, no manual, no testing college. Resources are still scattered and, as such, testers need to always be on the lookout for new information.
Social. Testing is a new craft. A lot of the knowledge is shared through social events (like meet-ups). The most famous local meetup is the Testing Camp.
History. Joris Meerts, with additional contributions from Dorothy Graham have put together a wonderful history about testing.
So what is the map good for? Well, firstly, you could use it as guidance for your quest to become an uber tester. Or you could have a quick chat wherein the participants choose a topic and talk about it for five minutes.
Ultimately, you could try showing it to the people that believe software testing can be done by anyone, and get their opinion on it.
So, how would you use it?
by Ariel Pontes
by Dorin Cazan
by Delia Mircea