Last summer, I read an interesting book called Extreme Ownership. Written by two Navy SEAL officers, it describes the concept of taking responsibility for every facet of your job, even those things that you feel that you have no control over. If one of their soldiers made a mistake, the officers would take responsibility, because they could have trained the soldier better. If their commander made a poor decision, the officers would take responsibility for that as well, because they could have "managed up" and provided information that would have led to a better decision. When everyone exercises Extreme Ownership, a culture of excellence and achievement is the result.
Extreme Ownership can be applied to any career, including software testing! Yet, there are a number of excuses that I often hear software testers make. Excuses keep us from taking full ownership over our work, and keep us from being taken seriously. Below are eight excuses that software testers need to stop making.
Excuse #1: I don't know how the feature works
All too often, testers simply follow the meager directions left for them by the developer in the software story, without have any idea what they are doing. For example, "Run this SQL query and verify the result is 1". Why? What information is this query obtaining? How do you know that this answer is the right one? If it turns out there is a bug related to this feature, how can you possibly say that you've tested it?
When you are presented with a story to test that you don't understand, start asking questions. If the developer can't explain the feature to you, find someone who can. Restate the information that you are given to make absolutely sure that you understand it correctly. Ask for the information to be presented in a way that makes sense to you. I am a visual learner, and the developers on my team know that if I don't understand what they are trying to explain to me, it's time for them to draw me a diagram.
There have been many times where I have uncovered bugs in a feature even before I've started testing, simply by asking questions about how the feature works!
Excuse #2: There's no way to test the feature
Really? There's NO way to test the feature? How does the developer know that the feature is working then? Are they just sending it to you and hoping for the best? There must be SOME way for your developer to know that their code is working. What is that way? Can they show it to you?
There have been some features that I was unable to test myself because I didn't have access to the back-end system that was being used in the feature. When this is the case, I make sure to work with the developer and have them show me that the feature is working. Then I can ask them to try various test cases while I watch, so we are effectively pair testing the feature. In this way, we can uncover any bugs that may exist.
Excuse #3: The developer coded it wrong
I have sometimes seen instances where a developer misunderstood the requirements of the feature to be built and created it incorrectly. This is why it's important for everyone on the team to understand the requirements and to see to it that acceptance criteria are included in the story. If you test the story based solely on what the developer tells you, and don't verify exactly what was supposed to be built, then the fault lies with you. You are the tester- usually the last line of defense before the product goes to the customer. Make sure the customer is getting the right thing!
Excuse #4: The other tester on my team missed the bug
Even the best of software testers misses a bug now and then. That's why it's important to have at least two sets of eyes on every feature. It's the policy on my team that when one tester is finished testing a feature, another tester tests the feature in the next environment. The week after I instituted this policy, one of my co-workers found two bugs I missed!
If you are the only tester in your company, set up a "bug hunt" where everyone in the company looks for bugs. Don't be embarrassed if someone finds something you missed; when we test the same thing over and over again, we can sometimes develop inattentional blindness.
Excuse #5: There wasn't enough time to test
Let's face it: there will never be enough time to test everything that you want. Software developers have time constraints too; they would probably really like to refactor their code a few more times before they hand it over to you, but they are working with a deadline just as you are. So instead of making excuses, test the most important things, and manage your time wisely.
Excuse #6: If I log the bug I found in Production, I'll be asked why I didn't find it sooner
This was a new one to me when I heard it a couple of months ago. There may be some managers who blame testers for finding bugs, but these managers are misguided. It's up to us to educate our team about what testers do. We simply can't find every bug; there are just too many ways that software can go wrong. What we can do is report what we find as soon as we find it, and keep an eye out for similar bugs next time. If you don't report that bug in Production, it will go unfixed, and the next person to find it will be a customer, or the CEO of your company!
Excuse #7: I don't know how to code
Software development has changed significantly over the last two decades. Companies used to release software every six months, so testers had tons of time to do regression testing. Now software is released every week or two. It's simply not possible to manually test an entire application during that time frame. This is why automation is necessary, and why you need to learn how to automate!
You don't have to take a college course in Java to learn how to code. All coding languages run on some very simple logical principles that are easy to understand. The only tricky thing is the syntax of whatever language is being used, and the more you expose yourself to the code, the more you will understand.
If there's no test automation at your company, see if you can get one of your developers to write some tests. If you have software testers who are already writing automation at your company, ask them to walk you through their tests. Learn how to make a simple change to an automated test, such as changing an assertion that says "true" to one that says "false". Copy a test that verifies the value of a text field, and see if you can change it so it verifies the value of a different text field. Learn how your company's version control system works, and see if you can submit a code change for your team's approval.
Take small steps! You don't have to learn it all at once. Think of learning code as learning a new language. When you learn a new language, no one expects you to be fluent right away. You learn a few phrases and keep using them, and you gradually add more.
Software testing is such a valuable profession, but too often companies take testers for granted. By applying the principles of Extreme Ownership and eliminating excuses from your vocabulary, you will come to be seen as an indispensable asset to your company.
Last week, I wrote a Gentle Introduction to Git , which was designed to give testers a general overview of how version control software work...
This week I'm writing about three things not often associated with testing: logging, monitoring, and alerting. Perhaps you've taken...
There are a great many articles, blog posts, and presentations that discuss automation frameworks and strategies. But even the most robust ...
Anyone who has spent time working on test automation has likely heard of the Test Automation Pyramid. The pyramid is typically made of thre...