第6,7回課題 テスト・文書作成 学生実験第1 ソフトウェア基礎 テストを実施し、テスト報告書を作成する テスト実行のための入力を作成し、プログラムを 実行する エラーが発見されたら修正する テストの結果をテスト報告書にまとめる テスト・文書作成 マニュアルを作成する 書式はオンラインマニュアル(man)に準じる 59 58 テスト テスト技法(p.15) テストとは、エラーを発見するためにプログラ ムを実行すること ブラックボックステスト エラーとは仕様とプログラムの不整合 エラ がないことを確認する作業ではない エラーがないことを確認する作業ではない テストの目的はエラーの発見である 高品質なテストとはエラーを多く発見できるテスト 内部構造に関係なく、要求仕様から得たテスト ケースを使用する ホワイトボックステスト 内部構造に基づき、決められた網羅基準を満たす ようにテストケースを作成する 回帰テスト テストケース テスト対象への入力データと予想される結果の組 予想される結果は必ずテスト実行前に決めておく プログラム修正の結果、問題が発生しないかどう か調べる 60 61 ブラックボックステスト 同値分割の例: 1行の文字数(1) 境界値分析 仕様: 1行n文字を超えたら改行する 入力条件: 改行処理が1回だけ起きる あるデータの境界値をもとにテストケースを選択 境界値と、境界値から少しずれた値 同値分割 ある入力条件に着目して有効な値のクラスと無効 な値のクラスに分ける 各同値クラスから代表テストケースを選択 各同値クラスが範囲を持つ場合は境界値分析で 選択 62 有効同値クラス 範囲 n+1~2n 境界値 n+1, 2n 無効同値クラス 0~n,2n+1~ 0, n,2n+1 境界値から少しずれた値: 1, n-1, 2n-1 など テストケースとして以下の文字数の行を入力として選択 0, 1, n-1, n, n+1, 2n-1, 2n, 2n+1 63 1 同値分割の例: 1行の文字数(2) 同値分割の例: 1行の文字数(3) 仕様: 1行n文字を超えたら改行する 入力条件: 改行処理が2回起きる 仕様: 1行の文字数がmを超えたら処理できない 入力条件: 行文字数エラーが発生する 有効同値クラス 範囲 2n+1~3n 無効同値クラス 0~2n,3n+1~ 境界値 2n+1, 3n 有効同値クラス 範囲 m+1~ 境界値 m+1 0, 2n,3n+1 無効同値クラス 0~m 0,m 境界値から少しずれた値: 1, 2n-1, 3n-1 など 境界値から少しずれた値: 1, m-1 など テストケースとして以下の文字数の行を入力として選択 0, 1, 2n-1, 2n, 2n+1, 3n-1, 3n, 3n+1 テストケースとして以下の文字数の行を入力として選択 0, 1, m-1, m, m+1 64 境界値分析の例: タブ文字の処理 65 ブラックボックステスト項目 少なくとも、仕様における以下の項目について、 入力条件を列挙し、テストケースを設計するこ と 仕様: タブ文字が入力されたら、8の倍数文字目まで 空白を出力する テストケース: タブ文字が8k文字目に現れる場合 タブ文字が8k-1文字目に現れる場合 タブ文字が8k+1文字目に現れる場合 1行の文字数 1ページの行数 長いファイル名 タブ文字の処理 エラー発生 66 67 ホワイトボックステスト ホワイトボックステストの網羅基準 プログラムの内部構造に基づくテスト 網羅基準をさだめ、その網羅基準を満たすよ うにテストケースを選択 全命令網羅 すべてのステートメントを1回以上実行するような経路の集 合を選択 テスト網羅基準としては弱い 全分岐網羅 すべての分岐方向を1回以上実行するような経路の集合を 選択 全経路網羅 すべての実行経路を実行する 一般に実行経路の数は膨大であり、全経路網羅を満たす テストは不可能 68 69 2 網羅基準を満たすテストケース a x>1 and y == 0 b 全経路網羅: abd, abe, acd, ace Yes No d c z=z/x N No x == 2 or z>1 反復処理における分岐網羅 Yes e 全命令網羅を満たす経路の組合せ: ace (x=2, y=0, z=3) 反復条件により、分岐が起きると考える 反復条件が1回以上成立するテストケースを 選択すれば命令網羅、分岐網羅を満たす for文、while文 全分岐網羅を満たす経路の組合せ: acd (x=3, y=0, z=3) と abe (x=2, y=1, z=1) a 条件 Yes b または z=z+1 No c d abd (x=0, y=0, z=0) と ace (x=2, y=0, z=3) 70 do while文 e 全命令網羅 abdc 全分岐網羅 abdc 全経路網羅 ac, abdc, abdbdc, …… f g Yes 条件 h No 全命令網羅 efh 全分岐網羅 efgfh 全経路網羅 efh, efgfh, efgfgfh, …… 71 LEXのルール部における分岐網羅 回帰テスト 状態遷移を分岐とみなすことができる すべてのテストケースを用いて再びテストする すべての状態遷移が実行されるように入力を選択 修正によってエラーが取り除かれたか調べる 修正によって新たなエラーが埋め込まれていない か調べる 72 73 テスト手順 テスト報告書の項目(p.20) 1. ブラックボックステストに基づいてテストケース(入力と予 想される実行結果)を設計 2. テスト実行を行い、問題が生じた場合はプログラムを修正 3. 1. で設計したテストケースが全分岐網羅を満たすかどう か調べ、満たさない場合は満たすようにテストケースを追 加 4. テスト実行を行い、問題が生じた場合はプログラムを修正 5. 回帰テストを行う 6. テスト報告書を作成する ブラックボックステストのテスト項目 ホワイトボックステストのテスト項目 テストフェーズ全体で発見できた誤りの総数 74 75 3 各テスト項目の記述 テスト項目の説明 ブラックボックステストの着目した仕様と入力条件 ホワイトボックステストのテスト対象のコードの説明 テストケースと予想される結果の説明 ただし、入力データをそのまま記述する必要はない テスト実行の結果 対処 誤りが発見された場合の対処 76 4
© Copyright 2024 ExpyDoc