• 検索結果がありません。

ソフトウェアテスト見積り基本アルゴリズム

ドキュメント内 テスト見積り (ページ 135-139)

第2部 事例編

5 ジャステック

5.3 ソフトウェアテストの見積り

5.3.2 ソフトウェアテスト見積り基本アルゴリズム

135

表 5.6 現行資産特性変動要素評価表(規模に影響する外部環境変数)

ベースラインからの変動率(%)

主特性 副特性 変動要素 要件

定義 設計 製作 テスト 機能性 正 確 性 ( 既 存 母

体)

改造/流用母体が正しく動作しない場合の テスト量(現行保証)に及ぼす影響

0

5

0

15

0

20

※改造開発特有の環境変数

②ソフトウェアテスト量の見積り方法

ソフトウェアテストでは、ソフトウェアの欠陥を検出し、これを修正して欠陥を除去する。弊社 ではテストの目的をソフトウェアの欠陥を検出することと考え、欠陥を除去するために行う修正作 業とは区分して、ソフトウェアの欠陥の検出を行うテスト作業と、ソフトウェアの欠陥を除去する 修正作業とを区分して見積もっている。

ソフトウェアの欠陥の検出を行うテスト量(テスト項目数)は、欠陥の混入および除去モデルに 基づいて、テスト開始時の残存欠陥密度およびテスト終了時に目標とする残存欠陥密度に基づいて 見積もる。残存欠陥密度は、ソフトウェアを運用に供してから一定期間の欠陥数を測定して実測す るが、ソフトウェアの開発段階では測定できない。また、テスト工程でソフトウェア信頼度成長曲 線などを用いて統計的に推定する方法はあるが、テストの設計段階では推定できない。このため、

テスト設計段階では、残存欠陥密度の目標をテストの網羅性を測る尺度に置き換えて目標を設定し 予実を管理する。ホワイトボックステストにおける網羅性を測る尺度としては、C0,C1,C2 カバレッ ジなどが良く知られており、テスト項目数の見積もりではテスト網羅率の目標値に基づいてテスト 設計した結果、期待されるテスト密度(項目/KLOC)を見積りの基準値として使用する。

また、統合テストおよびシステムテストなどでは、ユースケーステスト、状態遷移テスト、ディ シジョンテーブルテストおよび異常値/無効値テスト、など、様々なテスト観点があり、それぞれ のテスト観点についてテスト項目の抽出基準を定めてテストを実施し、テスト密度を代替尺度とし ている。

5.3.1 節に述べたとおり、改造型開発の場合は、テスト対象のソフトウェア規模として、テスト 巻き込み規模(改造正味規模を含む)を用いる。

テスト巻き込み規模にはインターフェース規模(改造正味規模を含む)とリグレッション規模と がある。あるテスト工程iのインターフェース規模をV'、リグレッション規模をV、インター フェース規模に対する基準テスト密度を「基準テスト密度’」、リグレッション規模に対する基準テ スト密度を「基準テスト密度”」とすると、改造型開発のテスト量(テスト項目数)Vtは次の式で 求まる。

t=((V'×基準テスト密度 ×(1+ε'))+((V×基準テスト密度

×(1+ε))

次に新規開発の場合のテスト量を示す。テスト工程iのテスト量(テスト項目数)Vtは、新規 開発のソフトウェア規模をVおよび基準テスト密度を「基準テスト密度」とすると、次の式で求ま る。

t=(V×基準テスト密度)×(1+ε

ここで、ε、ε'およびεは基準テスト密度i、基準テスト密度および基準テスト密度 に対応する変動率である。

基準テスト密度は基準とするテスト網羅率 (13)を定め設定している。ε、ε'およびεは、

当該システムのユーザからの要望(14)基づいて、基準となるテスト網羅率からの変動率を求めて設定 している。

(13) 弊社の基準とするテスト網羅率は、単体テストを C1(100%)、統合テストおよびシステムテスト はオールペアを標準としている。但し、5.6 節に述べているようにシステムテストなどテスト量と 品質リスクとのトレードオフの観点から、課題がある。

(14) 顧客のテスト戦略(業務機能の重要度、テスト技法の選択など)に基づいたソフトウェアコン

137

例えば、単体テストでのテスト網羅率基準(C0、C1、C2)を例にとると、基準とするテスト網羅 率(カバレッジ率)を C1(100%)としていた場合、当該システムでのテスト網羅率要求水準が C2

(100%)なら、εは C2 の水準のテスト網羅率に調整すべく、基準とする網羅率からの差分を変動 率として設定する。

③検出欠陥数の見積り方法

弊社ではテスト工程iで検出する欠陥数を次式にて見積もっている。

検出欠陥数=テスト対象のソフトウェア規模

×(テスト開始時残存欠陥密度-テスト終了時残存欠陥密度) =テスト対象のソフトウェア規模

×{(Σ工程独自欠陥混入密度-Σレビュー指摘密度

-テスト終了時残存欠陥密度

尚、図 5.3 に示すように、C0→C1→C2 とテストの網羅性を高めるほどテスト項目数は急激に増加 する(検出する欠陥数と実施するテスト項目数との関係は線形ではない)が、欠陥が混入している 確率は減少するため、欠陥検出効率(検出欠陥数÷テスト項目数)は減少する。よって、特に C2 で のテスト網羅率(カバレッジ 100%)を目標とする場合、単体テスト対象プログラムの重要度および テスト予算(テスト期間含む)などを鑑みたテスト網羅率を配慮することが重要である。

図 5.3 テスト項目数と検出欠陥数の関係

④欠陥修正作業の見積り方法

一方、ソフトウェアの欠陥を除去する修正作業は、テストで検出する欠陥を除去するために修正 すべき生産物の規模に基づいて見積もる。

ソフトウェアテストで検出する欠陥の除去は、その欠陥を作りこんだ工程に遡り修正するので、

例えば基本設計工程で作りこんだ欠陥を修正する場合は、基本設計書、パッケージ設計書、プログ ラム設計書およびソースコードを修正することになる。これは、図 5.4 のようになるので、テスト で検出する欠陥を作りこんだ工程の修正の程度を、当該生産物の総量に対する修正量の比率(図 5.4 では工程独自欠陥修正率と表現している)として見積もる。ある工程iの生産物の総量に対する修 正量の比率は、当該工程の工程独自欠陥修正率iに先行する工程の工程独自欠陥修正率の総和を加

C0カバレッジ100%

C1カバレッジ100%

C2カバレッジ100%

検 出 欠 陥 数

テスト項目数 欠陥検出効率も、

テスト密度も異なる

えた値になるので、ある工程iの生産物の修正量を次式のとおり求め、これに欠陥の修正作業の生 産性を乗じて修正工数を見積もる。

工程iの修正量 = 工程iの生産物量 × Σ工程独自欠陥修正率 (j=1~i)

図 5.4 テストで検出した欠陥の修正

なお、例えば統合テストで検出した欠陥を修正した場合は、修正後に再度、単体テストを行うこ とになるので、修正量をインプットして再テストの量を見積もるが、改造開発の場合と同様にテス ト巻き込み規模としてインターフェース規模とリグレッション規模の 2 つのテスト巻き込み規模を 考慮する。再テストの生産性は初期のテストの生産性とは異なるので、初期のテストの生産性とは 別に基準値を持ち、これを適用して次の式で求める。

再テスト工数i=工程iの修正量×再テスト生産性(j=1~i)

⑤生産物量環境変数と生産性環境変数

生産性見積り方式は 5.3.1 項に記載のとおりである。なお、生産物量環境変数の具体例は表 5.5 および表 5.6 に記載し、生産性環境変数の具体例は表 5.2~表 5.4 に記載している。

生産物量環境変数のひとつに「正確性:正確性(検証)に関わる標準テスト密度を基準にしたテ スト項目量への要求水準」があり、これは「(2)生産物量見積り方式」に基づいて見積もったテスト 項目数とテスト巻き込み規模とから導出して、テスト工程を管理するためのひとつの指標として利 用している。また、「試験性:試験に必要な機能数」は、ソフトウェアテストの効率化およびテスト の検証精度向上のためにテスト対象システムに要求する試験性などの要件を具体化して、見積りに インプットしている。

なお、テスト工程では生産性環境変数として、特に次の事項に着目して、見積り時にユーザと調 整し合意に努めている。

a業務ナレッジおよび役割分担

業務ユースケースの網羅、テストデータ作成に関する業務ナレッジの活用などに関するユー ザとベンダとの協力体制の良否は、テストの生産性への影響が大きい。

b工程入力情報特性

テストデータの誤りおよびテスト実施環境の誤動作は、テストの生産性を著しく低下させる。

一方、テスト対象のソフトウェアに欠陥が少なければテストの生産性は向上する。従って、設 基本設計書 パッケージ

設計書

プログラム 設計書

ソース コード 基本設計工程独自欠陥修正率→

パッケージ設計工程独自欠陥修正率→

プログラム設計工程独自欠陥修正率→

コード化工程独自欠陥修正率→

生産物の修正率 修正対象の生産物

139

計工程および実装工程のレビュー(レビュー指摘密度を指標として目標を設定し管理)におい て、より多くの欠陥を除去することは、テストの生産性を向上させる。

c開発環境特性

既存のテストウェア(テストデータ、テスト手順書、テスト環境など)の流用可能性、テス トの自動化などは、テストの生産性向上効果が大きい。

ドキュメント内 テスト見積り (ページ 135-139)