Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In a software firm there are three kinds of jobs

  1. Software Developer
  2. Software Quality Engineer
  3. Software Tester

The role of a software developer is quite clear but what's the difference between the jobs done by a Software Quality Engineer and a Software Tester? It's very strange for me why there is so much of a difference in the salary levels of a Software Quality Engineer and a Software Tester.

share|improve this question

migrated from stackoverflow.com Jun 10 '11 at 14:10

This question came from our site for professional and enthusiast programmers.

1  
Look up the job descriptions for these titles. Not all companies have "Software Quality Engineers". I'd never heard that title before and am really not sure what it would do. –  FrustratedWithFormsDesigner Jun 10 '11 at 14:14
    
to a certain degree, what is meant by a title differs between each business –  jk. Jun 12 '11 at 11:41
    
+1 since I think the question is more subtle and important than folks realize. –  joshin4colours Oct 7 '11 at 14:51
add comment

7 Answers

Although they both have the goal of making software more usable, those two jobs couldn't be more different. Also, these are just titles, but if I'm thinking of the right "roles", then...

A tester is someone that simply interacts with a compiled piece of software. He runs various use cases to make sure the software is working as expected. You don't need any programming knowledge to run software and document whether or not its doing what it should.

A quality engineer interacts with the code directly. He can write programs to determine if it's up to specifications (e.g. if it can run with a certain load without dying.) Someone like this needs programming knowledge, as much as a developer.

share|improve this answer
1  
I would also add that a QE would begin interacting at an earlier stage in the process, even before any code is written, and probably participate in code reviews. –  Christopher Mahan Jun 10 '11 at 15:56
add comment

There's no standard for titles, and there are many articles about how "inflated" titles are simply used to attract different levels of candidates. Apply for whatever role you're qualified for.

share|improve this answer
add comment

Depended how seriously the orgaisation takes quality. At best, testing proves the absence of quality, not the presence, and even thats arguable

If Testing is the ambulance at the bottom of the cliff, Quality builds a fence at the top. The best a tester can do is prove the presence of defects, not the absence. Quality (When done properly) can tell you how many you have not yet found.

A Software Quality Engineer has a much broader role. They will cover everthing from auditing (and maybe developing) Process and procedures to Root cause anaysys and incident investigation when things go badly wrong. The brief includes requirements, development, test, deployment, post sales support etc.

In our organisaation, the quality depart do not go near software, source code or tests. The report to the CEO. The Software Quality Engineers work with the dev teams and test teams, but report to the Quality manager.

share|improve this answer
add comment

Quality Engineer is a professional who understands the principles of product, service quality evaluation and control. This body of knowledge and applied technologies include, but are not limited to, development and operation of quality control systems, application and analysis of testing and inspection procedures, the ability to use metrology and statistical methods to diagnose and correct improper quality control practices, an understanding of human factors and motivation, facility with quality cost concepts and techniques, and the knowledge and ability to develop and administer management information systems and to audit quality systems for deficiency identification and correction. Test engineer is person responsible for determining the best way a test can be performed in order to achieve 100% test coverage of all components using different test processes.

share|improve this answer
add comment

I'd say a quality engineer's role is to improve the quality, by changing the way people work, defining new procedures/workflow, etc.

On the other side, a software tester's role is to test software, in oder to detect bug and to ensure that the produced software matches the requirements. There's no improvement of the process in this role.

share|improve this answer
    
Not necessarily procedure or workflow changes, in my opinion. I would attribute those roles to a project manager or process improvement team (which would have a quality engineer on it). –  Thomas Owens Jun 10 '11 at 14:15
add comment

I think in practice, in the US, any distinction here is about as meaningful as the distinction between a "sales representative" and "sales engineer", which is to say, not meaningful for anything other than perhaps feelings of self-worth. Outside of the US, there may be specific laws regarding who can be called an engineer.

Assuming the positions are at the same company, and in the same team, they probably have some internal distinctions, and one title or the other may have more prestige. I've seen "Quality Analyst", "QA Engineer", "Software Quality Engineer", "Software Test Engineer", and "Software Tester" used, in practice, to represent essentially the same job. Look at the job description to get a better idea (although job descriptions are usually not an exact match to actual responsibilities in practice, either).

Some companies invent titles so that their more senior people feel like they are making some sort of career progression. At one large company I worked for, a software design engineer in test who had contributed a great deal to the test infrastructure for the team wanted to "do more thinking, and a little less coding", so the group manager changed his title to "test architect." His responsibilities changed a little bit, but his mentality about what his role was and how he should think about building tools changed a lot more. The cost to the company for this change approached zero dollars (I think it came around review time, so he had a raise coming anyway).

share|improve this answer
add comment

The main difference between qa and testing is that qa aimed to bug "prevention". As for testing is aimed mostly for bug "detection".

So testing measures quality of developed application, while qa measures quality of processes used to create software application.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.