あなたは新しくスマートフォンを買ったとき、「ちゃんと動くかな」って確認してから使うよね。実は、その製品が店に並ぶまでの間に、たくさんの人が何度も何度も「本当に大丈夫?」って確認している仕事があるんだ。それが「品質保証」という仕事。この記事を読めば、毎日使っている製品やサービスが、なぜこんなに安心して使えるのかがわかるよ。
- 品質保証はテストだけじゃなくて、設計から完成まで全段階を通じて「ユーザーが安心して使える」ようにする活動
- 製品やサービスが約束通りに動くかを、何度も何度も確認する仕事
- 品質を保証することで、ユーザーは安心して製品やサービスを使える
もうちょっと詳しく
品質保証というのは、会社がユーザーに対して「この製品は安心して使えます」と約束するようなものなんだ。だから、品質保証の部門の人たちは、その約束を守れるようにいろいろな活動をしているんだよ。まず、製品を作る前の段階で「どのくらいの品質が必要か」「ユーザーはどんなことを期待しているか」を考える。次に、実際に作られている途中で「この作り方で大丈夫か」「問題が起きないか」を何度も確認する。そして、完成した後に「本当にユーザーの期待を満たしているか」を徹底的にテストする。こういった全体を通じた活動が品質保証というわけだね。
品質保証は「防ぐ」という考え方。問題が起きてから対応するのではなく、問題が起きないようにあらかじめ対策する。
⚠️ よくある勘違い
→ テストは品質保証の一部に過ぎません。品質保証はテストの前後の段階もすべて含まれています。
→ テストだけでなく、設計時の検討、作成中の確認、完成後の検証をすべて含めた活動です。
[toc]
品質保証って、誰がやってる仕事なの?
品質保証というのは、ひとつの会社の中で、いろいろな部門の人が関わっている活動なんだ。例えば、ゲーム会社でゲームを作るなら、企画をする人、プログラミングをする人、デザインをする人、それぞれが品質のことを考えながら仕事をしているんだよ。でも、特に品質保証の専門部門という部門がある大きな会社もある。その部門の人たちは、他の部門が作ったものが本当に大丈夫か、という目線でチェックする仕事をしているんだ。
例えるなら、学校の文化祭を思い浮かべてみてね。各クラスが出店を企画して、準備して、当日に営業する。このとき、文化祭全体を成功させるために、先生や実行委員会の人たちが「ちゃんと準備できてるか」「当日のスケジュール大丈夫か」「来校者に危ないことはないか」って何度も確認するでしょ。それと同じようなことが、製品作りの中で起きているんだ。
大事なのは、品質保証は「誰かがやる仕事」というより「みんなで取り組む考え方」ってことなんだよ。プログラマーが「バグが起きないように作ろう」って気をつけながらコードを書く。デザイナーが「使いやすいかな」って考えながらボタンの位置を決める。営業の人が「ユーザーはこんなことに困ってるらしい」って企画部門に教える。こういうふうに、全員が品質のことを考えながら働くことが、品質保証の本当の意味なんだね。
品質保証は、いつから始まるの?
品質保証は、製品を作ることが決まったその瞬間から始まるんだ。だから、実際にプログラミングが始まる前の段階が、めちゃめちゃ大切なんだよ。
例えば、新しいスマートフォンを作るなら、まず最初に「どんなスマートフォンを作りたいのか」という目標が決まるでしょ。その目標が決まった瞬間から「このスマートフォンで困ることはないか」「使いやすいか」「性能は大丈夫か」ってことを考え始めるんだ。次に、「じゃあこういう機能をつけよう」「このくらいのサイズにしよう」って企画を立てる。このとき、「こういう企画だと、ここらへんでバグが起きやすいかな」とか「ユーザーが使うときに困ることはないか」って予測して企画に反映させるんだよ。
それから、プログラマーやデザイナーが「こうやって作ろう」という設計書を作るんだけど、このときも品質保証の視点で「この設計で大丈夫か」「ユーザーが期待していることを満たしているか」をチェックするんだ。実際に作り始めたら、進捗に合わせて何度も「ちゃんと設計通りに作ってるか」「問題が起きていないか」をチェックする。そして完成したら、テストして「ユーザーが使うときに困ることがないか」を確認するんだよ。だから、品質保証というのは「製品を作ってから品質をチェック」ではなく「最初から最後まで品質のことを考えながら進める」ってわけなんだ。
つまり、品質を保証するというのは、製品が完成する前に、すでに始まっているんだね。家を建てるなら、土地を選ぶときから「地盤は大丈夫か」「将来、問題が起きないか」って考えるでしょ。それと同じように、製品作りでも、最初の段階から「ユーザーが安心して使える製品になるか」ってことを考えながら進めるんだよ。
どんなやり方で品質を確認してるの?
品質を確認するやり方は、めちゃめちゃいろいろあるんだ。テストするだけじゃなくて、本当にいろいろな方法があるんだよ。
まず、「レビュー」というやり方がある。これは、つまり「誰かが作ったものを、別の人がチェックする」ってことなんだ。例えば、プログラマーがコードを書いたら、別のプログラマーが「このコード、バグが起きないか」「読みやすいか」って確認するんだよ。実は、こういう「人間の目でチェックする」ってやり方が、バグを見つけるのに結構効果的なんだ。なぜなら、プログラマーは「自分が書いたコードだから大丈夫」って思い込むことがあるんだけど、別の人が見ると「あ、ここ危ないな」って気づくことがあるからなんだよ。
次に、「テスト」がある。テストには、いろいろな種類があるんだ。単純なテストもあれば、複雑なテストもある。例えば、ゲームアプリなら「このボタンを押したとき、ちゃんと次の画面に進むか」っていう基本的なテストから、「100人が同時にアクセスしたとき、ちゃんと動くか」っていう複雑なテストまであるんだよ。それから、「実際に遊んでみて、面白いか」「使いやすいか」っていう人間的な視点でのテストもあるんだ。
それから「データ分析」っていうやり方もあるんだ。製品をリリースした後に、ユーザーがどんなふうに使ってるか、どこで困ってるか、どこでやめちゃってるか…そういうデータを集めて分析するんだよ。そうすると「あ、ユーザーはこの機能が使いやすくないんだ」とか「ここでバグが起きてるっぽい」っていうことが見つかるんだ。そしたら「次のバージョンではここを改善しよう」ってなるわけなんだね。
それから「標準化」っていう方法もある。これは、つまり「こういう基準で作ってね」「こういうやり方でテストしてね」っていうルールを決めるってことなんだ。そうすると、みんなが同じ基準で品質を確認できるから、ばらつきが少なくなるんだよ。例えば、食べ物の工場では「食べ物の温度はこのくらいで管理しましょう」「この工程では絶対に人手を加えましょう」みたいなルールを決めるでしょ。そうすることで、どの店で買った食べ物でも、安全で美味しいってわけなんだ。
品質保証がないと、どんなことになっちゃうの?
品質保証がないと、本当に大変なことになっちゃうんだよ。想像してみてね。
もし、アプリにバグがいっぱいあったらどうなる?ゲームアプリなら、突然フリーズして、ゲームが進められなくなっちゃう。銀行のアプリなら、あなたの預金がちゃんと記録されなくなっちゃうかもしれない。そしたら「このアプリ、信用できない」って思って、誰も使わなくなっちゃうわけなんだ。
医薬品だったらどうか?品質保証がなくて、効き目がない薬とか、逆に体に悪い薬が市場に出ちゃったら、人命に関わることになっちゃうんだよ。だから、医薬品の品質保証は、本当に厳しいんだ。
自動車だったらどうか?ブレーキが効かない車が道路を走ってたら、事故になっちゃう。だから、自動車メーカーは、何十万台も作るときに、ものすごくたくさんのテストをするんだ。
つまり、品質保証があるから、ユーザーは「これなら安心」って思えるんだよ。品質保証がなかったら、毎回「このアプリ、バグがあるかな」「この食べ物、腐ってないかな」「この乗り物、ちゃんと動くかな」って心配しながら使わなきゃいけなくなっちゃうんだ。そんなの、すごくストレスでしょ。だから、品質保証って、ユーザーが安心するための、すごく大事な活動なんだよ。
あと、会社側の視点でも、品質保証は大事なんだ。もし、品質が低い製品を出しちゃったら、ユーザーは「この会社の製品は信用できない」って思って、次から買わなくなっちゃう。そしたら、会社の評判が落ちちゃうし、売上も減っちゃうわけなんだよ。だから、品質保証に投資することは、会社の信用を守ることになるんだ。
これからの品質保証は、どんなふうに変わっていくのかな?
品質保証の方法も、技術が進むにつれて、どんどん変わってきてるんだ。これからはどんなふうに変わっていくんでしょうね。
まず、自動テストが増えてくるんだと思うよ。今までは、テストする人間が「ここをテストしよう」「あそこをテストしよう」って手動でテストしてたんだけど、これからは、コンピュータが自動でテストをやるようになってくるんだ。そしたら、テストの質が安定するし、スピードも上がるんだよ。
次に、人工知能(AI)が品質保証に使われるようになってくるんだと思う。人工知能は、膨大なデータから「この部分でバグが起きやすいパターン」を見つけたり、「ユーザーはこういう使い方をして困るかもしれない」ってことを予測したりできるんだ。そしたら、テストする人間は「人工知能が予測した危ないところ」に集中してテストできるから、もっと効率的に品質を保証できるようになるんだよ。
それから、「継続的な品質保証」っていう考え方が広がってきてるんだ。これは、つまり「製品をリリースしたら終わり」じゃなくて「リリース後も、常にユーザーの反応を見て、品質を改善していく」ってことなんだ。スマートフォンのアプリとかで「アップデート」があるでしょ。あれは、バグを直したり、新しい機能を足したり、ユーザーが困ってることを改善したりするためなんだ。これからは、こういう「出した後も品質を保証し続ける」っていう考え方が、もっともっと重要になってくるんだと思うよ。
最後に、「セキュリティ」と品質保証が、もっともっと密接に関わるようになるんだと思う。今のデジタル社会では、アプリやウェブサービスに「セキュリティの穴」があると、大変なことになっちゃう。だから、これからは「品質を保証する」っていうのは「ちゃんと動くかどうか」だけじゃなくて「セキュリティは大丈夫か」「ユーザーの情報が漏れないか」ってことも含めて考えるようになるんだよ。
