Software Development — Why QA engineers has lost the credibility… Is it perception or a harsh reality… Let’s find out…
This is completely my experience & I might be wrong about my judgement. I am ready to take the hit here but if we can get any positive outcome of this then it would be a win situation for me. Unfortunately every involved group in software development (including senior management) is responsible for having such condition where. Let’s try to find out together…
I have been thinking on :
- Who gets the heat when something goes wrong in production?
- Who is being judged for the analytical thinking on why the same failure was not tested during testing phase?
The answer is Testers
In ideal world, Everyone says every line of code to be tested. is it really possible for testers without being technically skilled. We all know for sure, even if a single declaration within any small code snippet is missed during testing then it means it may cause failure in production. May be that will not happen in near future or even will not happen in years but there is chance that it may cause some failure or corrupt data that leads to the questions I mentioned earlier. As I mentioned every line of code to be tested to ensure that there wont be any failure in production. Point to be noted here is failure related to business logic is not questionable here, basically errors caused by wrong code is something I want to address here. Now the question pops up — Is there a way to achieve that ideal situation with the help of the testers?
That is where my experience says not at all possible & there are many reasons those I found over the years. All of them are debatable and fall into following areas Time, Money, Quality & Resources (including Testers). I want to come up with some broader category to define them from something more intuitive. Unless we define those reasons, we can not work towards finding ways to reach closer to Ideal world situation where expectation is to test every line of code with 100% accuracy from not only from technical aspect but from business usability perspective as well. After giving thought for many days in a row, I found only following 2 reasons that actually can help us in more significant way to reach to closure to ideal world expectation -
- Mindset of other groups about Testers
- Mindset of testers
Mindset of Other Groups About Testers Everyone understands the importance of having Testers but Most of us don’t respect Testers as we do respect developers/architects/business analyst/prod support etc. However, In my opinion, Testers have to be more analytical than any other group like developers, business analyst, production support, release management etc. As we all know, none of the developers write breakable code and similarly almost all business analyst gathers correct requirement to create business use case for developers. Now Testers roles comes into the picture to break the developed code by group of smart developers with lot of brainstorming with other groups with getting ample time to do the coding. How can we break such code which was done by best mind in the groups along with support of all the others group. To break the code or failed the application, Testers has to be more analytical on each use case & involved technology. If testers has to be most analytical then why no one gives the equal importance to testers like they do for other groups. Good question to find answer. That is where another category comes into the picture Mindset of Testers.
Being a Testers for so many years in row now & working as Test architect for one of the most complicate technology known as Blockchain, I found that finding Testers who is technically sound is next to impossible. Unfortunately, This is not specific to any one geography. Then I tried to get the root cause why this is the case across the globe. Then I came up with some interesting statistics that whosoever has any technical knowledge he or she wants to become developer not the testers. So if this is the case then how can we find testers with good coding skill as no one with similar capability has interest to get in Testing world. This actually gave me the thought now we are left with those who are not good form technical perspective. This is actually a harsh reality to accept.
Mindset of Testers As we have discovered that we are left with only those who are not either technical skilled or not having any inclination in getting comfortable with technologies. We are now in the world where almost every software development is happening through agile methodology whereas rapid changes are expected after each sprint. This won’t be wrong to say that daily changes are also required to be tested. Now question comes up Can testing be done manually for sprint or daily changes? Answer is straight away NO. Now solution is CI/CD which is also required daily monitoring & some sort of technical knowledge to maintain CI/CD setup. Due to earlier explanation, Most of the testers do not have that mindset to learn technical stuff along with learning these tools. Learning any new technical field requires consistent effort & curiosity along with passion for the same however it is hard to do so for most of us. In current situation this has to be done to regain the credibility & respect from other groups. Even if we drop CI/CD responsibility to DevOps group still Testers has to automate sprint testing as much as possible because with each sprint whole regression to be done in automated process. For having automated process, testers again need to be comfortable with involved technology/tools. We need to have stronger mindset not only to gain technical knowledge to do the job efficiently & effectively but also earn the respect so testers can be considered as equally important as other group.
Eventually my conclusion is finding developers are far easier than finding good testers with technical knowledge & appetite to learn new technology. if we do not have technical sound testers than how can we expect to get equal importance. My message here is to remain curious for new technology & ready to put effort to learn technology like most of the developers do. Again it is a mindset with which developers come that have to learn technology to remain competitive.
Having most testers technically ready will regain the credibility which we have lost in recent time and if we don’t do that then soon there will be no testers groups & developer breed will take that role from us. Why I am so certain on this because if anyone sees the pattern of new automation tools are being developed is making developers life easy to integrate tests within CI/CD with more ease. If Developers can easily cover the testing aspect then why would someone need testers? I know I am being super pessimistic as it is not going to happen soon but If testers will not change their mindset towards learning technology then this will soon become reality…
There is famous quote by someone I just forgot the name of that person but I really admire that quote by him (once I will remember I will update his name to give him credit for such a wonderful quote). That goes like this …
“Testing is not confirming the KNOWN but uncovering unknown”