The difference between QA, QC, and Test Engineering

Posted by Allen Hutchison, Engineering Manager and Jay Han, Software Engineer in Test

The testing world has a lot of terms for the activity that we undertake every day. You'll often hear the words QA, QC, and Test Engineering used interchangeably. While it is usually enough to get your point across with a developer, it is helpful to think about these terms and how they apply to the world of software testing. In the classic definition QC is short for Quality Control, a process of verifying predefined requirements for quality. In the terms of an assembly-line this might involve pulling manufactured units off at the end of the process and verifying different parts of the assembly process. For software the QC function may involve checking the software against a set of requirements and verifying that the software meets the predefined requirements.

Quality Assurance, on the other hand, is much more about providing the continuous and consistent improvement and maintenance of process that enables the QC job. We use the QC process to verify a product does what we think it does, and we use the QA process to give us confidence that the product will meet the needs of customers. To that end the QA process can be considered a meta process that includes aspects of the QC process. It also goes beyond that to influence usability and design, to verify that functionality is not only correct, but useful.

Here at Google, we tend to take a third approach that we call Test Engineering. We look at this as a bridge between the meta world of QA and the concrete world of QC. Our approach allows us to ensure that we get the opportunity to think about customers and their needs, while we still provide results that are needed on day to day engineering projects.

Our teams certainly work with Software Engineers in QA and QC roles, but we also work with teams to ensure that a product is testable, that it is adequately unit tested, and that it can be automated even further in our teams. We often review design documents and ask for more test hooks in a project, and we implement mock objects and servers to help developers with their unit testing and to allow our teams to test components individually.

We put an emphasis on building automated tests so that we can let people do what people are good at, and have computers do what computers are good at. That doesn't mean that we never do manual testing, but instead that we do the "right" amount of manual testing with more human-oriented focus (e.g. exploratory testing), and we try to ensure that we never do repetitive manual testing.

Permalink | Links to this post |
The comments you read here belong only to the person who posted them. We do, however, reserve the right to remove off-topic comments.

12 comments:

Jim said...

I love your description of the different roles...right now I work for a small group of a large company...I am a fiarly new employee and up until now the test process has been almost exclusively QC and manual...I am starting to work with developers to implement some automated tests to free test personnel to do more exploratory testing...it's quite the adventure!

Andy said...

Test Engineering method is nothing but W-Model (Not waterfall). In W-Model verification and validation process go hand in hand. Reviews play a major role and helps in getting the concrete, strong and stable requirements, whcih will be base for strong future development process. Everyone knows the impact of fixing any defect at the later stage of the project life cycle and also the benefit of identifying the issues at the beginning of the project life cycle. Give more importance to Review and Analysis process, this will help in building strong Base. If the base is strong, anything can be built on that.
I also tell my team members to spend qaulity time doing analysis of the work they do. Do not spend the entire day in just doing testing. Spending everyday sometime on Analysis will help them to move in the right direction in the work and also helps them to see in a bigger and broader perspective of the work.
Finally, just spend good amount of time in planning, reviews and analysis, the execution will be done like in no time.
Lest build and grow the Quality and Testing community stronger across the world.

glogger said...

Thanks for the clarification about QA, QC, and Test Engineering.

Any suggestion for regression testing? That might be the reason to do most of repetitive testing.

dx-blogger said...

hmm..great info for me, anyway..:)

vishwas said...

Your blog provides sufficient information on QA and QC but testing, I suppose, hasn't been given enough emphasis. It would be appreciable if you post more on Testing and the process you follow for the same.

Paul said...

Hi Allan, Jay,

Your defintion of QA is a little off, ok, way off base. It is NOT tied to testing or QC and is NOT applied to the product. It is assurance of the quality of a process, which may produce a lousy product if the process is weak. See this article to help clear things up: http://spistuff.blogspot.com/2007/09/qa-vs-qc.html

tintinmilou said...

Thanks for the this clear and succinct definition. I was recently hired as a "QC manager," a role I haven't held before, and was adrift in conflicting expectations. The actual role I hold is more QA than QC, although I suspect I will do both, along with a little testing. There is another with the title of QA lead, but his actual role is more QC. So we have a lot of alignment and setting of expectations to do. This will help.

sm said...

網頁設計,情趣用品店,情趣用品專賣網

A片,色情A片,免費A片,成人影片,色情影片,a片免費看,情色貼圖,情色文學,情色小說,色情小說
AV,AV女優

辣妹視訊,美女視訊,視訊交友網,視訊聊天室,視訊交友,視訊美女,免費視訊,免費視訊聊天,視訊交友90739,免費視訊聊天室,成人聊天室,視訊聊天,視訊交友aooyy
哈啦聊天室,辣妺視訊,A片,色情A片,視訊,080視訊聊天室,視訊美女34c,視訊情人高雄網,視訊交友高雄網,0204貼圖區,sex520免費影片,情色貼圖,視訊ukiss

Practioner of Epistemology said...

The actual definitions of QA and QC can better be explained in context of the place they work. As matter of fact Testing is done at in-house or by a third party testing team. Tester at in-house do more of QC rather than QA as they do have a set of requirements and they validate the software against requirements. When coming to third party testers, they are involved in lot of process improvements which will actually help the clients to deliver best software.

kiss said...

Weekends to peopleig2tmean that they can have a two-day wowgold4europe good rest. For example, people gameusdcan go out to enjoy themselves or get meinwowgoldtogether with relatives and friends to talk with each storeingameother or watch interesting video tapes with the speebiewhole family.
Everyone spends agamegoldweekends in his ownmmoflyway. Within two days,some people can relax themselves by listening to music, reading novels,or watchingogeworld films. Others perhaps are more active by playing basketball,wimming ormmorpgvipdancing. Different people have different gamesavorrelaxations.
I often spend weekends withoggsalemy family or my friends. Sometimes my parents take me on a visit to their old friends. Sometimesgamersell I go to the library to study or borrow some books tommovirtexgain much knowledge. I also go to see various exhibition to broadenrpg tradermy vision. An excursion to seashore or mountain resorts is my favorite way of spending weekends. Weekends are always enjoyable for me.

ann said...

福~
「朵
語‧,最一件事,就。好,你西...............................................................................................................................-...相互
,以讓>它使...................

★〃花蓮租車〃★ said...

花蓮租車,花蓮旅遊,花蓮租車,花蓮租車公司,花蓮租車,花蓮一日遊,花蓮租車,花蓮租車,花蓮租車,花蓮旅遊,花蓮旅遊,花蓮旅遊,花蓮租車,花蓮租車,租車,賞鯨,花蓮旅遊,花蓮泛舟,花蓮賞鯨,泛舟,溯溪,花蓮租車,花東旅遊,花蓮租車,花東旅遊,花蓮租車,租車,花蓮旅遊,花蓮租車,花蓮旅遊租車,花蓮租車,花蓮旅遊,租車,花蓮租車,花蓮租車,花蓮租車,花蓮租車,花蓮租車,花蓮租車,花蓮租車,花蓮租車,花東旅遊,花蓮旅遊,花蓮租車,花蓮租車,花蓮租車旅遊,花蓮旅遊租車,租車,花蓮旅遊推薦,花蓮旅遊包車,花蓮租車,花蓮,花蓮租車,花蓮地圖,花蓮旅遊,花蓮旅遊,花蓮旅遊景點,賞鯨,花蓮旅遊行程,花蓮旅遊,花東旅遊景點,花東旅遊行程,花蓮租車