This I am writing from 9+ years of Software Testing experience and majority of my tenure involved automation testing. This post is mostly for fresher or for whom, who still holds desire to develop a product. I am sure most of the existing software testing professionals will vouch for it.
How testing profile is allotted?
A random test was conducted in my company when we joined, some were given development and some were allocated testing profiles based on a test result. As far as I can remember the test results were not declared in absolute form, it was kept confidential, now looking back at the process, I can safely assume it was all random, because we had few colleagues who were BITs Pillani graduates and few of them from computer science background as well. Knowing their coding skills, as we progressed, I can vouch there average lads were far better off in coding skills than the best of my NIT Jamshedpur coding champs of that time. Even though, later, when a full-fledged coding training was done most of the colleagues did really well to improve their coding skills, this makes the test results even more irrelevant considering coding skills were improved significantly. As I moved in different companies, allotment of testing domain proved to be a random selection, especially in big service companies. Few other bizarre process, I noticed for this selection, were based on engineering domain. Computer science graduates got development roles by default, deservedly so, and electronics engineering graduates were allotted testing profile, this was a bizarre process. If analysis of rank of engineering students is done (competitive examination rank), in majority of Indian colleges trend will suggest high rank students preferred electronics engineering! Why then they are forced into testing domain without a fair chance? I made my case for profile allotment, you can guess the robustness of this process on your own.
What are the lack of learning for a software tester?
Biggest challenge or rather handicap a software tester acquires over the year is lack of robust coding skills and that itself is the spine of a software engineering. There will be question WHY?, since automation testing is the buzzword which from an outside seems very coding intensive job? Yes, one do need coding skills to create an automation framework but the programming language knowledge you acquire while working on automation framework is very superficial. If you know the basics of a programming language well, you will be at the top of software tester’s pyramid of talent. Only and only if you had the good fortune of developing an automation framework from scratch, you will scratch little above basic of any programming language. What you will never or rarely learn would be algorithms of good programming problems. Also, if you had the good fortune to work with multiple software automation tool then you might gain the tool knowledge but your programming language knowledge will be spread very thin. As I have talked about in previous posts on testing, automation might be buzzword and great selling point for client or value add but till today it is the manual testing which is relied upon and trusted to deliver a quality product, a truth no one would confess. I myself have experienced this over the years for companies I have worked and had lengthy discussion with friends who are working at leading and best of product development companies. If you do an analysis of best automation testing tool available in market and check how does it fit in agile process, you will realize the redundancy of automation tool available in market. Imagine a sprint of two weeks and development is in very early stage can you imagine to develop an automation framework with, say tool like, selenium and still not spill over with your sprint, the answer is NO. As we might move to a future of automation tool which will be driven by machine learning and AI, which might work faster, only then any automation testing tool will fit agile process.
Lack of product development experience?
Let’s be honest as a software tester, you will mostly react to a product and provide your opinion on improvement but you will never really get to imagine the product. Your role itself is reactive rather than conceptualizing the product. Over the years, your role as a software tester will train you to look for improvement in any product but will slowly eat away your imagination of a new product. Even though you would be a kick ass software tester, over the years you will not be given the role of a product manager, your skills will always be awarded as horizontal skill set, who can cater to all products but can never work vertically and be the product boss. Worst part is, you will be constantly reminded of your second position to a development team. Eventually you will realize that your lack of product development knowledge is curtailing your chances to be a product owner. You might have worked hard on your product lately or even on pitching a new product but your CV will not lend you the support that is needed for a product owner.
In future if you want to apply for a role of a product manager or similar roles and your CV is the your first representation, there is a high probability that you won’t make beyond the first round of screening.
Limitation in starting up a company?
I can say this from my personal ongoing experience, if you are starting up then each team member is REQUIRED to contribute in all the aspect. Especially if your entire product is a software product, coding and building that application are the most important tasks. If you are co-founding your company and want to a fast development of your product, you will share some of the development tasks of your product. There your lack of coding and building application skills, that you haven’t learn as a software tester, will come to haunt you. You will be slow to pick up and deliver your tasks compared to your counter parts, not because you can’t but because you have trained yourself to be reactive on a product. Especially for someone with close to 10 years of experience and who has spent 9 years of those as a software tester, it is harder and almost impossible to pick pace with younger kids or even developers who have same logical bend as yours.
What should be done?
Never ever take up only software testing roles if it does not give you exposure to full-fledged development. Don’t stop in-depth learning of programming language, algorithms, framework development and product development. Talk to your resource manager or product manager and push them to give you an overall exposure in a product development life cycle, don’t ever limit your profile to only software testing.
P.S: It's not all doomed for software tester though, there is great opportunity now to develop new automation tool based on machine learning and AI. Asses if you have creativity and resilience left, you can definitely create the new success path.