Moving from testing to development


One of my coworkers asked me for advice on shifting from a testing role to development. Inside IBM, cross-role experience can often be picked up within a project, on a BizTech opportunity, or by assignment to another role (if the project manager really, really believes in you). Here are some tips if you’re considering the shift yourself:

Although you can build your skill in steady increments, building expertise can be a long and frustrating process. You’ll make a lot of progress in the beginning, but you’ll probably hit a plateau. Don’t be frustrated.

Unless your project manager is okay with taking a risk on you, you probably won’t be able to immediately spend time developing those skills on the job. Here’s how you can free up some time to work on improving your skills:

  1. Look for ways you can work more efficiently and effectively, so that you can save time.
  2. Document those processes so that you understand them better and so that other people can take over your role when you leave.
  3. Automate as much as you can, saving more time and enabling more people to do your work.

You want to be replaceable. You can’t spend time learning something else or move on to another project if that would leave a big gap in your previous team.

How can you learn more about development when you’re testing?

  • You can improve your processes, learning more about available tools along the way.
  • You can learn how to script while automating tasks.
  • You can learn an in-demand skill and get pulled into projects that way.
  • You can focus on providing additional value while testing. For example, if your project is okay with it, do whitebox testing in addition to blackbox testing. By reading the source code, you might be able to think of test cases that should be covered. You can try helping with problem identification, using tests to narrow down where the bug might be. Once you get good at that, you can try documenting your problem-identification process and commonly-encountered bugs. When you’ve got a good feel for the structure of the program and how things are generally fixed, you might even tentatively propose fixes.

What other advice would you give to people who want to move from testing to development?

  • What you’re saying is that this person should try to collect programming experience while doing his testing job. If he/she has got some spare free time, he/she could also consider contributing to an open source project.

  • Absolutely. Open source is awesome. As the person in question works at IBM, she’ll need to get approval to contribute to open source, which makes it a bit more of a hassle, but open source is totally awesome.

  • Ankit

    Hi “Sacha:,
    I completely agree with you that open-source is awesome, I am myself a big enthusiast of it.
    I need your advice, I am a fresher and accidentally entered a CRM testing job (I was supposed to be in dev team but they required testers so put me into testing. They also told me that I can switch to development in coming time), so will starting my career as a tester will affect my future options to switch to development, should I quit existing job anf search for a new development job or I should carry on with the current job and keep on polishing my skills to get a development job in my company itself????

  • Ankit: If I were in your situation, I’d stay in the job.You don’t want to switch jobs too quickly, because then future employers get nervous. Besides, it’s good to have many skills and to be flexible. I’d keep a close eye on the development team, and work on ways to find out when a position becomes available and how to become the best-qualified person for that position. You might be able to do this by regularly talking to the manager of the development team. I would focus on doing really well at the testing job. Learn how to use automated testing tools, and work on identifying ways you can even improve the testing/build process. Lastly, I might set aside some personal time to work on development-related projects, so that when a position becomes available (either there or at a different company), I’d have the experience to make me a stronger candidate.

    Hope that helps!

  • what growth does testing have in the industry respect to personal knowledge,skills and salary…???????

  • Growth depends on how much you invest into it. There’s always more to learn.

  • Pritee

    Hi, I am 2 years experience in Manual Testing in very big MNC, but i am not satisfied with Manual Testing as I am now a days feeling that I have learnt nothing in this field as compared to my dev. colleagues. When I entered in Testing I was a fresher and as my company is very big, It is not much flexible to allow people to switch from QA to dev. And, in my last 2 project I didn’t get time to harness my skill as dev. because of work pressure and also it don’t seem to me that there is any chances of automation project coming up in my account.
    I think taht i have development skill its just this that I never got any chance or oppurtunities as my colleagues.
    I am loosing my sleep over this. Please help me out.

  • You can learn how to automate your testing, or learn development during your personal time. For example, if you test web applications, you might check out Selenium. Good luck!

  • Ambika Chandra


    I was working in FileNet technologies and last year I had to leave my job due to personal reasons. Currently, I am not working anywhere. I want to change my domain from development to testing as I feel dev field requires more time and is stressful as compared to testing.
    I have time constriant and cant devote much in thinking how to execute some piece of work. Pls, guide me whether I shud leave dev and adopt testing as my career.
    Also, how to proceed for change from Dev to testing.

  • Ambika: Career changes are always decisions you’ll need to make yourself. It might help to find other people who work in testing and talk to them about what the work is like, and if there are open job opportunities. You can also ask them how they got into that role.

    Most of the job positions I hear about tend to be for development instead of QA, but you could try applying at larger companies.

    If you find development stressful, maybe you can branch out into a different field, or even go into something non-technology-related. The What Color is Your Parachute book is a great read for career changers, and the recent The Start-up of You is good too.

    Good luck!

  • Priya.D

    Hello Sacha Chua,

    Great post and I found it useful.

    I am working as QA in a developing s/w company for more than 12 months.and really I gained “0” knowledge from the domain where I am working.Manual testing is going,nill knowledge in automation,no time to study any materials regarding automation or development or pinging any testing courses. They(employer) are not recognizing me as a part of team,giving testing processes to dev team itself, but still I am working reasonably well for them

    Please I need your advice,what should I do. I feel very bad about my career,my company doesn’t give any valuable hikes also in these months. Am getting only 7200 pm.!!!!(Whew…!)

    Eagerly waiting for your reply

    Thanks in advance,

    • Try to talk to your manager about your career growth plans – what you want to learn and how that can help the company. If that doesn’t work out, you might want to think about saving up a good emergency fund and switching companies. It’s important to find a place where work is a good fit for you and helps you grow. If you don’t feel you’d be a strong candidate for other positions, give your company just the time you’re paid for, and invest your personal time into learning new skills.

  • Priya.D

    Do you really think that all companies will recognize all the employees equally? I don’t,coz,in my case,they were really bad…I should not blame them,but I got really depressed..

  • Companies are made of people, and people make good or bad decisions. I think most people are too busy trying to stay afloat to really nurture other people’s lives or careers. Your career is your responsibility. If you don’t think you’re getting enough opportunities for growth in your company and you can’t seem to create them if you try, work on making it possible to move, and accept a job more carefully.

    Many people are teaching themselves how to code through sites like . Others learn different skills, too. Never count on someone else to take charge of your learning.

  • Priya.D

    Its true that “my career is my responsibility”. Thanks for the advice.

  • Priya.D

    And from today onwards I am teaching myself how to code,with the link that you have mentioned. Awesome link and helpful too,



    I got placement through campus recruitment in a product based company.As of now i am currently doing my internship in same company.I am alloted to manual testing team but i am not satisfied with my work in testing.Even I am not able to move from these company because of 1 year bond.
    I need you suggestion to make my future bright. Really i am interested in development. I discuss about with my colleageaus,friends different persons tell different reasons i am totally confused about my career. Suggest me i do any certification is it useful to my career to shift from manual testing to development team in same company or different company.

    Thanks in advance…………

  • You can teach yourself how to program. Certifications are still a long way off for you; don’t worry about them yet. Try something like or check out a book from the library, learn programming, and see if you like it.


    Thanks for your advise.

    Actually my intention to ask, can we shift from manual testing to development team . I need to clarify about these i am getting different answers from different persons because these is starting stage of my career.

    Let me know , can i get offers from companies after one year to work with development team because i will get experience in manual testing.

  • That’s up to you and the prospective company. It may be difficult considering you’ll be competing with people who have development experience, but it’s not impossible if you work hard, work smart, are passionate about what you do, and have a good fit with the company.

  • sheetal

    Hello all,
    I am totally confused of my career.I am fresher 2012 passout.i got placed in some company in testing stream.i am going to be trained in testing really boring?will not there be any growth in it?i am very passionate about dev but for some or other reasons i got testing.what to do now.i cant change the company because of 2 years bond.after that can i change my stream to development or i should stay in this stream for whole life.please suggest me what to do.

  • Hi,
    I’m working as a QA in a mnc. Its now 1.5 yrs I have been here and doing manual Testing.
    I’m too much passionate about developing perticularly in Java.
    I am computer Engineer(B.E.) but got Testing domain, work is reliable but not challanging and quite boring.
    Now I want to be a part Development . Most of people says ,Growth in Development is nuch greater as compare to Testing
    But it needs hardworking too.
    So, should I switch or not?
    Being woman is it better to switch from testing to development?
    should I switch my profile within the company or try after resign.
    Please guide me on this.

  • Look into test automation as a way to practise a little programming in the context of testing. For example, Selenium is a great way to automate browser-based tests, and you can use Java to program the tests too.

    Try development in your spare time – maybe working with WordPress, Drupal, or Rails, or go with Java since you already like it. Pick a personal project, maybe even work up to contributing to an open source project. See if your employer will support your switching. If not, build up enough experience during your free time and save up some money so that if you do shift, you can convince someone to hire you as a junior developer.

    Personally, I like development more than testing, but it’s different for different people. =) Worth giving it a try to find out!

  • Gouthi

    i was in testing for 2 yrs now i moved to java development, i am very new to java aswell as development. i am not able to understand the coding flow in application i am getting frustrated a lot i feel very bad about myself.Sometimes think to Quit IT..

  • Gouthi: If you’re faced with a large codebase that many other people have worked on, it can be very intimidating. Are you working on a team? Your team leader should be able to find small tasks that you can work on that’s relatively straightforward. As you gain experience, you can work on larger and larger things, because you’ll know how things fit together.

    Look for books and tutorials on the framework that you’re using. That will help you understand the big picture. For example, the idea of Model-View-Control separation (MVC) can be confusing to understand if you’re just reading code, but it’s easier when you see diagrams and you can see how things go together.

    Find a mentor on your team or on a different team. Treat them to lunch and be super-nice to them. Ask them questions. Ask them to review your code.

    Don’t pretend to know anything you don’t. You can say that you’re going to look up something or figure out how to do something, but don’t pretend that everything’s okay and that you understand everything if you really have questions. Ask those questions. Tell your team leader if you’re running into problems.

    Take notes. Many programmers write code that isn’t particularly readable – really long functions, ambiguous variables, and so on. Add comments if possible, or write your thoughts down in a notebook. It’s perfectly normal to have to read code several times — or even several dozen times — before you get a sense of how things fit together. Ask people who are more experienced to help you check if your guesses are correct.

    Development is tough, but it gets easier as you start being able to understand the pieces. Slow down, take notes, make diagrams, ask questions – you’re not stupid, it’s just the way that it is. Software is complex, and you need to learn how to untangle it bit by bit.

    Whenever I work with someone else’s codebase, I like reading through as much as possible just to get a sense of what’s out there. I want to make sure that I can compile and test it on my system. Then I might make a tiny change – add a hello message or change some text – just to make sure that I can compile things, and to know that I can make changes. I look at my tasks and pick the smallest one I can work on, something that doesn’t involve interacting with lots of different pieces. Searching the source code for text or asking people will get me to where the code needs to be changed, and then I can make small changes to it. After I’m done with that, I ask people to look at it, and then I move on to the next smallest thing.

    If you have an interactive debugger set up, you can use it to step through the code and understand how the variables change. Ask one of your best team members to show you, and be really nice to them. =)

    You learn development one step at a time. You learn the code one step at a time. You’ll keep learning this way with every codebase you work on — even things that you’ve written yourself, if you haven’t worked on it in a long time. It’s normal — and it can be incredibly fun once you’re immersed in it and you find that things “click”. It may take you a long time to get to that point because you’re learning development and you’re learning the specific project you’re working on, but it gets easier and more fun over time.

    Good luck!

  • Priya D

    Hi Sacha..How are you?

    Recognizing my sincerity and hardworking, my company had paid me enough hike and am very much happy with it…Decided to build my career in testing, as it is much suitable to me..Thanks again for your timely advice Sacha. You are a great inspirer for me…..

  • shailendra

    Hi to all,

    I am senior Qa engineer, but i am never satisfied with my job both in terms of financial and in knowledge, i was a good student and have honours degree in engineering and got selected in the Reliance company through campus recruitment and they offer me crm testing and made me promise after 1 year they will move to us in the dev team but due to market fall down may of them got fired and i found a new job but on the QA profile itseld as i was having exp. in the testing but now i have completed 5 years in the testing and i am not interest in it at all, i was having good knowledge in java and c++ but in 5 years i hve never used it, Everyone think that Qa are nothing as compare to Dev anyone can replace them, anyone can do this job, its really very painful when u hear this and also i get less increment than the Developer so why this difference and really i am now frustrated and anyhow i want to switch to dev but i don’t know how and please don’t tell move on to automation and all, i have work on 2-3 automation tools like watir , QA wizard but when we switch to other company they don’t have this tool coz they are not so familiar hence we get in the manual testing and i have basic knowledge in the QTP as well as but when i go for interview in the QTP they say we want deep knowledge in it , so nobody event thinks to give us a chance then how i will raise my knowledge in the QTP or some other famous tool.

    and after all i want to say i have lost so many things and i am very far behind with my friends who have started their career with me(both in terms of knowledge and i financial growth), now i switch to dev nobody is accepting me as i have no exp in the decvso how should i convince them and if any how someone gets agree then they are offering me 8K-10K per month so can u imagine for 5 years exp person in it industry only this much amount and also truth is that i am not satisfied with my current role since 1 day of my career really i am losing myself everyday please suggest me, i am also afraid that one day i have to leave this job coz of my frustration and not interest in this QA/testing, then i have no hpe or decision to what to do next

    Plz help me…..

  • Priya D

    Hi Shailendra,

    As you are telling that you have a very good knowledge in C and C++, you can try other companies which will give you good salary, in development field itself. As we are in India, there are plenty of good companies available in here itself offering you a very great carrier to build your future.. Please don’t get frustrated. Try and try, hardwork never fails..

    Also, FYI, there are lot of other good companies which offer you a great job in Testing field too. So don’t be disappointed. All the best Shailendra.:)

  • Vanshdeep Kewlani


    I have 4 years of experience in Testing, my career started with about 4-5 months of Performance Testing then it went to about 7-8 months of Automation Testing and now totally Manual Testing. But I have got sort of bored of writing test cases in excel. I want to do some technical stuff. Before starting my career, I was very good in programming but could not become a developer. But there is always a desire in me to be one as I think it’s been my first love. With the passage of time I have lost confidence totally in terms of coding as I am totally out of touch. Also I am scared how will I compete with people having same experience in development if I switch to a development career, perhaps I will be considered as a fresher or a relatively low experience guy. I am totally unable to decide about this, also I have weak memory and slow decision making skills which warn me to stay wherever I am no matter what my heart says

    Thank you & Regards,

  • Vanshdeep Kewlani

    Hi Sacha,

    One thing more I forgot to mention, I want to judge how good I am for development as in is there any way to judge whether development is for me or I am going to a wrong direction.

  • There will always be people more experienced than you are, so don’t worry about that. If you want to build a career as a developer, you’ll need to figure out some reason why the company should hire you instead of a fresh graduate or an experienced developer. If you want to freelance, you’ll need to figure out why clients should choose you. It isn’t always about years of experience. For example, your background in testing might make you more appealing to a company hiring a developer if they need to write code with more quality. Hard work, good communication skills, good learning skills, good fit with the company culture — all of those can be more important than the cheaper salary of a fresh graduate or the experience of an expert.

    If you’re going to learn how to develop — or to learn how to do anything — you’ll need to be comfortable with being mediocre in the beginning. You won’t be confident. In fact, if you learn correctly, you’ll never be confident – there’s always more to learn, especially in a field that’s still growing so quickly.

    Development is not an innate talent. It’s not like someone will say to you, “You are probably going to be a good developer, so you should learn it.” Or, “You are a terrible developer. You should give up now.” Like everything else, it’s a matter of practice and learning.

    The only way to judge whether development is for you is to listen to your own motivations and goals for it. Even when it’s tough, do you have reasons to keep on going? Then keep going. =)

  • Anurag Sharma

    Hi sacha !! nice to see that all are getting help from yours…. I really appreciate your effort.

    I joined one of the biggest IT company in the month of march. I was trained initially in mainframe technologies as COBOL, JCL, DB2, CICS etc. for two & half months but when I got my first project and when I joined it that I got to know that my project is a testing project & I am gonna test manually web based applications and some xml’s also. Since it has been 4 months, from the perspective of learning, I have only learned one QC tool apart from that on learning basis I am nil. As there is not going to be automation in this project, I need to move on testing to some other technologies like cloud, SAP etc. When I meet other people they have different opinions and due to that I am confused too. So could you please tell me that how to change domain from testing and what are the promising technologies for which I can opt for and how can I get my next project in that particular technology.

    Thanks in advance !!

  • karthik

    i am placed as a test engineer …like am interestd in development ,many of my friends and relatives suggested that its difficult to switch from testing to development, am really in ambiguity whether to join d offered position or not

    • It can be difficult to switch if the things you’re assigned at work take up all your time, unless your workplace is investing in automating tests and that’s part of your job description (or you can make it part of your work by volunteering). Testing jobs tend to focus on things that are difficult to automate, but if you do go into it, research testing automation tools to see if you can take the lead on automating things (which is a little like development, and something many companies are looking for). On your own, you’ll definitely want to spend time learning about a development platform you like (ex: Rails, WordPress, Android, or whatever) and for which there’s demand. You may need to do some projects for free or low cost while you’re learning, but it will be valuable experience.

  • Avinash Paul

    Hi I am working as a performance tester in HP with 2 years of experience I would like to move to java developement ,is it a good choice

  • charitha

    i am in testing team. now i wanna shift to documentation. I know that there is not much improvement in career, but all i am is interested in documentation.What should i say to my manager?

    • charitha: Would it make sense to try documenting one of your testing processes or workflows, or something that your team works with? Then you can bring that example to your manager and see if he or she might be interested in having you work on more things like that, or if there are other teams you can help with documentation part-time. That might be a way to ease into it and start networking with other teams. Good luck!