Return to Video

03-41 Actual Cause

  • 0:00 - 0:04
    原因の一般概念は誤解されやすいものです
  • 0:04 - 0:08
    窓が割れたことを考えた結果
    原因はボールだと言いました
  • 0:08 - 0:11
    ですが原因が窓のメーカという可能性もあります
  • 0:11 - 0:15
    もしその窓メーカがこの窓を作っていなかったら
  • 0:15 - 0:17
    窓は割れなかったかもしれません
  • 0:17 - 0:22
    もし建築業者が
    この窓が付いたこの家を建てていなかったら
  • 0:22 - 0:24
    窓は割れなかったかもしれません
  • 0:24 - 0:27
    1つの結果に複数の原因があることがあります
  • 0:27 - 0:30
    先ほどの定義によるとこの原因の全てが有効なのです
  • 0:30 - 0:33
    ここで原因の概念が役立ちます
  • 0:33 - 0:39
    実際の原因の仮定が最小限で
    変更も最小限であっても結果が変わります
  • 0:39 - 0:44
    解説してきた原因を考えると窓を除けば
  • 0:44 - 0:48
    窓を割ったボールはほとんど変わりません
  • 0:48 - 0:53
    窓を生産しない窓メーカは大きな違いを生みます
  • 0:53 - 0:57
    なぜなら窓が1つない家ができるからです
  • 0:57 - 0:59
    長い時間の間に違いが出てきます
  • 0:59 - 1:02
    家の一部が濡れてしまうかもしれませんし
  • 1:02 - 1:05
    天候によって寒かったり暑かったりします
  • 1:05 - 1:09
    もし建設業者が家を建てなかったら
    変化がさらに大きくなります
  • 1:09 - 1:12
    そのため変化を起こす実際の原因を知りたいのです
  • 1:12 - 1:17
    ここではそれは間違いなくボールです
  • 1:17 - 1:20
    デバッグに関しては仮定が最小限で変更も最小限
  • 1:20 - 1:24
    それでも効果を発揮する原因を見つけましょう
  • 1:24 - 1:29
    差分デバッグを使えば一般原因から始まって
  • 1:29 - 1:34
    入力全体が実際の原因を再現します
  • 1:34 - 1:37
    関連している入力のサブセットです
  • 1:37 - 1:41
    では小テストです
    GNUコンパイラを呼び出したらクラッシュしました
  • 1:41 - 1:44
    次のうちどれが不具合の一般原因ですか?
  • 1:44 - 1:49
    それは私? 私がいなければ
    呼び出すこともなくクラッシュも起こりません
  • 1:49 - 1:53
    またはGNUプロジェクトの創設者
    リチャード・ストールマン?
  • 1:53 - 1:57
    ストールマンがいなければ
    GNUコンパイラもありませんしクラッシュもしません
  • 1:57 - 2:03
    それとも酸素? 酸素がなければ
    リチャード・ストールマンはいませんし私もいません
  • 2:03 - 2:08
    コンパイラもありませんしクラッシュもありません
    この世界もありませんしコンピュータもありません
  • 2:08 - 2:13
    電気もありません
    そして最後はコンパイラのバグ?
  • 2:13 - 2:15
    なぜならバグがなければクラッシュもないからです
    複数回答可能です
タイトル:
03-41 Actual Cause
Video Language:
English
Team:
Udacity
プロジェクト:
CS259 - Software Debugging
Duration:
02:18

Japanese subtitles

改訂 Compare revisions