Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

ソフトウェア・テスト入門1

59 vues

Publié le

ソフトウェア基礎講座資料

Publié dans : Formation
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

ソフトウェア・テスト入門1

  1. 1. 第1回「イントロダクション」 2011年6月10日(金) 服部 健太 ソフトウェア・テスト入門
  2. 2. 自己診断テスト 2011/6/10ソフトウェア・テスト入門12  このプログラムは,カードから3つの整数を読む. この3つの値は,それぞれ三角形の3辺の長さを あらわすものとする.プログラムは,三角形が不 等辺三角形・二等辺三角形・正三角形のうちのど れかであるかをきめるメッセージを印字する.  このプログラムをテストするのに十分と思われる 一連のテスト・ケースを書け.
  3. 3. チェックリスト 2011/6/10ソフトウェア・テスト入門13 1. 有効な不等辺三角形をあらわすテスト・ケースをもっているか 2. 有効な正三角形をあらわすテスト・ケースをもっているか 3. 有効な二等辺三角形をあらわすテスト・ケースをもっているか 4. 有効な二等辺三角形のばあいに,2つの等辺をふくむ3種類の組み合わせすべてをため すことのできる少なくとも3つのテスト・ケースをもっているか 5. 1つの辺がゼロの値をもつテスト・ケースをもっているか 6. 1つの辺が負の値をもつテスト・ケースをもっているか 7. ゼロより大きい3つの整数をもち,そのうちの2つの和がそれ以外の1つと等しいよう なテスト・ケースをもっているか 8. 7項において,1辺の長さが他の2辺の長さの和に等しいことを少なくとも3種類の順 列のすべてにたいしてためすことのできるテスト・ケースをもっているか 9. ゼロより大きな3つの整数のうち,2つの数の和がそれ以外の1つの数より小さくなる テスト・ケースをもっているか 10. 9項において,少なくとも3種類の順列すべてを考慮することのできるテスト・ケース をもっているか 11. すべての辺が0であるテスト・ケースをもっているか 12. 整数でない値をもつテスト・ケースを少なくとも1つはもっているか 13. 数値の個数がまちがっていることをためすテスト・ケースを少なくとも1つはもってい るか 14. それぞれのテスト・ケースについて,入力の値にたいして予想される出力をしめしたか
  4. 4. プログラム・テストの 心理学と経済学 テストをするにあたっての適切な心構え 2011/6/10ソフトウェア・テスト入門14
  5. 5. 「テスト」のあやまった定義 2011/6/10ソフトウェア・テスト入門15  「テストとは,エラーがないことをしめしていく 過程である」  「テストの目的は,プログラムが意図された機能 どおりに正しく動いてくれることをしめすことで ある」  「テストとは,プログラムが思いどおり動くこと の確信をつくっていく過程である」  思いどおりに動くプログラムであってもまだエラー を含みうる(プログラムが意図されなかった動きを するばあいにも,エラーが存在する)  Etc.
  6. 6. 「テスト」の適切な定義 2011/6/10ソフトウェア・テスト入門16  「テストとは,エラーをみつけるつもりでプログ ラムを実行する過程である」  この目標にしたがうならば,テスト・データとして, エラーを見つける確率の高いものを選ぶだろう  プログラムはエラーをふくんでいるという仮定のも とでテストを始めるべきである  本来なら新しいエラーを発見したテスト・ケースを 「成功」と呼ぶべきだろう
  7. 7. テストの経済学 2011/6/10ソフトウェア・テスト入門17  すべてのエラーを見つけるテストは可能か? ⇒「否」  一般に,プログラムのすべてのエラーをみつけるこ とは,非現実的であり,しばしば不可能でもある
  8. 8. ブラックボックステスト 2011/6/10ソフトウェア・テスト入門18  プログラムを1つのブラックボックスとみなす.  テストする人は,プログラムの内部構造と動作にいっさ い関知しない.  テスト・データは仕様書からだけ得られる  このやり方で,プログラムの全エラーをみつけよう とすれば,「徹底的な入力テスト」が必要.  テスト・ケースとしてすべての可能な入力条件を使う.  すべての「正しい」入力データだけでなく,すべての 「可能性のある」入力データを使ってテストしなければ ならない. ⇒無限数のテスト・ケースが必要
  9. 9. ブラックボックステスト(2) 2011/6/10ソフトウェア・テスト入門19  徹底的入力テストは不可能である 1. プログラムが,まったくエラーをもたないと保 障するようなテストはできない. 2. プログラム・テストの基本的な考え方には,経 済学的な見方が必要である.  かぎられたテスト・ケースでみつけることのできる エラーの数を最大にすべきである.  たとえば,三角形のプログラムは,2,2,2を正三角 形とみれば,3,3,3のデータにたいしても,同じ働 きをするだろう
  10. 10. ホワイトボックス・テスト 2011/6/10ソフトウェア・テスト入門110  テストする人は,プログラムの論理をしらべるこ とによりテスト・データを引き出す  すべての命令が少なくとも1回は実行されるよう にすればよい?  これだけでは不十分  徹底的経路テスト  テスト・ケースによってプログラムのすべての可能 な制御経路を実行すればそのプログラムは完全にテ ストされたと言ってもよいことになる?
  11. 11. 制御経路の数 2011/6/10ソフトウェア・テスト入門111  たかだか20回の繰り返しループをもつ,一連のネス トされた分岐があるようなプログラムのフロー チャート  520+519+…51通りの数 A B ≦20
  12. 12. 徹底的経路テストの欠点 2011/6/10ソフトウェア・テスト入門112  経路の数が天文学的な値になる  すべての経路がテストできたとしても,そのプロ グラムはまだエラーをもっているかもしれない  仕様と一致することを保証できない  経路を抜かすことによるプログラムのあやまりがあ りうる  データに依存するエラーは発見できない  例:if (a - b) < epsilon then …  このエラーの発見は,aとbに与えられる値に依存している
  13. 13. テストの原則(1) 2011/6/10ソフトウェア・テスト入門113  テスト・ケースの必須条件は,予想される出力ま たは結果を定義しておくことである.  予想される結果が事前に定義されていなかったら, もっともらしくみえるがあやまっているという結果 を,正しい結果として判断することがある.  それぞれのテスト結果を完全に検査せよ.  テスト結果を注意深く検査することで,より多くの エラーを発見できるようになる
  14. 14. テストの原則(2) 2011/6/10ソフトウェア・テスト入門114  プログラマは自分自身のプログラムをテストしては ならない.  自分のエラーを見つけたいという態度を持ちにくい.  プログラマの誤解にもとづくエラーをプログラムがふく んでいるかもしれないため,自分のプログラムをテスト しようとするときにも同様のあやまりをおかしやすい  自分のプログラムをテストするのは不可能だと言ってい るのではない.(他人がテストするほうが,より効果的 で成功するだろう)  プログラム開発グループは,自分たちのプログラム をテストしてはいけない.
  15. 15. テストの原則(3) 2011/6/10ソフトウェア・テスト入門115  テスト・ケースは正しい予想できる入力条件ばかり でなく,あやまった予想しないばあいも考えて書か なければならない.  プログラム作成時に突然発見されるようなエラーの多く は,そのプログラムが,何か新しい予測できない状態で つかわれたときにでてくる.  予想しない誤っている入力条件をしめすテスト・ケース は,正しい入力条件のためのテスト・ケースよりもエ ラー発見率が高い  プログラムをしらべるのに,それが意図されたよう に動くかどうかをみただけでは,なかば成功したに すぎない.残りの半分は,意図されなかった動きを するかどうかをしらべることである.
  16. 16. テストの原則(4) 2011/6/10ソフトウェア・テスト入門116  プログラムが本当に使い捨てのものでないかぎり, そのテスト・ケースも使い捨てにしてはならない.  テスト・ケースは価値のある投資である.  すでに機能していた部分が修正によって故障したと きは,そのエラーは見つけられなくなることがよく ある.
  17. 17. テストの原則(5) 2011/6/10ソフトウェア・テスト入門117  エラーはみつからないだろうという仮定のもとに テストの計画をたててはいけない.  プログラムのある部分でエラーがまだ存在してい る確率は,すでにその部分でみつかったエラーの 数に比例する.  エラーはまとまって存在し,場所によってエラーが 偏在する傾向がある.  プログラムのある部分が他の部分より多くのエラー をもっているようであれば,このエラーの多い部分 にテストを集中させることによって,テストの効果 があがる
  18. 18. テストの原則(6) 2011/6/10ソフトウェア・テスト入門118  テストとは,ひじょうに創造的であり,知的に挑 戦しがいのある仕事である.  大きなプログラムをテストするのに必要とされる創 造力は,そのプログラムを設計するときに必要な創 造力をしのぐ.
  19. 19. まとめ 2011/6/10ソフトウェア・テスト入門119  テストとは,エラーを見つけようとしながら,プ ログラムを実行する過程である.  良いテスト・ケースとは,まだ発見されていない エラーを検出する確率の高いものである.  成功したテスト・ケースとは,まだ発見されてい ないエラーを検出したものである.
  20. 20. 次回予定 2011/6/10ソフトウェア・テスト入門120  日にち  2011年6月17日(金)  時間  10:30~12:00  場所  LB/2FA  内容  プログラムの検査,ウォークスルー,検討

×