As a junior developer, I'm working in a company that develops software for the airline industry. We have a test team, so I don't have any motivation to learn testing software. My friend is working for a small company as an back-end developer. Their team doesn't have any specific test team, and they do their tests on their own. Should a back-end developer learn about testing software?

  • 31
    If you are a junior developer and don't want to be junior your whole career you should want to know as much about your field as you can. Testing is an essential part of development, so even if you don't "need" too, it will make you more conversant in your field which will make you move valuable which can lead to more senior positions. – msw Oct 14 '14 at 5:52
  • 3
    I got most of my jobs because I did stuff in my spare time I didn't need to do, be it learning Haskell, or writing a compile time ray tracer in C++ :P The guys I know/knew who did only what was required for the job now struggle at advancing in their career. – phresnel Oct 14 '14 at 14:03
  • 3
    Isn't this the type of "soft" question that leads to expressions of opinion? – ThomasMcLeod Oct 14 '14 at 14:32
  • @phresnel Oh, a compile-time ray tracer in C++ is so evil. Respect. – David Conrad Oct 14 '14 at 17:04
  • 3
    I agree this question should be put on hold. It's kind of like saying, "I only speak English but my wife is from China and speaks some English and of course Chinese. Should I learn Chinese?" – TTT Oct 14 '14 at 18:55

Absolutely and unequivocally: yes!

It's a core skill which you will be expected to have at a large percentage of companies you'll want to work for in the future.

As a developer, the technical aspects of testing are more interesting than than the methodological ones: learn using a unit testing framework, set up automated testing, try doing test-driven development to see how you like it.

If you want to specialize in it, performance/stress testing and security/penetration testing are quite sought-after skills.

| improve this answer | |
  • 1
    @AliArdaOrhan, theres an argument that the development of every function should be preceded by the writing of several automated unit tests. Try it, it makes your code better. – Jodrell Oct 14 '14 at 15:24
  • 9
    Back-end development really lends itself nicely to automated tests. There is no UI craziness to deal with. At least with a dev team unit testing framework, you are catching more errors before they leave your team and are found by QA. Less errors leaving your team makes observers happy. – BPugh Oct 14 '14 at 15:31

Testing the code you are working on is part of the discipline that makes a good programmer into a great programmer. Setting up automatic testing, using light-weight, fast test cases allows you to establish a base-line of functionality; modifying the code to fix errors or add new functionality can be incrementally tested and gives you rapid feedback on your code. This rapid feedback, when done frequently, is much more efficient in terms of re-work than building it all, compiling and testing, because you end up not going so far off the right path.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.