え〜、全部テストするんですか!
いまさら聞けないソフトウェア・テストのやり方

[著者]山村吉信

具体例をあげて、基本的なテストの考え、方法をわかりやすく解説。加えて、統計的方法をもとにいったいどれだけのテストをすればよいのかを理論的に説明している。ソフトウェア技術者の必読書!

定価=本体 2,200円+税
1999年5月15日/
A5判並製/170頁/ISBN978-4-88303-056-9

 



[目次]

まえがき 13
   0.1 保守におけるテストの現実 13
     0.1.1 生産性と保守 13
     0.1.2 品質とテスト 14
     0.1.3 保守におけるテスト 14
   0.2 本書の構成 14
     0.2.1 第I部:はじめに 14
     0.2.2 第II部:保守におけるテスト 14
     0.2.3 第III部:統計的テスト管理 14
     0.2.4 第IV部:プロジェクト管理・文書管理 15
     0.2.5 第V部:おわりに 15
     0.2.6 付録 15

第I部:はじめに
 第1章 はじめに 19
   1.1 ソフトウェア開発上の問題 19
     1.1.1 保守の大変さ 19
     1.1.2 テストにまつわる誤解 20
     1.1.3 現場での苦労 21
   1.2 現状 21
     1.2.1 生産性 21
     1.2.2 品質 23
   1.3 本書の提案 25
     1.3.1 保守におけるテスト 25
     1.3.2 統計的テスト管理 25
     1.3.3 プロジェクト管理・文書管理 26
   1.4 まとめ 26
   1.5 参考文献と学習の手引き 26
     1.5.1 参考文献
     1.5.2 学習の手引き

第II部:保守におけるテスト
 第2章 保守におけるテスト 31
  I テストとは何か 31
   2.1 要件定義 32
     2.1.1 「コメントを外すプログラム」の作成 32
     2.1.2 機能要件 34
   2.2 設計 34
     2.2.1 状態遷移図による設計(図) 36
   2.3 実現 36
     2.3.1 プログラムの全体像 36
     2.3.2 C言語によるプログラムの構造 39
     2.3.3 “main”の中身 41
     2.3.4 状態を調べる 42
     2.3.4 状態が“TEXT” の場合の処理 43
     2.3.6 プログラムの限界 44
  II テスト方法 45
   2.4 ブラック・ボックス・テスト 45
     2.4.1 ブラック・ボックス・テストにおける仕様 45
     2.4.2 例におけるブラック・ボックス・テスト 47
     2.4.3 ブラック・ボックス・テスト用入力文字列 48
   2.5 ホワイト・ボックス・テスト 45
     2.5.1 プログラムの構造 50
     2.5.2 網羅率 50
   2.6 テスト・ケース 54
     2.6.1 空文 54
     2.6.2 一文字だけのテスト 55
   2.7 まとめ 57
     2.7.1 要件定義 57
     2.7.2 設計 58
     2.7.3 実現 58
     2.7.4 テスト 58
   2.8 参考文献と学習の手引き 58
 第3章 保守におけるテストの課題 59
   3.1 何故、保守するのか 59
     3.1.1 生産性 59
     3.1.2 投資と見返り 59
     3.1.3 開発者から見た生産性 60
     3.1.4 再利用 60
   3.2 保守上の課題とは何か 60
     3.2.1 ブラック・ボックス・テストの問題点 61
     3.2.2 ホワイト・ボックス・テストの問題点 63
   3.3 技術以外の課題 63
     3.3.1 開発要員の外注化 63
     3.3.2 先進技術の適用 64
   3.4 まとめ 65
   3.4 参考文献と学習の手引き 65
 第4章 保守工程 67
   4.1 認識 67
     4.1.1 要件定義文書・要件仕様書 67
     4.1.2 設計文書・設計記述 69
     4.1.3 プログラム、データベース、等 69
   4.2 修正 70
     4.2.1 プログラムやデータベース 70
     4.2.2 文書 71
   4.3 検証 71
     4.3.1 単体テスト 71
     4.3.2 統合テスト 72
     4.3.3 受け入れテスト 72
     4.3.4 システム・テスト 72
   4.4 まとめ 72
     4.4.1 認識 72
     4.4.2 修正 72
     4.4.3 検証 72
   4.5 参考文献と学習の手引き 73

第III部 大規模ソフトウェア保守システムのエラー分布 77
   5.1 超幾何分布 77
     5.1.1 超幾何分布の例 76
     5.1.2 超幾何分布の最尤推定値 80
   5.2 二項分布 81
     5.2.1 二項分布の解釈 82
     5.2.2 超幾何分布の二項分布近似 82
   5.3 ポワソン分布 82
   5.4 正規分布 82
     5.4.1 二項分布の正規分布近似 83
     5.4.2 正規分布のαパーセント点 83
   5.5 まとめ 84
   5.6 参考文献と学習の手引き 84
 第6章 どれだけテストしたらいいか──標本の大きさ 87
   6.1 誤差 87
   6.2 信頼区間 87
   6.3 標本の大きさ 88
     6.3.1 信頼区間:90% 88
     6.3.2 信頼区間:95% 88
     6.3.3 信頼区間:99% 89
   6.4 68件のプログラムのテスト 89
   6.5 まとめ 89
   6.6 参考文献と学習の手引き 89
 第7章 対象システムにおけるエラー数の推定 91
   7.1 対象システム規模が大きくなるとどうなるか 92
   7.2 テストする本数がたくさんになるとどうなるか 92
   7.3 まとめ 93
   7.4 参考文献と学習の手引き 95
 第8章 エラー件数がわかってから 97
   8.1 信頼度成長曲線の考え方 97
   8.2 テスト努力 102
     8.2.1 信頼度成長曲線におけるテスト努力 102
     8.2.2 テスト努力としての網羅率 102
     8.2.3 境界値 103
   8.3 テスト終了判定 103
   8.4 平均故障時間 104
     8.4.1 信頼度成長曲線との関連 104
   8.5 リトルの公式 104
     8.5.1 リトルの公式の応用 105
   8.6 まとめ 105
   8.7 参考文献と学習の手引き 105
 第9章 テスト・ケース管理
   9.1 ミューテーション 108
     9.1.1 進化とは何か 108
     9.1.1 ミューテーションの考え方 109
     9.1.3 ミューテーションの例
   9.2 エラー・シーディング 113
     9.2.1 エラー・シーディングの例 113
   9.3 まとめ 116
   9.4 参考文献と学習の手引き

第IV部 プロジェクト管理・文書管理
 第10章 プロジェクト管理 121
   10.1 COCOMO 121
     10.1.1 規模・工数・期間・要員・生産性を表す記号 121
     10.1.2 規模からの見積り 122
     10.1.3 期間からの見積り 124
     10.1.4 要員からの見積り 125
   10.2 まとめ 126
   10.3 参考文献と学習の手引き 126
 第11章 文書管理 127
   11.1 テスト計画 127
     11.1.1 目的 127
     11.1.2 アウトライン 127
     11.1.3 例 132
   11.2 テスト設計仕様 134
     11.2.1 目的 134
     11.2.2 アウトライン 134
     11.2.3 例 135
   11.3 テスト・ケース仕様 136
     11.3.1 目的 136
     11.3.2 アウトライン 136
     11.3.3 例 137
   11.4 テスト手続き仕様 137
     11.4.1 目的 137
     11.4.2 アウトライン 137
     11.4.3 例 139
     11.5 テスト項目伝達レポート 139
     11.5.1 目的 139
     11.5.2 アウトライン 139
     11.5.3 例 140
   11.6 テスト記録 140
     11.6.1 目的 141
     11.6.2 アウトライン 141
     11.6.3 例 142
   11.7 テスト事例レポート 142
     11.7.1 目的 142
     11.7.2 アウトライン 142
     11.7.3 例 143
   11.8 テスト要約レポート 143
     11.8.1 目的 143
     11.8.2 アウトライン 143
     11.8.3 例 145
   11.9 テスト文書のまとめ 145
   11.10 まとめ 148
   11.11 参考文献と学習の手引き 148

第V部 おわりに
 第12章 おわりに 151
   12.1 本書で提案したことの検討 151
     12.1.1 まとめ 151
     12.1.2 議論 151
   12.2 新たな課題への対処 152
     12.2.1 統計 152
     12.2.2 ソフトウェア開発における統計 152
     12.2.3 現場における統計 152
   12.3 結論 153

あとがき 155
   13.1 執筆経過 155
   13.2 今までの著作と今後の執筆予定 155
   13.3 社会情勢 156

付録A Microsoft EXCEL 157
   A.1 標本数の決定 157
   A.2 エラー数の推定 158
   A.3 COCOMO 159
付録B Lotus 123
   B.1 標本数の決定 161
   B.2 エラー数の推定 162
   B.3 COCOMO 163

関連図書 165


HOME