Chinese Idiom Stories for Software Professionals: #21 Prevention is Better (扁鹊三兄弟)
Prevention is better than control which in turn is better than remedy after the event. Best software testers don’t raise formal defects.
This article is one of the “Chinese Idiom Stories for Software Professionals” series.
Story
Bianque was a famous doctor in ancient China. One day the King asked him, “You and your two brothers are all skilled in medicine, which of you is the best?”
Bianque answered, “My eldest brother is the best, the next best is my second brother, and the last is me.”
The King asked again, “Then how come you are the most famous one?”
Bianque replied, “My eldest brother treats a disease when a patient just begins to show symptoms, sometimes it is before the patient realises that he is sick. That’s why he hasn’t obtained wide recognition, but our family members know. My second brother cures a disease in its early stages. People thus mistake him for only being capable of treating minor illnesses. So he is merely known within this locality and its neighbourhood. As for me, I treat a disease when it is already well-developed and very serious. People observe me performing surgeries, and thus look upon me as well-versed in medicine. So I have become well known all over the country.”
The King was quite satisfied and said, “Your explanation is very logical.”
Meaning
Prevention is better than control which in turn is better than remedy after the event. It’s a pity that many enterprise managers fail to see this and try to seek remedies after wrong decisions have incurred great losses, which may be too late to make up for.
Examples in Software Development
At software testing conferences, I often see some case studies: the speaker showed off their finding of a tricky defect. It is also common that the testers who detected more defects were favoured by the management. Though the best software testers are the ones who prevent formal defects.
A formal defect means a potential software bug was formally raised, thereafter, a formal process was activated to address it.
I worked for many years as a test automation engineer on a number of software projects. I rarely raised a defect. This was definitely the case for my own apps because I have never had a defect tracking system (since 2006). My contribution to the projects was not reflected in any formal defect reports, but many team members agreed: “Zhimin is the best software tester I have met”.
How? Test automation is the key. I ran automated End-to-End (UI) tests (raw Selenium WebDriver + RSpec) as regression testing multiple times a day, which would detect many defects, of which most are regression errors. I detected far more defects on every project than all other testers combined. More importantly, my automated UI tests detected regression defects early. On the defect tracking system, however, 0 or a handful of formal defects were raised by me.
This might shock many testers, especially manual testers. There are several reasons, from different perspectives:
1. FACT: many defects are actually regression errors
This is decided by the nature of software: code is interconnected. One change can cause many issues in different parts of the software. Often, the programmers’ egos made them believe they were doing good coding. This illusion will be smashed after working in a team with a proper Continuous Testing process.
Keep reading with a 7-day free trial
Subscribe to AgileWay’s Test Automation & Continuous Testing Blog to keep reading this post and get 7 days of free access to the full post archives.