views:

111

answers:

5

I need advice about how can I work as a software engineer, when my current career is software testing. Is there a path to be developed from software tester to software engineer?. And what should I know to become a software engineer?. Note that I have a BS in computer science and I don't have any experience in software development. Thanks

+2  A: 

Depending on the jurisdiction the use of "engineer" may require some professional credentials, such as parts of Canada I believe. My suggestion would be to see if you could get into some test automation which would you give you some experience with programming languages and making some code.

"Can starting your career as a tester make you a better developer" is one of several questions on this site about testing and development that may be worth reviewing before posting such a broad question as you have. From what part of the world are you that you want to make this change? I'd imagine the process may differ among various countries a bit, to put it mildly.

JB King
A: 

Speaking as someone who made that transition I can say that having a supportive employer helps. If they are willing to let you get involved in a project and develop your analysis/programming skills and experience that will help a lot.

JB Kings response pretty much sums up the situation but I would add that most employers seem to be looking for experience these days and junior roles are quite hard to come by.

FixerMark
My question is Just: How Can I be a software engineer if my current career is software tester???????. What should I add to my knowledge?
Zaher
@Zaher: what you need is practice, not knowledge. Practice writing software. At the very minimum you may need to get compilers (Visual Studio Express, GCC, Java, etc) and practice writing some software that you believe is useful. Fixermark's idea is that it may help a lot if your employer can give you opportunities for practicing programming.
rwong
+4  A: 

Also speaking as someone who made the transition: Look for ways in which new tools or libraries could help your team to do its job better. You should be able to easily find several. Then start implementing them on your own time, teaching yourself the necessary skills as you go. To give you one example, many years ago I decided to create a graphical analysis tool for our test log data. Through internet research I discovered that .NET offered a good way to implement it, so that's how I went about doing it.

If you do a good job, other testers will gladly incorporate your products into their process and your manager may recognize your initiative by giving you time during regular working hours to focus on improvements. Your skills will improve with each new enhancement that you create, and eventually you'll be able to parlay them into a development job.

If you find that you're having a hard time motivating yourself to write code in your free time, then you probably won't want to become a developer after all. There's no shame in this; it's the sort of job that you really have to be passionate about otherwise it could make you go crazy. Good luck!

Kevin D.
+3  A: 

You could do what any good programmer does, try to automate yourself out of a job.

There's lots of testing tools that let you automate your testing and reporting with small code snippets. For example, check out Selenium. Work with your developers to get your automated tests inserted into the build process, eventually people will notice.

People who develop automated test suites are developers, not testers.

qdjm
+3  A: 

Have you discussed this with your boss? That should be your first step as it will probably be very much easier to do if you remain within the same company.

Most companies are keen for their staff to develop their careers, yours may be one (and if a developer left it might be easier to replace him someone who knows the system but might not be 100% developer yet that with a developer from outside who has a learning curve).

Do you have access to the source code? If not, ask for it. My favourite bug reports are the ones where the tester has actually found the problem in code; bonus marks if he and suggests a fix; double bonus marks if they already built the software and the fix works.

Who writes the test scripts? If you do then you already have an understanding of the software architecture and you know how to code; point that out to your boss.

Ask your boss if you can code a small, non-critical piece of the next version/product/life-cycle. Then ask if you can do some design.

Look for a friendly developer, chat to him over coffee or lunch, or if he comes to your test area to debug. Find out what skills he thinks would help and try to acquire them at home.

You might also consider volunteering for an open source project then after a few months point out to your boss that you are already doing development.

Or, if you work for a big multi-national, ask to go on relevant courses or ask them to sponsor you for an Msc.

I have seen qjuite a few make the transition over the years and the circumstances were different for each; there is no 100% formula that works for all, but many have done it.

Good luck!

LeonixSolutions