5 Excuses Every Software Tester Must Stop Giving
I have unlocked a pattern from my experience of hiring around hundred testers over a period of time and interviewing some thousand others.
From all the discussions I had with fellow testers during interviews, I felt happy numerous times seeing the quality talent which we have in our community of testers.
But let me also share the other side of the story, the patterns I am talking about. It makes me sad.
I never feel happy watching potential performers being locked into a virtual cage of responsibilities. I feel discontent seeing the rock stars performing on a controlled stage.
If you are still wondering what’s the matter and what is the baseline, it is this- Considerably big part of our testing community is not having enough growth on multiple fronts for years after they start their career as a Tester. Forget 360 degree, it is not even near half of that.
Sorry for being harsh, but it is real.
Who is to blame for this? Maybe awareness in the industry to some extent. Company policies and senior management too may be. But more than anything else, it is the Tester himself/herself.
Read it again, it is YOU. It is us. Because we become victim to the excuse.
Below are the few patterns/excuses I uncovered.
5 Excuses Every Software Tester Must Stop Giving
Note: I nowhere mean that this is the case with every tester and every organization. But I have seen enough examples to say most of us are victims here.
#1) We don’t control our Test Environment, we have (read ‘very’) limited access
I often hear the statements/excuses- ‘We have just Read-only access to the environment’. Even worst- ‘We only have access to logs and nothing else’. Everything else is done by either a Development team or some other team.
The work which will give us so many beautiful and fruitful insights about testing and many other technical kinds of stuff is not done by us. And maybe we are happy this way, but we should not.
Tell me one reason why you shouldn’t control your test environment and take maximum benefits of same.
Here are few possible benefits if you are wondering what I am talking about-
- You have full control over your test environment to make sure personally that it is exact or near replica of the production environment. This will help you avoid few surprises at least when your deliverables hit production.
- You know all involved components, all software used along with their versions for your product to function. With time, trust me you will have many insights about their working, limitations and possible failure points.
- You have enough access to do at least first level debugging in case there are Infra level issues. E.g.: Setup running slow, Checking CPU, Memory utilization and logs at every level of flow are no rocket science.
- You own control over setup, so you know what you are changing and what build you are deploying. You are much more confident than before while shipping the release ahead.
- You learn it and you learn it all. Though it is Linux based or Windows based.
Makes sense? Let me continue if you have at least agreed that there are benefits.
Now the question is what change you can make in your team/organization to make this work. And how exactly you will do it.
Well, I Don’t Know. I don’t know your team, your leads/managers, and your organization so I won’t be able to help you on this. I can surely share few things which might work. You try working very closely with your Dev or whichever team owning this and see what and how they do stuff. Everything.
The way they login to the environment (server), the way they logout and everything in between. Once you gain some knowledge, you will have the confidence to say few words, give some suggestions when a similar situation occurs again or if a similar activity is to be done again.
Obviously sooner or later your this confidence will be seen by your developers/leads/managers. That is the time you can ask for the control. And tell me one strong reason why they won’t give you that? They should be more than happy to do so if you have shown the needed capabilities.
Believe me, they have much more work to do, so it shouldn’t be hard for them to release the control to you. At least I hope so.
#2) We don’t deploy a build, some other team does it for us
You come to office on a Monday morning. You notice there are few issues in build causing blocker. You need new build from your Build repository. You raise request or contact your Dev team or deployment team. Ohh, they are busy with something. But they manage and do it after some time.
Now tell me, why all this? It is not as complex as it looks.
When to take a new build is surely something a Developer can suggest as he is the one who will be committing a feature or a bug fix. But when you simply need to trigger it and deploy it, why should you wait or depend on someone.
Having ability and authority to deploy whenever you want makes your work lot easier without any wait. Do you see that? It will also increase your Turnaround time in daily testing. Though it is debugging some defect with added logger, or taking the new build to verify resolved bugs. Or be it taking fresh build and starting with testing of a new feature.
Let me tell you something from my personal experience. It is not only about time. Deployment teaches you so many things that you can’t imagine. The reason is, it fails often. The application stops working with new code sometimes. Many times deployment itself fails. And every time something fails, it pushes you to debug it. It pushes you to search for something on Google or ask someone a question or the best ask yourself a question.
It makes you think.
Of course, it is not really a software testing, but it surely is testing your abilities.
I will say a large portion of my learning apart from pure software testing are from Deployment and Maintenance of environments.
- I don’t remember how many trial and error attempts I performed for something, count must be few hundred.
- I don’t remember how many times I went to check some release manual of some software.
- And I don’t remember how many times I hit that Google search button or navigated to that stack overflow link.
All I know is- it gave me a lot, taught me a lot.
The remedy for this is very similar to the first excuse we talked about.
Learn it, show it and ask for it. It might work.
#3) We don’t debug an issue, we find steps and log it
I won’t go very hard on this as in an interview you don’t get a chance every time to discuss particular defect from candidate’s own experience and investigation/debugging done by him/her.
However, I can surely say that not all of us challenge our senses before passing on the defect to the developer.
Many times the log says it all. Many times the pattern of an issue says it all. Many times it fails because some prerequisite service was down.
So in short, many times it is actually possible for us to get to the exact root cause or at least reach near it.
So please ask yourself a few questions, not for helping developer but for making your test cycles fast and for your own growth.
You are the remedy here. No one else.
#4) I don’t know why it happened. Developer resolved it and I simply verified it
Ohh, come on. Sorry but hearing this annoys me a lot.
Every single time, it annoys me when I ask Tester a question- Why particular defect was faced or what was the RCA (Root Cause Analysis) and he/she answers ‘I don’t know’.
Have we taken Black box word this literally? How can we not ask Developer about what exactly he fixed? Why can’t we ask it if the authority is an issue?
I am damn sure that 99% times we don’t know the Root Cause Analysis (RCA) or fix because we don’t ask for it.
Believe me, knowing the exact fix, module in which fix was done, whether it was in the front end or back end, whether it was injected in any feature development or some other defect’s fix, will always help you in your testing. Always.
Apart from this, this information helps you know a lot of technical stuff which may be otherwise you will never come across.
Remedy? Ask it. Demand it. Whichever works.
#5) I didn’t get the opportunity to work on anything else than Manual Testing
Maybe this excuse is valid to some extent considering the possible workload on you or restricted responsibilities given, but not completely valid.
The problem here is, we say that we didn’t get the opportunity to perform non-functional types of testing, or we are not supposed to do it or we don’t have time.
Agreed, learning always demands time. But isn’t there anything you can change?
While testing that new feature or while testing that one API,
- Isn’t it possible for you to keep watch on the response time?
- Isn’t it possible that you ask your Business Analyst about the load this particular feature/module/API is expected to handle in production so that you can test it?
- Isn’t it possible to perform at least basic security checks like session expiry, URL tampering or XSS handling on that website form you are supposed to test?
- Isn’t it possible to at least say that this particular ‘Submit’ or ‘Help’ button doesn’t seem to be properly located or not easily noticeable and play your small role in making the product more usable?
- Isn’t it possible for you to start with something and then keep learning it more and more?
The answer is YES, small or big depending on various factors surrounding you but it is surely not NO.
If your responsibility doesn’t demand it (because there is some other team for it), no one will stop you investing extra time for your own learning. Self-learning in extra or free time is always possible I think. So find those possible extras, and start doing it. Now.
I hope I triggered some thought process and some learning ambitions within you.
Please forgive if you found any of my words harsh, but believe me, I wanted to be 100% clear so that it reach out to you all with needed seriousness.
Hope it works positively for you all.
I will be more than happy to know any uncovered aspect around possibilities I talked about.