このユニットの結論
性能の確認では、「速いかどうか」を測る前に、「どの条件で、何を、何秒以内にすべきか」を決めておく必要があります。
条件をそろえずに測った結果は、目標を満たしたかどうかの判断に使えません。
1. 何の話か
このユニットは、性能テストの話です。
性能とは、一般的に、
- 応答時間:画面や処理の結果が返ってくるまでの時間
- 処理量:決まった時間に処理できる件数
- 同時利用:一度に何人が使っても耐えられるか
のことを言います。
2. なぜ必要か
開発中の環境では、データが少なく、使う人も少ないため、たいていの画面は速く動きます。
ところが本番では、
- 何年分ものデータが入っている
- 年度の初めなど、利用が集中する時期がある
- 他のシステムとの連携が同時に動いている
といった条件が重なります。開発中の速さは、本番の速さを保証しません。
3. このユニットで分かること
- 性能テストで決めておく条件
- 性能の問題が見つかったとき、何を確かめるか
- 性能の確認で、AIに任せてよいことと人間が決めること
4. 性能テストで決めておく条件
| 条件 | 例(一般的な説明) |
|---|---|
| 対象 | どの画面・処理・連携か |
| 目標 | 何秒以内、1時間に何件、など |
| データ量 | 本番と同じくらいのデータ量か |
| 利用の状況 | 普段の利用か、利用が集中するときか |
| 同時に動くもの | 夜間処理や連携が同時に動いているか |
| 測り方 | 何回測り、どの値(平均・最大など)で判断するか |
目標は、非機能要件として決めたものを使います(06-01 非機能要件とは何か)。目標と条件がそろって、初めて合否が決まります。
CASE FACTFROZEN正本に記載されたアステリア案件の事実
アステリア案件に関係する記載
- 約120人規模のプロジェクト、10年分のデータ移行
- システムに SYS-11 監視・ログ基盤がある
- 成果物に TST-005 性能試験結果報告書、REQ-003 非機能要件一覧がある
- 危機演習に CR06 性能目標2秒に対して32秒がある
アステリア案件の性能テストの計画・条件・結果は、正本に記載がありません。未確定 危機演習 CR06 の数値や原因は、このユニットでは扱いません。
5. THINK — 開発環境では速かった
ある一覧画面は、開発環境では1秒もかからずに表示されました。
問題
この結果で、「性能の目標を満たした」と報告してよいでしょうか。
判断例を開く
判断
報告できません。
確認すること:
- 開発環境のデータ量は、本番と比べてどうか
- 利用が集中するときの条件で測ったか
- 同時に動く処理や連携を、再現したか
- 目標は、どの条件で満たすことになっているか
条件が違う測定は、別の数字です。
6. 性能の問題が見つかったとき
性能の問題が見つかったら、一般的には、
- どこで時間がかかっているか(推測ではなく、測定で確かめる)
- 測った条件(データの量・利用の状況・環境)が、本番と合っているか
- 直したあとに、同じ条件で測り直したか
原因を決めつけて直す前に、測定の結果で確かめます。
7. よくある失敗
- 目標と条件を決めずに、とりあえず測る
- 少ないデータで測った結果を、本番の見込みとして使う
- 性能テストを最後に回し、見つかったときに直す時間がない
- 遅い処理を直しただけで、条件の見直しをしない
8. 成果物との接続
- TST-005 性能試験結果報告書:性能テストの条件と結果を残す
- REQ-003 非機能要件一覧:性能の目標と条件の出どころ
- OPS-002 監視・アラート一覧:本番で性能を見張る
危機演習 CR06 性能目標2秒に対して32秒 では、性能の問題が見つかった場面を体験します(学習上の接続です。正式な対応関係ではありません)。
9. AI WORKFLOW — 測定の記録を整理させる
AIは、性能テストの記録やログから、時間のかかっている箇所の候補を整理するのに役立ちます。
指示例:
「次の性能テストの記録を、条件(データ量・同時利用・同時に動いた処理)ごとに整理し、目標を満たしていない測定を挙げてください。原因は断定せず、追加で測るべき箇所の候補として示してください。」
10. REVIEW — AIの整理を確認する
- 条件の違う測定を、同じものとして比べていないか
- AIが原因を断定していないか
- 目標の値を、AIが一般的な値で置き換えていないか
ADVANCED深掘り — 実務者向けに一段深く
深掘り — パーセンタイルと、負荷の型
平均では隠れる
100 回のうち 99 回が速く、1 回だけ極端に遅いとき、平均は小さく見えます。しかし遅い 1 回に当たった利用者には、平均は関係ありません。そこで、速い順に並べて 95 番目の値(p95)や 99 番目の値(p99)で見ます。目標は「p95 で 3 秒以内」のように、どの位置の値かを添えて書きます。
負荷の型を先に決める
負荷には型があります。いつもの量(定常)、日や月の山(ピーク)、一斉に押し寄せる量(突発)。どの型を試験するかを先に決めます。ピークが定常の何倍かは、業務のカレンダー(締めの日、給与の日、期末)から見積もります。
データの量を本番に近づける
件数が 10 倍になると、遅さが 100 倍になる処理があります。少ないデータで速くても、本番の件数では使い物にならないことがあります。本番相当の件数で試すか、試せないなら「何件で試したか」を結果に必ず添えます。
どの段が遅いかを分ける
遅いのは画面か、処理か、データベースか、連携の相手か。段ごとに時間を測れる仕組みを、試験の前に用意します。また、試験環境と本番の違い(台数、データ量、外部接続)を結果に添えないと、結果の読み方を誤ります。
現場で確かめる問い
- 性能の目標は、平均か、p95 や p99 か。どの位置の値かが書かれているか
- ピークは定常の何倍と見積もったか。その根拠は業務のカレンダーにあるか
- 試験のデータの件数は本番の何割か。結果にその件数が添えられているか
- 遅いときに、画面・処理・データベース・連携のどの段かを分けて測れる仕組みがあるか
アステリア案件の性能の目標がどの位置の値で書かれ、どの型の負荷で試験されたかは、正本に記録がありません。記録なし
11. 人間が判断すること
- 性能の目標と、満たすべき条件
- 目標を満たさない場合に、直すか、条件を見直すか、業務で回避するか
- 性能の結果を受けて、次の工程へ進んでよいか
12. 判断演習
「一覧画面は5秒以内に表示されること」という目標があるとします(教材上の例です。アステリア案件の目標値ではありません)。
この目標を性能テストで確かめるために、決めておく条件を上の表に沿って書き出してください。
あなたの記録あなたの考え。事実ではありません
判断ノート
このユニットで覚えてほしいこと
性能は、目標と条件をそろえて測ります。
問題が見つかったら、推測ではなく測定で、どこで時間がかかっているかを確かめます。