When
it comes to the question of whether developers should change their career path
to be testers or not, there are many different points of view. Some people
think that this is a bad idea. However others claim that this is a great
evolution. I believe both developers and testers are required to own different
mindsets and variety of set points of skills. Shifting from a developer to a
tester will have pros and cons.
Advantages:
One of the first crucial advantages is automation testing
works. Moving to testing career, some developers think that their programming
skills will go down the drain. Is this correct? No, this conception is an
enormous mistake. If developers know Java language, they can learn and work
with Selenium tool in automation test. If they have experience in database,
they can join ETL database testing projects. With programming competence, they
are able to automate much of what they do. Furthermore, they could take
different roles in various projects such as unit test writing, coding review, coding
analysis, etc. These are prudential in most projects. In the Agile era,
automation test is now dominating testing projects. Nowadays, people produce
many powerful testing tools and build useful test automation frameworks. Manual
testers totally leverage these to create automation scripts easily. However,
without programming knowledge, they won't be able to create complex test
scripts and strong test suites. To overcome these, automation testers with high
programming skills are always mandatory. In attempts to meet project
expectations, they are able to think about the powerful open source tools such
as Selenium, Watir, Cucumber, JMeter, etc. and even commercial tools - QTP,
SilkTest, TestComplete, etc. to set up fantastic and effective test suites, and
to form good test automation frameworks. However, this is once in the blue moon
if testers do not have experience in programming languages. Obviously, with
programming skills, developers will boost automation testing activities to be
more effective and bring about significant success to automation projects.
Another advantage is ability to quickly understand
technologies and system architectures. Developers have more experience in
design architecture, up-to-date technologies than testers. As a matter of fact,
it's easy for developers to adapt and to learn new technologies and to
understand design architecture. As a result, they will define a better testing
approach. For instance, if a system is designed and it uses technologies: .NET,
MVC model, database load balancing, they might ask and self-answer questions:
what are strengths and weaknesses of a MVC model? Which areas do testing
activities need to consider with load balancing?
In relation to bug detection, to some extent, developers are
likely to detect more critical defects - in connection with architecture,
database design, security, etc. than testers do. By virtue of design, coding
and database experiences, developers have a tendency to hook into the system to
find out difficult issues. These issues might affect the whole system
architecture. Sometimes, it takes a giant effort to fix these kinds of issues.
Definitely, their findings tremendously give rise to improvement of final
product quality.
In terms of effective bug communication, unlike testers, when
detecting a defect, developers tend to look for the root cause and provide good
information. By means of information, the developer who implements the feature
linked to this defect will easily narrow down the scope and fix this issue
quickly.
Disadvantages:
Although transition from a developer to a tester has many
benefits, this change also confronts many challenges. In order to be a good
tester, the developer must eliminate following obstacles by training and
hand-on activities.
The first important drawback is lack of testing mindset and
testing methodology. The developers' whole mind is to develop a piece of code
which matches requirements directly. They are not really worried about the side
effects. By contrast, testers have to use various techniques to find whether
the code is developed properly as required or not. The developers seem to look
at one road only. Unlike them, the testers will try to search for infinite
paths from departures to destination and check if all paths are working
properly. The testers act as real users and test all the system areas which the
developers cannot do. As a result, due to the different mindsets, the
developers are often missed test cases and test scenarios in association with
UI, UX and alternative flows when designing and performing tests. Absolutely,
it is not easy to change their mind to adapt to new requirements immediately.
This process takes at least one year with effective trainings and useful
hand-on works. However, in efforts to acquire knowledge and with their passion,
I believe that the developers will grasp valuable experiences to fulfill this
imperfection.
Secondly, developers tend to look down when they become
testers. I often encounter developers who think they are at downside as they
are in testing. They think testing is the lowest level on the software career
ladder. Moreover, many people such as Senior Managers, Project Manager and
Technical Architect also have the same thought. Well, that is a huge
"Myth" and I will discuss it in a different topic. In real life, many
companies are aware of quality and always say, "We are highly concerned
about our product quality." Nevertheless, turning to their actions, when
they divide their project budget into departments, they put the lowest amount
into quality assurance department and they also first cut off right away this
budget when there is any financial issue. In some cases, the testers are
considered as weak and garbage staffs. In software industry, developers somehow
face this challenge on the top their head when they shift to testers. From
where I stand, being looked down on happens at the first stage only. Afterward,
when they identify their purposes, their passion, set point of expectations,
and are used to performing daily testing tasks, this cons will disappear
incidentally.
Finally, keeping motivation is also an extreme obstacle of
changing from developer to tester. At development site, after finishing coding
a function or module with a piece of code, developers will move to implement
another function with different codes. This makes developers refresh and they
feel like learning up-to-date technologies and knowledge. Therefore, they have
a sense of motivation. Instead, at the testing side, sometimes they have to
execute regression of a module repeatedly. This results in a lot of boring
tasks. Furthermore, if they have been digging in manual tests and working for a
project for a long time. Definitely, they will degrade their inspiration and
motivation when taking such a depressing task. In fact, losing motivation
happens in all areas and people ignore what they are working on. People should
come up with a best approach to keep themselves motivated.
Neutral:
Last but not least, one of fundamental questions in your
mind "Is it correct for a tester to get higher average salary than that of
a developer?" Hold on a second. Before answering this question, if you are
a developer, you should ask yourself, "Why I should switch to a
tester?" Absolutely, no matter what you do, your attitude, your purpose
and your passion will tremendously contribute to your future success. Actually,
the salary and benefit depend on a variety of circumstances: the size, the
structure of the company you work for, the position, the workforce demand, the
competence, the current job market, etc., Thus, it is said that testers can
receive higher salary than that of a developer and vice versa. What's more,
talking about working freelance chances, many developers are worried about this
transition. They are afraid of their programming skills which will be dissolved
and be fossilized in a long run. This leads to a decrease in their chance to
participate in this workforce. However, there are nowadays a vast community to
ready support both developers and testers. I think there are the same
opportunities to take whatever they want. Many developers are paid more than
testers but a lot of testers can earn better than developers. In addition,
although testing is not considered important somewhere, many software companies
in Vietnam treat developers and testers alike in my point of view.
Conclusion:
To sum up, development is an interesting and hectic job
while testing is a fantastic and high responsible work. Transition from
developer to tester always has pros and cons. If you like testing and want to
become a top-notch tester, I'm sure that you can earn better with more job
prospects. You have to embark on building your testing skill sets from scratch.
You not solely learn new testing techniques and testing methodology but also
change your mindset to adapt to new things. However, to some extent, you can
expand your knowledge in business domain specific such as health-care,
insurance, etc., Moreover, as a tester, you are able to get a boarder exposure
to overall system than a standard developer and you can enrich your experience
in automation testing tools, performance testing. Thanks to this, your career
is much more flexible with great opportunities. It's not easy to make a change
career path but you should make up your mind. With your passion, and taking
advantage of your knowledge, you can be a test lead and eventually a test
manager, a test architect or a director someday - who knows!
Thao Vo