Return to Video

03-24 Number Of Tests

  • 0:00 - 0:05
    これらのサブセットを削除するとテストをパスします
  • 0:05 - 0:11
    nを2倍にして更に粒度を上げる必要があります
  • 0:11 - 0:14
    入力を6つのサブセットに分けます
  • 0:14 - 0:18
    各サブセットを削除して6回テストを行い
  • 0:18 - 0:20
    すべてパスします
  • 0:20 - 0:23
    更に粒度を上げn=12とします
  • 0:23 - 0:26
    しかし8文字しかありません
  • 0:26 - 0:32
    空のサブセットを作らない限り
    8文字を12のサブセットに分けることはできません
  • 0:32 - 0:36
    minimum関数を設定しこの問題を改善します
  • 0:36 - 0:40
    nが入力を上回らないようにしましょう
  • 0:40 - 0:43
    この場合のnは8ですね
  • 0:43 - 0:46
    1つずつ文字を削除していくのが
  • 0:46 - 0:50
    差分デバッグの最後の工程ですが
  • 0:50 - 0:53
    すべてがパスする結果になります
  • 0:53 - 0:56
    最後に<SELECT>を取得します
  • 0:56 - 1:00
    すべての文字が関連していることが分かります
  • 1:00 - 1:06
    文字を削除することで
    テスト結果が失敗からパスに変わるからです
  • 1:06 - 1:10
    差分デバッグで最後に得られるのは
  • 1:10 - 1:13
    1つ1つが関連性を持つ入力です
  • 1:13 - 1:18
    差分デバッグでは
    何回テストが行われるのか知りたいでしょう
  • 1:18 - 1:23
    最後には1文字ずつ削除してテストを行いますので
  • 1:23 - 1:28
    テスト回数は文字列の長さに比例します
  • 1:28 - 1:32
    極端な例ですが最悪の場合には
  • 1:32 - 1:36
    テスト回数は文字数の2乗になります
  • 1:36 - 1:40
    しかし差分デバッグはバイナリサーチを兼ね
  • 1:40 - 1:44
    同じ効果が得られるという利点があります
  • 1:44 - 1:48
    どの段階で対数テストが必要となるでしょう?
  • 1:48 - 1:50
    すべてのテストが失敗した時?
  • 1:50 - 1:55
    2分の1を削除すると常に失敗する時でしょうか?
  • 1:55 - 1:58
    すべてのテストをパスした時でしょうか?
  • 1:58 - 2:01
    そんな時はないでしょうか? 正解は複数あります
タイトル:
03-24 Number Of Tests
Video Language:
English
Team:
Udacity
プロジェクト:
CS259 - Software Debugging
Duration:
02:02

Japanese subtitles

改訂