ITパスポート対策
見積りとテスト
見積りとテストは、どちらも「作る前と作った後に、どう確かめるか」という話です。用語の種類が多いので、分類の軸を先に持っておきます。
見積り手法
開発にどれだけの規模と工数がかかるかを事前に見積もります。代表的な手法は次のとおりです。
| 手法 | 何を基準にするか | 特徴 |
|---|---|---|
| FP法(ファンクションポイント法) | 利用者から見た機能の数と複雑さ | 開発言語に左右されない |
| LOC法 | ソースコードの行数 | 言語によって行数が変わる |
| 類推見積り | 過去の類似案件の実績 | 早く出せるが精度は経験次第 |
FP法は、入力画面や出力帳票、ファイルなど利用者から見える機能を数えて点数化します。プログラムの行数を数えないので、言語が変わっても見積りがぶれにくいのが利点です。「FP法はソースコードの行数から算出する」という選択肢は、LOC法との取り違えで誤りです。
テストの段階とV字モデル
テストは小さい単位から大きい単位へ進みます。
| 段階 | 対象 | 対応する設計工程 |
|---|---|---|
| 単体テスト | プログラム1本ずつ | 内部設計 |
| 結合テスト | プログラムどうしのつなぎ目 | 外部設計 |
| システムテスト | システム全体の動きと性能 | 要件定義 |
| 運用テスト(受入テスト) | 実際の業務どおりに使えるか | 企画・要件 |
V字モデルは、この対応関係を図にしたものです。左側に設計工程を上から下へ、右側にテスト工程を下から上へ並べ、同じ高さどうしが対応するという考え方です。内部設計に対応するのが単体テスト、外部設計に対応するのが結合テストという組合せが問われます。運用テストは開発側ではなく利用者が主体で行う点も定番です。
ホワイトボックスとブラックボックス
| 種類 | 見るもの | 主に使う段階 |
|---|---|---|
| ホワイトボックステスト | プログラムの内部構造。分岐や経路をすべて通す | 単体テスト |
| ブラックボックステスト | 入力と出力の関係だけ。内部は見ない | 結合以降 |
「内部構造を考慮せず、仕様どおりの結果が返るかを確認する」はブラックボックステストです。逆に「すべての分岐を通るようにテストデータを作る」はホワイトボックステストです。名前と説明を入れ替えた選択肢が定番なので、中身を見るか見ないかで判断してください。
回帰テスト(リグレッションテスト)は、修正した箇所以外に悪影響が出ていないかを確かめるテストです。修正部分が直ったかを見るテストではない、という点が引っかけになります。
レビューと信頼度成長曲線
プログラムを動かさずに、人の目で成果物を確認するのがレビューです。
- ウォークスルーは、作成者が説明しながら関係者と一緒に見ていく、比較的軽い形式です。
- インスペクションは、進行役(モデレータ)を置いて役割と手順を定めて行う、公式で厳密な形式です。
進行役を立てて公式に行うのがインスペクションという点で区別します。
信頼度成長曲線(ゴンペルツ曲線)は、テストの経過時間に対する累積バグ検出数を表したグラフです。最初は緩やかに増え、途中で急に増え、終盤で頭打ちになるS字を描きます。曲線が寝てきたことは、バグが出尽くしてきた目安として品質の判断に使います。テストが不十分でも同じように寝ることがあるため、曲線だけで合格と判断するのは誤りです。