Return to Video

06-03 What You Can Do

  • 0:00 - 0:05
    これで私たちは
    完璧なデバッグを行えるようになりました
  • 0:05 - 0:08
    ではどうすればバグを防げるでしょうか?
  • 0:08 - 0:11
    それに関するアドバイスがいくつかあります
  • 0:11 - 0:15
    まず要求条件を正確に把握することです
  • 0:15 - 0:23
    何を行うべきで何を行わなくてよいか
    正確に把握するようにしましょう
  • 0:23 - 0:31
    つまり正確な要求条件が分かれば
    あるべき事象から不具合を見つけることができます
  • 0:31 - 0:35
    ブライアン・カーニハンの有名な言葉があります
  • 0:35 - 0:40
    "仕様がなければバグも起こらず驚きだけが存在する"
  • 0:40 - 0:44
    つまりもし仕様が分からないのであれば
    デバッグする必要もないと
  • 0:44 - 0:47
    考えることができます
  • 0:47 - 0:52
    残念なことに
    驚きも同じようにデバッグする必要があります
  • 0:52 - 0:55
    ただし驚きのデバッグは難しいですよ
  • 0:55 - 0:59
    驚かせないようにする方法が分からないからです
  • 0:59 - 1:03
    正確性を高め自動化を進めることが私のアドバイスです
  • 1:03 - 1:07
    あなたの目の前に巨大なプログラムがあるとしましょう
  • 1:07 - 1:11
    そしてあなたはできるだけ多くのバグを見つけたいと
    考えています
  • 1:11 - 1:18
    もちろん開発者に必要条件の読み取りやレビュー
    そしてテストしてもらうこともできます
  • 1:18 - 1:25
    しかし開発者の時間というものは常に貴重な資源です
  • 1:25 - 1:29
    つまり開発者に頼むことは
    非常に困難で時間もありません
  • 1:29 - 1:32
    とにかく自分で作業するしかないのです
  • 1:32 - 1:38
    このような作業を自動化できれば
    資源はさほど問題にはなりません
  • 1:38 - 1:43
    チェックを行うコンピュータを
    好きなだけ持つことができるからです
  • 1:43 - 1:49
    これがコントラクト、アサーション、
    仕様の形式といった
  • 1:49 - 1:52
    自動的な検証が可能なテクニックにつながります
  • 1:52 - 1:56
    もちろん自動化されたテストも行えます
  • 1:56 - 2:00
    次のステップは複雑性を減らすことです
  • 2:00 - 2:03
    プログラム構造の複雑性が高ければ高いほど
  • 2:03 - 2:08
    プログラムの一部が他に影響を与えるケースが増え
  • 2:08 - 2:11
    エラーが広がりやすくなります
  • 2:11 - 2:19
    またプログラムの複雑性が高ければ高いほど
    エラーが起きる可能性が高まります
  • 2:19 - 2:22
    このような場合にデバッグが困難になるのです
  • 2:22 - 2:25
    次のステップはアサーションの設定です
  • 2:25 - 2:31
    アサーションはエラーの原因となるプログラム
    またはプログラム状態の大部分を
  • 2:31 - 2:34
    取り除きます
  • 2:34 - 2:41
    アサーションを設定すればするほど
    エラー原因がどこにあるのかを解明するために
  • 2:41 - 2:44
    状態や条件文を検証する必要性が減少します
  • 2:44 - 2:47
    次は早期にそして頻繁にテストすることです
  • 2:47 - 2:52
    テストするのが早ければ早いほど
    仕様が正確になります
  • 2:52 - 2:56
    テストを行えば行っただけ
    多くのエラーを見つけられるようになります
  • 2:56 - 3:02
    さらに頻繁にテストを行えば
    成功したテストの履歴を基にして
  • 3:02 - 3:08
    失敗の原因を見つけることができるようになります
  • 3:08 - 3:13
    次に自分でコードをレビューする
    または同僚にコードをレビューさせることです
  • 3:13 - 3:17
    他人にあなたのコードを見てもらうことで
  • 3:17 - 3:25
    生産性、品質、プロジェクトの安定性が
    大いに高まることが繰り返し証明されています
  • 3:25 - 3:31
    次のステップはプロジェクトの問題履歴の分析です
  • 3:31 - 3:38
    過去にどのコンポーネントに
    問題が数多くあったのかを調べるのです
  • 3:38 - 3:45
    過去に問題のあったコンポーネントを
    まず重点的に調べる必要があるのは明らかですね
  • 3:45 - 3:48
    それで品質が改善されます
  • 3:48 - 3:53
    履歴、共通の特徴、共通の原因を分析し
  • 3:53 - 3:56
    必要に応じて開発プロセスを修正してください
  • 3:56 - 3:59
    最後は自分のミスから学ぶことです
  • 3:59 - 4:02
    あなたが作ったバグはすべて不要なバグです
  • 4:02 - 4:08
    可能な限り迅速にバグを検出できるよう
    開発プロセスを改善しましょう
  • 4:08 - 600:00
    バグを発生させたら
    同じバグを二度と発生させないようにしてください
Title:
06-03 What You Can Do
Video Language:
English
Team:
Udacity
Project:
CS259 - Software Debugging
Duration:
04:15

Japanese subtitles

Revisions Compare revisions