本文へ移動

ホーム / QA / 第5部 品質の仕組み

第5部 品質の仕組み・第13章

品質の指標と本番の品質

★★☆ 重要8トピック・面接 5問

品質を測り、本番まで含めて品質を守る仕組みを押さえる。

別のページで開く →

障害対応の演習を読み込んでいます…

13.1品質の指標

用語★★☆ 重要
ひとことで

見つけた不具合の数より、本番に流出した不具合と、その原因の傾向を見る。

品質の指標は、「良くなっているか・悪くなっているか」をチームで話すための材料です。人を評価するための数字にすると、数字を良く見せる行動(不具合を報告しない・軽いバグを大量に起票する)が起きるので注意します。

指標の例

指標分かること注意
本番で見つかった不具合の数・重大度リリース前に防げなかったもの(流出)件数だけでなく重大度と原因で分ける
不具合の流出率リリース前とリリース後で見つかった割合数え方(どこからが本番か)をそろえる
不具合が入った工程・見つかった工程どこで防げたか(仕様・実装・テスト)分類の仕方をチームで決めておく
自動テストの成功率・flaky の数・実行時間テストの信頼度と速さ再実行で通ったものも数える
変更失敗率・復旧までの時間リリースの安全さ(DORA の指標の一部。すぐ切り戻しや修正が要ったデプロイの割合と、その復旧時間)SRE と同じ定義で見る
カバレッジ(コードの網羅率)テストが通っていないコード高くても確かめる内容が弱いことがある。目標にしすぎない

面接ではこう答える

品質の指標は、品質が良くなっているかをチームで話すための材料です。見つけた不具合の数より、本番に流出した不具合の数と重大度、その原因の傾向を重視します。ほかに、自動テストの成功率や flaky の数、変更失敗率なども見ます。人の評価に使うと数字を良く見せる行動が起きるので、チームの改善の材料として、数か月の推移で見ます。

ひとことで

ソフトウェアを届ける力を、デプロイの頻度・変更のリードタイム・変更失敗率・復旧時間の4つで測る指標。

DORA の指標は、ソフトウェアを届ける力を測る4つの指標で、Google の DORA という研究チームの調査から広まりました。速さと安定の両方を見るのが特徴です。

速さデプロイの頻度変更のリードタイム(コミットから本番まで)安定変更失敗率失敗したデプロイからの復旧時間
DORA の4つの指標(速さと安定)
指標意味QA との関わり
デプロイの頻度どれくらいよく本番に出しているか小さく頻繁に出すと、1回のテストの範囲が小さくなる
変更のリードタイムコミットから本番に出るまでの時間手動のテストの待ちが長いと延びる
変更失敗率デプロイのうち、切り戻しや緊急の修正が要った割合テストで防げなかった流出の目安
失敗したデプロイからの復旧時間失敗から元に戻るまでの時間スモークテスト・監視で早く気づけるか

調査では、速さと安定は両立できる(よくできているチームは両方が良い)と報告されています。「テストを厚くして遅くする」だけが品質ではなく、自動化で速さを保ったまま失敗を減らすのが目標です。

面接ではこう答える

DORA の指標は、ソフトウェアを届ける力を測る4つの指標です。速さとしてデプロイの頻度と変更のリードタイム、安定として変更失敗率と失敗したデプロイからの復旧時間を見ます。調査では速さと安定は両立できるとされていて、QA としては、テストで遅くするのではなく、自動化で速さを保ちながら変更失敗率を下げることを目指します。

ひとことで

流出した不具合を1件ずつ「なぜリリース前に見つからなかったか」で分類し、多い原因に次の施策を打つ振り返り。

本番に流出した不具合は、責める材料ではなく、テストと仕組みを良くする一番の手がかりです。1件ずつ「なぜリリース前に見つからなかったか」を分類し、多い原因に手を打ちます。

流出した不具合から、仕組みの改善を1つずつ流出した不具合本番で見つかったもの原因で分類ケース抜け・環境・仕様施策を1つ決める例:境界値を自動化推移を見る数か月単位でスプリントやリリースごとに回す(人を責めず、どこで防げたかを話す)
品質の指標を振り返りに使うサイクル
  • スプリントやリリースごとに、流出した不具合を1件ずつ「なぜリリース前に見つからなかったか」で分類する(ケースの抜け・環境の差・仕様のあいまいさ・自動テストがなかった)。
  • 一番多い原因に対して、次の施策を1つ決める(例:仕様レビューに QA が入る、境界値のケースを自動化する)。
  • 数か月の推移で見る。1回の増減で判断しない。
見つからなかった理由次の施策の例
テストケースの抜け境界値・状態遷移の観点をチェックリストに足す
環境の差検証環境のデータ量・設定を本番に近づける、本番での確認項目を足す
仕様のあいまいさ仕様レビューに QA が入る、受け入れ条件を例で書く
自動テストがなかったその流れの回帰テストを自動化する

面接ではこう答える

流出した不具合の振り返りでは、本番で見つかった不具合を1件ずつ、なぜリリース前に見つからなかったかで分類します。テストケースの抜け、環境の差、仕様のあいまいさ、自動テストがなかった、などです。一番多い原因に対して次の施策を1つ決め、数か月の推移で効果を見ます。人を責めるのではなく、仕組みを良くするために行うのが前提です。

不具合の報告は、読んだ人がすぐ再現できて、どれくらい困るかが分かることが目標です。開発者が質問しに戻ってこなくて済む報告は、修正を大きく速くします。

【カート】クーポン適用後に数量を変えると、割引が消える(Chrome・iPhone)環境検証環境 v2.3.1/iPhone 15・iOS 18・Safari手順1. 商品をカートへ 2. SAVE10 を適用 3. 数量を 2 に変更期待割引 10% が残り、小計 5,400 円実際割引が消え、小計 6,000 円(毎回再現)証拠画面の録画・API のレスポンス・cURL
良い不具合報告の例
項目こつ
タイトル「どこで・何をすると・どうなる」を1行で。「動かない」だけにしない
環境アプリの版・環境・端末・OS・ブラウザ・アカウントの種類
再現の手順番号付きで最小の手順に。前提のデータも書く
期待と実際期待の根拠(仕様書のどこか)も添える
再現の頻度毎回か、10 回に 1 回か
証拠スクリーンショット・録画・コンソールのエラー・API のレスポンス・時刻(ログを探すため)
影響誰が・どれくらい困るか。回避策はあるか

原因の推測を書くのは良いですが、事実と分けて「推測:」と書きます。1つの報告には1つの不具合だけを書きます。

ひとことで

重大度は不具合の影響の大きさ、優先度は直す順番。重大度が高くても優先度が低いことがある。

重大度は不具合が起きたときの影響の大きさ、優先度はどの順で直すかです。似ていますが別のもので、重大度は主に QA が事実から付け、優先度は PdM や開発者と一緒に決めます。

重大度が高い重大度が低い
優先度が高い決済ができないトップページの会社名の誤字(目立つ)
優先度が低いほぼ使われない古い管理画面が落ちる設定画面の奥の余白のずれ
新規対応中修正済み確認テスト完了直っていなければ差し戻し(再オープン)途中で「仕様どおり」「再現しない」「対応しない(理由つき)」で閉じることもある
不具合のライフサイクル(例)

修正されたら、QA が確認テストをしてから閉じます。「仕様どおり」「対応しない」で閉じるときは理由を残しておくと、同じ報告が繰り返されたときに役立ちます。

面接ではこう答える

重大度は、不具合が起きたときの影響の大きさで、データが壊れる、お金にかかわる、多くの人が使えない、などで決まります。優先度は、どの順で直すかで、影響に加えて、目立つかどうか、リリースの予定、直す手間で決まります。たとえばトップページの社名の誤字は、重大度は低くても優先度は高くなります。重大度は QA が事実から付け、優先度は PdM や開発者と一緒に決めます。

13.6リリース後の確認

用語★★☆ 重要
ひとことで

リリース直後にスモークテスト・監視の画面・エラーの収集・問い合わせを確かめ、テストで見つからない問題に早く気づく。

どれだけテストしても、本番でしか起きない問題はあります(実際のデータ量、利用者の環境、外部サービス)。リリース後の確認と、問題をすぐ見つけて止める仕組みも品質の一部です。

リリース後の確認項目

公開する利用者の割合(段階的なリリースの例)5%25%100%デプロイ数分後スモークテスト数時間監視をリリース前と比べる数日問い合わせ・エラーの収集どの段階でも、問題があれば機能フラグや切り戻しで止める
リリース後の確認の時間軸と、段階的なリリース(例)
確認すること見るものポイント
スモークテスト主要な機能(ログイン・検索・購入など)が動くかリリース直後に短時間で。自動化しておくと毎回同じ品質で確認できる
監視の画面エラー率・応答時間・主要な操作の成功数(注文数など)リリース前の同じ時間帯と比べる
エラーの収集フロントエンドやアプリのエラー、クラッシュの件数(Sentry などのツール)新しく出始めたエラーに注目する
問い合わせサポートに今回の変更に関係するものが来ていないかサポートの担当者に変更点を事前に伝えておく
機能フラグ・段階的なリリース一部の利用者から公開した結果問題があればすぐ戻せるようにしておく

面接ではこう答える

どれだけテストしても、本番の実際のデータ量や利用者の環境でしか起きない問題はあります。そのためリリースの直後に、主要な機能のスモークテスト、エラー率や注文数などの監視の画面、Sentry などのエラーの収集、サポートへの問い合わせを確かめます。リリース前の同じ時間帯と比べ、新しく出始めたエラーに注目し、問題があればすぐ戻せるようにしておきます。

ひとことで

機能フラグは設定で機能のオン・オフを切り替える仕組み。一部の利用者から段階的に公開し、問題があればすぐ戻せる。

テストで見つからない問題の影響を小さくするには、いきなり全員に出さないことが効きます。

新しい機能デプロイ済み機能フラグ設定で切り替えオン:社内・1% の利用者段階的に 10% → 50% → 全員問題があればオフ(すぐ戻る)
機能フラグによる段階的な公開
やり方仕組みQA が確かめること
機能フラグコードはデプロイしておき、設定で機能のオン・オフを切り替えるオンとオフの両方で動くか。オフに戻しても壊れないか
カナリアリリース新しい版を一部のサーバー・利用者にだけ出して、様子を見て広げる新旧の版が同時に動いても、データや API が食い違わないか
社内で先に使う社員だけに公開して使ってもらう不具合の報告の窓口と、集める期間

機能フラグは便利ですが、増えすぎると組み合わせのテストが大変になります。全員に公開し終えたフラグは消すよう、チームで決めておきます。

面接ではこう答える

機能フラグは、コードはデプロイしておき、設定で機能のオンとオフを切り替える仕組みです。社内や一部の利用者から段階的に公開して、問題があればオフにすればすぐ戻せるので、テストで見つからない問題の影響を小さくできます。QA は、オンとオフの両方で動くか、オフに戻しても壊れないかを確かめ、使い終えたフラグを消すことも提案します。

ひとことで

SRE は本番の安定を担う役割。QA は壊れると困る操作の知識で、監視の対象(SLI・SLO)、負荷テスト、ポストモーテムに貢献する。

SRE は本番の安定を担う役割です。QA は「どの機能が壊れると困るか」をよく知っているので、SRE と一緒に何を監視するか(SLI・SLO)を決めたり、負荷テストを計画したりします。障害が起きたら、再現手順の確認や影響範囲の調査を手伝い、ポストモーテム(振り返り)では「テストでどう防げたか」を出して、テストケースや自動テストに反映します。

SLI / SLO / SLA(SRE)

ポストモーテムの構成(SRE)

場面QA が出せるもの
何を監視するか決める「壊れると一番困る利用者の操作」の一覧(注文の確定・ログインなど)
負荷テストシナリオ(操作の割合)、テストのデータ、合否の基準
障害の対応中再現の手順の確認、影響の範囲の調査(どの機能・どの利用者)
ポストモーテム「テストでどう防げたか」と、足すテストケース・自動テスト

面接ではこう答える

SRE は本番の安定を担う役割で、QA とは品質を本番まで含めて守るという目的が同じです。QA はどの機能が壊れると困るかをよく知っているので、SRE と一緒に何を監視するか、つまり SLI と SLO を決めたり、負荷テストを計画したりします。障害のあとはポストモーテムで「テストでどう防げたか」を出し、テストケースや自動テストに反映します。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 流出した不具合と、その原因の傾向を見る
  • 再現できる不具合報告と、重大度・優先度の使い分け
  • リリース後の確認・機能フラグ・SRE との協力で本番の品質を守る
  • 品質の指標:見つけた不具合の数より、本番に流出した不具合と、その原因の傾向を見る。
  • DORA の指標(速さと安定):ソフトウェアを届ける力を、デプロイの頻度・変更のリードタイム・変更失敗率・復旧時間の4つで測る指標。
  • 流出した不具合の振り返り:流出した不具合を1件ずつ「なぜリリース前に見つからなかったか」で分類し、多い原因に次の施策を打つ振り返り。
  • 重大度と優先度・不具合のライフサイクル:重大度は不具合の影響の大きさ、優先度は直す順番。重大度が高くても優先度が低いことがある。
  • リリース後の確認:リリース直後にスモークテスト・監視の画面・エラーの収集・問い合わせを確かめ、テストで見つからない問題に早く気づく。
  • 段階的なリリースと機能フラグ:機能フラグは設定で機能のオン・オフを切り替える仕組み。一部の利用者から段階的に公開し、問題があればすぐ戻せる。
  • SRE との協力(SLO・ポストモーテム):SRE は本番の安定を担う役割。QA は壊れると困る操作の知識で、監視の対象(SLI・SLO)、負荷テスト、ポストモーテムに貢献する。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1本番で不具合が見つかったとき、QA として何をしますか?

模範回答

まず影響の確認です。どの機能で、どれだけの利用者に、いつから起きているかを調べ、重大なら切り戻しや機能フラグで止める判断の材料を、開発者や SRE にすぐ渡します。次に再現です。検証環境で再現手順を確定させ、再現しない場合は本番との違い(データ・設定・端末)を調べます。

直ったら修正を確かめ、関係しそうな周りの機能も回帰テストします。そのうえで原因の分析として、「なぜリリース前に見つからなかったか」を考えます。テストケースの抜けか、環境やデータの違いか、仕様のあいまいさかを分けます。

最後に再発防止として、抜けていたケースを自動テストに足す、テストデータを本番に近づける、監視を足すなど、仕組みで防げる対策を決め、振り返りでチームに共有します。誰のミスかではなく、どこで防げたかを話すようにしています。

深掘りされたら

  • 「テストで見つけられなかった QA の責任だ」と言われたらどう答えますか?

見られているポイント影響の確認・再現・原因の分析・再発防止

Q2品質の指標として、何を見ますか?

模範回答

「リリース前に防げなかったもの」と「テストの仕組みの健康さ」の両方を見ます。前者は、本番で見つかった不具合の数と重大度、その原因(どの工程で入り、なぜ見つからなかったか)です。後者は、自動テストの成功率、flaky なテストの数、実行時間です。リリースの安全さとして、DORA の変更失敗率(すぐ切り戻しや修正が要ったデプロイの割合)と復旧までの時間を SRE と一緒に見ることもあります。

注意点は、指標を人の評価に使わないことです。使うと、不具合を報告しない、軽い不具合を大量に起票する、といった数字を良く見せる行動が起きます。また、コードのカバレッジは「通っていないコード」を見つけるのには役立ちますが、高くても確かめる内容が弱いことがあるので、目標にしすぎないようにします。

深掘りされたら

  • 指標が悪化したとき、チームにどう伝えますか?

見られているポイント流出と仕組みの両面の指標と、指標の副作用への理解

Q3リリースの直後に、QA として何を確認しますか?

模範回答

まずスモークテストで、ログイン・検索・購入などの主要な機能が本番で動くかを短時間で確かめます。毎回同じ品質で確認できるよう、自動化しておくのが理想です。次に監視の画面で、エラー率・応答時間・注文数のような主要な操作の成功数が、リリース前の同じ時間帯と比べて変わっていないかを見ます。

その後の数時間〜数日は、フロントエンドやアプリのエラーの収集ツールで新しく出始めたエラーがないか、サポートへの問い合わせに今回の変更に関係するものがないかを確かめます。段階的なリリースや機能フラグを使っていれば、一部の利用者で問題がないことを確かめてから広げ、問題があればすぐ止められるようにしておきます。

深掘りされたら

  • 本番では作ってはいけないデータ(注文など)が要るテストは、どうしますか?

見られているポイントスモーク・監視・エラー収集・問い合わせ・段階的リリースの流れ

Q4SRE とは、どう協力しますか?

模範回答

QA は「どの機能が壊れると利用者が困るか」をよく知っていて、SRE は「本番の安定をどう測って守るか」を知っています。この2つを合わせるのが協力の中心です。例えば、主要な流れ(ログイン・購入)の成功率を SLI として監視に入れ、目標(SLO)を一緒に決めます。

ほかに、負荷テストの計画と結果の読み方、段階的なリリースのときに何を見て進めるか止めるかの基準、障害が起きたときの再現と影響範囲の調査で協力します。ポストモーテム(振り返り)では、QA から「テストでどう防げたか」を出し、テストケースや自動テストに反映して、同じ不具合が二度と本番に出ないようにします。

深掘りされたら

  • リリース後のスモークテストを、監視(合成監視)と一緒にするとしたら、どう作りますか?

見られているポイントQA と SRE の知識の補い合いと、具体的な協力の場面

Q5重大度と優先度の違いを、例を使って説明してください。

模範回答

重大度は、不具合が起きたときの影響の大きさで、優先度は、どの順で直すかです。多くの場合は一致しますが、ずれることもあります。

たとえば、トップページの社名の誤字は機能への影響はなく重大度は低いですが、誰もが目にするので優先度は高くなります。逆に、ほとんど使われていない古い管理画面が落ちるのは重大度は高くても、利用者がいなければ優先度は低くなりえます。重大度は QA が事実から付け、優先度はリリースの予定や直す手間も含めて PdM や開発者と一緒に決めます。

深掘りされたら

  • 重大度の付け方で、開発者と意見が分かれたら?

見られているポイント2つの軸の区別と、決める人の違い