T

QC、QAとテストエンジニアリングの違いについて

原文はこちら。面白かったので訳してみた。

テストの世界では、日々の業務を指すのにたくさんの用語が使われている。皆さんもQAやQC、テストエンジニアリングという用語がお互いごっちゃになって使われているのを耳にしたことがあるはずだ。開発者が相手ならそれでも話は通じるだろうが、これらの用語について、さらにはソフトウェアテスティングの世界では一体これらがどのように使われているのかを考えてみるのも有益だろう。QCの古典的な意味は品質管理(Quality Control)で、品質についてあらかじめ決められた要件をみたしているかどうかを検証するプロセスのことをいう。組み立て工場のラインでは、製造された部品を工程の最後の箇所で抜き取ったり、複数の異なる組み立てプロセスを検証したりすることも含まれるだろう。ソフトウェアでは、QCの機能にはソフトウェアを要件にもとづいて検証したり、あらかじめ決められた要件通りのものかどうか検証することが含まれる。

一方、品質保証(Quality Assurance)は、継続的で一環した改善と、QC業務を可能にするためのプロセスを維持するものという意味合いが強い。QCプロセスは製品が自分たちの考えている通りに動くのかどうかを検証するのに利用され、QAプロセスは製品が顧客の求めるものなのかどうかを確証を得るために利用される。つまり、QAプロセスはQCプロセスの視点を含んだメタプロセスであると考えてもいいだろう。QAのプロセスはユーザビリティやデザインを左右するだけでなく、その機能が正しいのみならず、便利なものであるかどうかを検証するものでもあるのだ。

ここGoogleでは、わたしたちは自分たちでテストエンジニアリングと称している第3のアプローチを採用している。わたしたちはこれをQAのメタ世界とQCの現実世界とを結ぶ橋のようなものと見なしている。わたしたちのやり方では、日々のエンジニアリングプロジェクトに必要な結果を出しつつ、自分たちが顧客のことや顧客が望むものについて考える機会を確実に得ることができる。

確かにわたしたちのチームはQAやQCの立場からソフトウェアエンジニアと一緒に仕事をしているが、それだけでなく、製品がテスト可能で、なおかつ十分にユニットテストが行われ、さらには自分たちのチームの中でもそれがちゃんと自動化されるために働いている。

わたしたちは人間は人間が得意なことに注力し、コンピュータが得意なところはコンピュータがやれるようにするために、テストの自動化を重視している。これは自分たちでは手作業のテストは実施しないという意味ではない。そうではなく、わたしたちはもっと人間にフォーカスした(例えば探査試験など)テストを「適切な」量だけ手作業で行うようにして、手作業による繰り返しテストは決してしないということだ。

ウェブアプリケーションのテスト自動化にいまものすごく興味があるのだが、どこかに面白い資料はないだろうか。

Posted by on 4月 18, 2007 in Google, Software

コメントを残す