Thursday, September 11, 2008

QA vs. Development Track

If you are a fresh college graduate, or even a few years into your software engineering career, you may be faced with a fork in the road: go into development or QA.

There is sometimes a sense of superiority amongst developers since they are not ‘stuck’ doing testing like the QA people. Hence QA is sometimes seen as a dead-end field, and there is a bit of truth to that stereotype. Once you start in QA the tendency of most companies is to keep you there, and it’s not so easy to switch over to actual development. Which is not to say that transferring out is not impossible, of course -- but you shouldn’t count on it.

If you do decide to go into QA, bear in mind there are often two separate tracks. In one, you’ll do feature testing, usually manually. You run programs, click on buttons, fill out forms, etc., and check that the system behaves as expected according to a set test procedure. This is called “Black Box” testing. It can be rather tedious and unglamorous work. If you’re lucky you may get to write some scripts to automate some of your testing. This position is commonly called a “SQA Analyst”.

Another track is where you are actually involved with the source code. You may review and critique code written by the developers, and you may write test harnesses to exercise the components the developers write. This is called “White Box” testing. You may also be heavily involved writing automated testing tools and scripts. This type of position is sometimes called a “QA Engineer”, and is more highly regarded; it can and often does lead to positions on the development side.

1 comment:

Anonymous said...

But, still, realize that white box testing is almost always "software development lite". White box tests never involve the massive designs, GUIs, careful coding and schedule management that many products require. Even if it did, the development team itself would likely take this duty away from the QA team and integrate it into their own team. So, Senior QA Engineers, in terms of software development expertise, will still find it hard to move to the development side and may need to restart as an novice engineer.