Are Quality Control Engineers Necessary?

Hai raised a question about the need for QCs in a project team.  Basically he described an situation in which a manager was probed by a developer who believed QCs were not necessary for the project team because developers and BAs could handle all the QC’s tasks, and thus, having the QCs was an unnecessary effort.

The developer in the post offered a very naive view of the QC role (but there are reasons for that, which I will discuss below).  As a matter of fact, there are huge differences between developer testing (unit testing) and QC testing (integration testing, performance testing, security testing, usability testing etc.) and these kinds of testing complement each other while none, alone, is sufficient to assure the quality of the software.  Professional QCs are supposed to possess a different toolset, skillset, and mindset from those of the developers and thus their role is not meant to be replaceable.  You are a good developer, and you can test the performance and the user-friendliness of the system?  Fine, but can you do it as effectively as a QC who is intensively trained for this particular job?  Even if you can do that, if you spend most of your time testing, then when is the time for you to actually code the stuff (i.e. the main reason you are paid by the boss for)?  Should you learn about JUnit, Hibernate, and Spring to get your job done effectively as a developer, or you would rather learn about Rational Robot, WinRunner, and MS ACT?  Would you rather spend your time refactoring the code instead of documenting the reproduction of a defect into the defect tracking system?

Saying that QCs are not necessary because developers can also do testing is like saying just because a table can be used to sit on, then there should be no chair.  The point is, specialization.  No industry can be mature without workforce specialization as no single man can do all things effectively.

Unfortunately, the Quality Control profession has not been focused enough in Vietnam by both the academic and the industry alike.  Many QCs come into the workforce without even being able to write any automated test scripts or possessing basic verification & validation knowledge (e.g. test design techniques [equivalent partitioning, boundary value analysis], quality metrics measurement, and usability etc.)  In fact, most of what QCs do is imitating end-user testing on the working software, instead of conducting systematic test planning, designing, and executing to be able to serve as a significant quality assurance authority.  (And as the name [end-user testing] suggests, if end-users can do it, it is no wonder that developers and analysts can also do it.)  Given that, it is not hard to find a developer (or even hiring manager) who thinks that QCs are “second-rate citizens” (and that is aligned with the thinking of the developer in Hai’s post.)

With the current situation, these are some suggestions on what we can do now

  • Universities need to revise their computer science and software engineering curricula to include specialized courses for the QC profession.  For instances: courses about software usability, test design techniques, measurement of quality metrics, and formal specifications etc.  Besides these specialized courses, those students who aim to work in the QC profession needs possess as much knowledge about software engineering (including but not limited to programming languages, operating system, compiler theory, and development process) just as those will work as developers or system analysts
  • Companies need not only offer feedbacks to the academic to enhance the relevance of their courses but also raise the requirement bar for the QC profession in which QCs must be assumed with more accountabilities and are demanded to be able to effectively assure every software quality aspect (usability, performance, security, functionality and so on) via high-quality test design & execution as well as efficient test automation.  Companies and software practitioners must acknowledge the fact that QCs serve as an indispensible force who, besides the foundation software engineering knowledge, possess highly specialized knowledge that developers or analysts do not have
  • Current QCs must renew themselves to come up with new expectations (from companies) by studying about foundation testing knowledge (as a start, they can read the articles and books of James Bach and Cem Kaner, two recognized industry leaders in the field of software testing]).  Besides, just as developers keep up with new technologies, programming languages, and frameworks, QCs need to continuously equip themselves with latest trends in the software testing (e.g. verification and validation tools and techniques)

We need to act soon in order to be able to look forward to a day in which the QC profession in Vietnam can be recognized as equivalent to those of developers, business analysts, among the others, which has long been the reality in strong software development companies like the US and Japan.  Otherwise, QCs would still long be considered as second-rate citizens in Vietnamese software development companies.

12 Comments

Phong BuiFebruary 5th, 2007 at 6:53 pm

Most of QCs in VN software industry has gone to their career unintentionally. That’s because there is almost NO vocational guidance for QC in their university. This major gap is on our education system. The 1st suggestion of Buu is most important and become urgent now. The 2nd one is also good although it is not very special:). Some IT companies have been starting to do that adapting with the higher demand of the industry day by day.

Needs of QC is quite obvious to comprehended IT guys. However, Buu delivered strong reasoning that absolutely convince almost doubted readers.=D>

Buu NguyenFebruary 5th, 2007 at 9:50 pm

Phong, you raised a very good point: in Vietnam, most people end up working as QC engineers without planning for or being oriented about it during their years in the university. As a result, many come into the work without really know what they are really expected of and thus, just routinely perform the processes / practices already existing in their companies, which, unfortunately, may not be the right ones. This has become a loop and many people just live with it, assuming it is the way things are…

And yes, some of my points are nothing special. In fact, it is just common-sense when one looks at the current state of the Vietnamese software education and industry and compares them with those of the world. In fact, as I am working with a US-client, I can see the real authority of their QCs. For example, no specification details can be documented and ready for development without the approval from QCs (i.e. QCs not just test the working software, they test the specification). After all, the job of QCs to is assure the quality of the product, and thus, anything matters to the software quality must have something to do with QCs.

The tasks are clear, the question is whether we would act on it now, or later, to make QCs really have an indispensible role in any software project. And as QCs can find their voice, applying their truly specialized testing knowledge into the assurance of software quality, we are actually coming to a new stage of the Vietnamese software industry.

Thinh PhanFebruary 7th, 2007 at 12:45 am

I like the point “specialization” in your main idea! It answers all the questions and doubts of to-be-in and people on other sides (even with those who are not in the software industry which I have met sometimes!) about the roles of QCs and what they (QCs) are doing!

Your second suggestion give me some thoughts about it. It is obvious and undeniable that schools and companies must cooperate together by setting “requirement bars” in order to have standards of QC professions (human as well as up-to-date lessons). However, it is not always so! Software firms always talk about the lack of professional people (QCs), but the thing is that do they really create a good environment for those QCs to perform their duties, as well as responsibilities? As you have mentioned, QCs must assure every quality aspect of software products, how can they do that without full supports from the management board? Let’s talk, for example, everyone knows that automation testing does help the team a lot, but are they really doing that (testing the software with tools)? Why? No time left, don’t get used to it, cost a bunch of finance (this is really painful, as good testing software are not for free, ), blah blah. All of the reasons above come from managers, developers, testers, etc. That is to say from the view of an entrepreneur, and from the schools themselves, they are quite the same, as these things are almost new to them. Not all schools have the abilities and capability to provide real QC engineers, even with support from big firms. It will take a long time for these collaborations to results effectively (reasons are countless!) and therefore, we’ll have to wait and be patient :D

My personal sharing: since the last 2 semesters of the degree, I knew that I’ll work as a QC, as I found something interesting in them. I don’t know how long I will walk this way. But just as I work, I have learnt many things, technically and non-technically, and I love the job more and more! I believe that some day, this profession will be considered as important as any other careers (I hate it when somebody says that, QC is just testing, doing stuff, the beginning of a software engineer!)

Ngoc HoangFebruary 7th, 2007 at 8:35 am

I share the same thought with you and Thinh. Currently, most students still think that QC is the job that is less attractive than Developer or other even in financial view and knowledge view; that QC job receives little salary than Developer( sadly, that is the fact in Vietnam software market, one instance is in my company, maximum salary for QC position is only 35% of maximum salary for Developer position), and QC job requires less knowledge to do than other job.

If there is the connection between the QC and Developer, the software process will go smoother. I highly appreciate the collaboration between the QC and Developer at the very first step of developing software product, approval of new project, new design should be done by QC engineers, and QC engineer must be the ones that are responsible for the quality of the software product.

QC engineer should also be educated to be the leading of new technology otherwise, they can not catch with the developing of new product that utilize the new technology.

However, at this point, we hardly find any institution or universities that are specialized in QC educating. Common courses include: Computer Science, Information Technology or Information Management, etc.

Last but not least, Buu, I have a question to you. Let’s date back to the time you were in high school, if there was a course in QC Engineer, would you choose that? The question can be asked at this time also. Two main dilemmas: the market and people’s attitude to the QC Engineer position should be carefully considered and solved day by day. At this time, we can not require much from the industry companies or the universities as it is a long term strategy from the whole societies: goverment, education ministry, companies, universities, institutions and even the students.

Buu NguyenFebruary 7th, 2007 at 10:55 pm

@Thinh:

However, it is not always so! Software firms always talk about the lack of professional people (QCs), but the thing is that do they really create a good environment for those QCs to perform their duties, as well as responsibilities?

I agree with you that companies need to fully appreciate the QC profession, just as that of developer or business analyst. While FCGV is among the rare companies which are trying very hard to promote the QC profession (competitive salary, good training program including pre-hire training, clear career path), I think it is still not enough and unless the job specification of the QC position is revised with more accountabilities and the technical requirements for a QC are much more demanding, then QC is still a much less attractive profession (than developer or business analyst)

On the other hand, current QCs should not completely depend on the companies to offer them a golden road. In fact, they need to act themselves. The first step is to improve their formal testing knowledge, keeping in touch with trends in the field, including but not limited to tools and techniques, applying all these into their job, and assuming more responsibilities as people whose role is to assure all quality aspects of the software.

In other words, current QCs need to be a catalyst of change, instead of passively going on whichever direction set out by the company. You are talking about testing tools? Why can you not research these tools, piloting these to your project (most software have a trial period, so cost should not be an excuse) and proving their effectiveness to your management? Why can you not research about latest trends in the field, applying them into your project, and organizing seminars to promulgate this knowledge to your colleagues and bosses? Why can you not start assuming more responsibilities today and prove to your developers fellows that you are indispensable in the course of assuring the product’s quality? I guess those are some questions that current QCs should ask themselves.

Finally, I’m glad that you had a clear vision of where you were heading at during your university years. And I’m glad that you like your profession, as a professional QC engineer. That’s what not many QCs could do. I wish you the best in your job. And, don’t forget, be a catalyst of changes.

Buu NguyenFebruary 7th, 2007 at 11:26 pm

@Hoang: thanks for your comments. I address your points below.

…most students still think that QC is the job that is less attractive than Developer… …one instance is in my company, maximum salary for QC position is only 35% of maximum salary for Developer position… …QC job requires less knowledge to do than other job…

That is (unfortunately) true. IMO, a person is paid accordingly to the business value s/he contributes to the organization. Currently, with limited responsibilities and effectiveness, it’s not a big surprise to me if a QC is generally paid much less than a developer. Do you know any Vietnamese company in which it is normal for a person to jump from a developer or analyst position to a QC position? (It would be a surprise to his/her colleagues). On the contrary, any QC moves to the developer or analyst position would be considered by others as ‘good’ QC (since many developers think that while they can do QCs’ job, QCs can NOT do their job - and as discussed in my original post, there is some truth in this thinking)

…QC engineer should also be educated to be the leading of new technology otherwise, they can not catch with the developing of new product that utilize the new technology…

You raised a good point, and I agree with you that QC needs to keep up with technologies (instead of staying away from them and think that they are the stuffs that only developers should be interested in) and the fact that universities need to offer specialized QC courses

…Common courses include: Computer Science, Information Technology or Information Management, etc.

A small point though, I believe you realize this and just overlook it: Computer Science, Information Technology etc. are the degree major names, they are not course names. In other words, QCs can still graduate with a (Bachelor of) Computer Science degree, or an (Bachelor of) Information Technology degree. What differentiates them from developers/analysts are the specific courses they choose during their degree (e.g. verification & validation techniques, test case designing, and quality metrics measurement etc.), while the foundation knowledge (programming language, operating system, compiler, communication and network etc.) is the same

Let’s date back to the time you were in high school, if there was a course in QC Engineer, would you choose that?

That’s a difficult question, Hoang :-). In fact, during my high-school I did not even know that I would, today, end up in the software industry (and in the mean time writing some posts on software development) :-).

The question can be asked at this time also.

That’s easier. My answer is: I like to be writing code more than testing software. And it had nothing to do with salary, attitude, or anything, it is just my personal taste, just as Thinh loves being a professional QC. Should I love the QC discipline, I would have chosen that career, and I would have tried to be a catalyst of changes in order to make others fully appreciate the real value of a QC.

At this time, we can not require much from the industry companies or the universities as it is a long term strategy from the whole societies: goverment, education ministry, companies, universities, institutions and even the students.

As I said to Thinh: don’t wait for schools and companies to change. They are (often) big and slow. QCs, as smart as many of them are, need to change themselves first.

Thinh PhanFebruary 7th, 2007 at 11:59 pm

Buu, I have done what you said, and it does not always result in what you expected. Excuses are not from mine, it’s from …, you know :). However, all of us know that changes take place all the time, everywhere, and I, hopefully, am looking for the right outcomes for what I did and am doing!
P.S Will you be back home for Tet? Wish you all the best!

Buu NguyenFebruary 8th, 2007 at 5:30 pm

Thinh, unfortunately, I’m not gonna be back for Tet. You said “I have done what you said… not always result” - can you share your experience? Did you pilot and propose any testing tool but was turned down by the management team? Did they turn it down because they could not see the value or because financial problem or anything else? I would be surprised if any company turns down proposals which promise good returns on investment (or discourage innovations from its employees/associates)

ThangquynhoFebruary 12th, 2007 at 8:04 am

What is QC’s responsibility? I think that everyone working in IT knows the answer. In my opinion, QC tests not only functions in Use Cases but also scenarios that QC gets from her/his long time testing. I’d like say that if testing functions of a good developer, there may be few defects when based on UCs.

For me, I prefer to use testing tools than manually. In fact that if a QC can use testing tools to test, people in IT can use them to test, too. But how effectively each person can do based on his/her experience with the tools.

In almost current VN software companies, Dev is appreciated better than QC if the same title, year of experience…Why that? There are many reasons. However, I only want to address one reason. That is QCs themself make other people not think about her/his title well, not think about her/his title improtantly in a project. In my opinion, I find that many VN QCs is inactive. They depend much on the others. They don’t have view of end users because they only are based on UCs for their tasks…

But, we should not blame for a situation that we did not study it in University or bla bla…Buu’s idea that “Universities need to revise their computer science and software engineering curricula to include specialized courses for the QC profession…” is good for future QCs. How do QCs being working as QC title come back University and study at this time. It’s difficult. Is it right?. QCs themself should renew and improve to prove their power in projects

Thinh PhanFebruary 12th, 2007 at 7:12 pm

Buu, I wish I could answer your question in a few sentences! All I can say is that there are a lot of things to do with too few people! Sadly, that’s the fact!
@Thangquynho:

That is QCs themself make other people not think about her/his title well, not think about her/his title improtantly in a project.

What do you think QCs should do to to prove it? (my opinion is that dev. doesn’t know what a QC does and thus, he doesn’t appreciate it much, only the manager knows!)

They don’t have view of end users because they only are based on UCs for their tasks

This is not true since it depends on the intended clients and your targets! You may miss some points in which the users may encounter for real but it’s obvious that you have to do these kinds of tests from user views, otherwise it’s just an unlabeled pile of code!

KCS, as you may know, is the QC in other fields (I don’t know exactly what fields, but not software). They are widely known to and accredited by many people, even some of them are not in the field. Why can’t software QC Engineers? The answers will have by time, but first “QCs themself should renew and improve to prove their power in projects” (I agree with this).

DuongAugust 10th, 2008 at 2:38 am

Hi, it’s interesting to go over this discussion. why? because i am a tester, a QC as you called us in this entry. Thanks for posting this, for now 8/2008 (your post was in 2/2007), I think QC has their own position in Vietnamese software industry. Furthermore, LTRC, a world-class testing company, has announced their project going to build a “testing park” with 30.000 m2 right inside HCMC (see link here: http://www.pkduong.net/2008/08/ltrc-ln-bo.html)

Buu NguyenAugust 10th, 2008 at 10:56 am

@Duong:
Thanks for your comment and the link. Your company seems to be a promising place which can advance the stage of software testing in Vietnam. Good luck!

Leave a comment

Your comment