Return to Video

01ps-01 The Mystery Program

  • 0:00 - 0:06
    このレッスンの課題は
    覆面プログラムの統計的デバッグです
  • 0:06 - 0:11
    まず覆面プログラムを実行し
    パスと失敗の数を記録してください
  • 0:11 - 0:18
    そして統計的デバッグを使って
    失敗を引き起こしている原因を突き止めましょう
  • 0:18 - 0:24
    しかし今回は実行されない行の特性を見るのではなく
  • 0:24 - 0:27
    各関数の戻り値の特性を調べましょう
  • 0:27 - 0:30
    皆さんが取り組む出力の1つは
  • 0:30 - 0:36
    f関数が返す値が0より大きい時は
    必ずプログラムが失敗するということです
  • 0:36 - 0:42
    各関数の戻り値をトラッキングするためには
    Pythonのtraceit関数を使いましょう
  • 0:42 - 0:47
    イベントは戻しで戻し値には引数が含まれています
  • 0:47 - 0:52
    また戻り値を複数のブックレットに
    分類する必要があります
  • 0:52 - 0:58
    3つのカテゴリを使いましょう
    0より小さい、0、0より大きいです
  • 0:58 - 1:01
    数値に関してはこれが分かりやすいです
  • 1:01 - 1:04
    符号に応じてカテゴリの1つに分類します
  • 1:04 - 1:12
    リスト、文字列、ディクショナリ、セットなど
    数値でない場合は長さで判断します
  • 1:12 - 1:16
    文字列が空なら0カテゴリに分類します
  • 1:16 - 1:21
    1文字以上ある場合は
    0より大きいカテゴリに分類します
  • 1:21 - 1:26
    セットの場合は要素がない、
    1つ以上の要素があるで判断します
  • 1:26 - 1:32
    ブール値ならFalseを0
    そしてTrueを0より大きいに分類します
  • 1:32 - 1:37
    0より小さいは
    例外的な戻り値を示すためによく使用されるので
  • 1:37 - 1:44
    このカテゴリを何もない、数字でない、例外のような
    特別な値に使用します
  • 1:44 - 1:49
    関数が値を返さず代わりに例外が発生したら
  • 1:49 - 1:54
    その戻り値を0より小さいに分類します
  • 1:54 - 2:00
    そこで各関数で各カテゴリに対する5つの係数と
  • 2:00 - 2:02
    各補数の係数を計算しましょう
  • 2:02 - 2:06
    補数とは何か例を使って説明します
  • 2:06 - 2:12
    表を作って 0より小さい値を返したf関数の
    実行数を計算します
  • 2:12 - 2:15
    失敗かパスに関わらず全実行数を数えます
  • 2:15 - 2:20
    この補数は0と等しいか0より大きい値になります
  • 2:20 - 2:24
    実行数を数えます 各カテゴリについて行いましょう
  • 2:24 - 2:29
    0カテゴリに関しては
    戻り値が0だったかそうでなかったかをチェックします
  • 2:29 - 2:33
    そして0より大きいカテゴリでも同じことを行います
  • 2:33 - 2:40
    そして全関数と全カテゴリの
    5つの係数とその補数を計算します
  • 2:40 - 2:45
    覆面プログラムでどの関数の戻り値のカテゴリが
  • 2:45 - 2:49
    失敗との相関が最も強いかを見つけ出します
  • 2:49 - 2:54
    ぜひ統計をデバッグに使ってみてください
Title:
01ps-01 The Mystery Program
Team:
Udacity
Project:
CS259 - Software Debugging
Duration:
02:55

Japanese subtitles

Revisions