naritai.app

品質評価

この章で覚えておきたいこと

品質評価を品質特性、レビュー、テスト、検証、妥当性確認で整理する図解

基本知識

ソフトウェア品質特性

旧ISO/IEC 9126系のソフトウェア品質6特性を業務システム点検で示す図解

ソフトウェア品質特性は、ソフトウェアをどの観点で評価するかを整理したものである。一次試験では、旧 ISO/IEC 9126 系や旧 JIS X 0129 系で使われた過去問上の旧分類として、機能性、信頼性、使用性、効率性、保守性、移植性の 6 特性をまず押さえる。現行 ISO/IEC 25010:2023 の製品品質モデルは 9 特性で構成されるため、標準規格としての現行分類と、過去問で問われた旧分類を混同しないことが重要である。2015 年第 23 問では、副特性との対応が問われ、セキュリティが機能性の文脈で扱われることも確認された。情報セキュリティの論点と見た目が似ていても、ここでは出題文が前提にしている品質特性の分類として読む必要がある。

非機能要求と非機能要求グレード

非機能要求グレードを発注者と開発側の合意づくりとして示す図解

機能要求が「何ができるか」を示すのに対し、非機能要求は「どの程度の品質で実現するか」を示す。応答時間、同時アクセス数、可用性、バックアップ、監査証跡などが代表例である。2012 年第 18 問では、同時アクセス数が性能・拡張性に属すること、運用監視が運用・保守性に属することなどが問われた。

非機能要求グレードは、可用性、性能・拡張性、運用・保守性、セキュリティなどの観点で要求を整理し、発注者と受注者の合意を取りやすくするための枠組みである。評価点を付けて優劣を決める制度だと読むと誤る。

レビュー技法

インスペクション、ウォークスルー、パスアラウンドの違いを示す図解

レビューは、プログラムを実行する前に、仕様書や設計書、ソースコードなどの成果物を人が確認して欠陥を見つける活動である。2011 年第 20 問では、インスペクションが、役割を明確にした公式なレビューであることが問われた。作成者が説明しながら進めるのはウォークスルー、資料を回覧して個別に確認するのはパスアラウンドである。

テストレベル

単体テスト、結合テスト、システムテスト、受入テストを対象範囲で示す図解

テストレベルは、どの範囲を対象に確認するかで分ける。単体テストはモジュール単位、結合テストはモジュール間インタフェース、システムテストはシステム全体、受入テストや検収テストは利用者や発注者の立場での確認である。2007 年第 19 問や 2019 年第 18 問では、結合テストと他のテストの違いを切り分けさせる出題が見られた。結合テストを性能確認のテストだと誤認しないことが重要である。

テスト観点とテスト技法

ブラックボックス、ホワイトボックス、境界値、回帰、負荷のテスト観点を示す図解

ブラックボックステストは内部構造を見ずに仕様、入力、出力から確認する。ホワイトボックステストは分岐、繰り返し、経路など内部ロジックを確認する。2013 年第 19 問、2015 年第 19 問、2019 年第 18 問、2025 年第 7 問で繰り返し問われている頻出論点である。

同値分割は同じ結果になる入力群から代表値を選ぶ技法で、境界値分析は有効値と無効値の境目付近を重点的に確認する技法である。2025 年第 7 問では、境界値分析の説明を他の技法の説明と入れ替えて問う形だった。2020 年第 20 問では、条件と結果の組合せを整理する決定表がブラックボックステストの技法として問われた。

回帰テストは、変更や修正の後で既存機能に悪影響が出ていないかを確認する。負荷テストは、大量アクセスなど高負荷時の応答時間や資源利用を確認する。両者は名前の印象で混同しやすいが、目的がまったく異なる。

アルファテストとベータテスト

アルファテストとベータテストを実施者と環境で区別する図解

アルファテストは、主に開発側の管理下で実施するリリース前確認である。ベータテストは、外部利用者や実利用に近い環境で使ってもらい、実使用に近い状況で問題を見つける確認である。2018 年第 21 問、2023 年第 2 回第 15 問、2025 年第 7 問では、実施者や実施環境を入れ替えて判定させる形で出題された。

ドライバとスタブ

ドライバとスタブを呼び出す側と呼び出される側で区別する図解

結合テストでは、未完成のモジュールの代わりにダミーモジュールを使う。ドライバは未完成の上位モジュールの代替であり、下位モジュールを呼び出して試すために使う。スタブは未完成の下位モジュールの代替であり、上位モジュールから呼び出される側として仮実装する。2017 年第 19 問、2025 年第 7 問では、この方向の理解が直接問われた。

検証と妥当性確認

検証と妥当性確認を確認対象の違いで示す図解

検証は、仕様書、設計書、プログラムが前工程の成果物どおりにできているかを確認する考え方であり、「正しく作っているか」と覚える。妥当性確認は、利用者の要求や業務目的に合ったものになっているかを確認する考え方であり、「正しいものを作っているか」と覚える。受入テストや検収テストは、妥当性確認の性格が強い。

エラー埋め込み法

エラー埋め込み法で既知エラーの発見率から潜在エラーを推定する図解

エラー埋め込み法は、既知のエラーを意図的に埋め込み、その発見率から潜在エラー数を推定する方法である。2023 年第 1 回第 18 問では、埋め込みエラー 100 件のうち 40 件が見つかり、発見総数 50 件のうち埋め込みエラー以外が 10 件だったので、10 / x = 40 / 100 とおいて潜在エラー総数を 25 件と推定させた。計算自体よりも、発見総数をそのまま使わず内訳に分けることが重要である。

この章のまとめ

品質評価の混同しやすい論点を最終確認する図解

一次試験過去問での出方

引用元