German 字幕

← cs259 unit01 01 l Übersicht des Kurses

埋め込みコードを取得する
6言語

Showing Revision 3 created 10/30/2012 by Omar Kohl.

  1. Hallo mein Name ist Andreas Zeller und ich bin ein Forscher an der Universität Saarland in Deutschland.
  2. Ich erforsche große Programme und warum sie fehlschlagen.
  3. Ich habe am automatischen Debugging und an der Erforschung der Entwicklungsgeschichte von Programmen gearbeitet.
  4. Ich habe mit Firmen wie Microsoft, SAP oder Google gearbeitet,
  5. habe deren Bugs analysiert, gesucht was falsche gelaufen war, und mir fiel auf,
  6. dass es fast kein Lehrmaterial für Debugging und wie man Programme debuggen soll gibt.
  7. Heute werde ich mit einem Kurs beginnen wie man systematisch,
  8. effektiv und in vielen Fällen sogar automatisch debuggen kann. Viel Spaß!
  9. Wilkommen im Udacity Debugging Kurs.
  10. Das Ziel dieses Kurses ist einen systematischen Ansatz zum debugging zu lehren.
  11. Und wir werden einige automatischen Werkzeuge ausprobieren die das debugging für dich übernehmen.
  12. Wir werden erforschen wie Debuggers funktionieren.
  13. Besonders die Wissenschaftliche Methode des Debuggings, bei der
  14. durch eine Serie von Experimenten die Hypothese schrittweise verfeinert wird,
  15. bis wir eine Diagnose haben warum das Programm fehlgeschlagen hat.
  16. Zusätzlich werden wir unser eigenen interaktiven Python-Debugger schreiben.
  17. In der nächsten Einheit werde ich euch eins der
  18. mächtigsten Debug Werkzeuge das je erfunden wurde zeigen: Assertions (wörtlich: Behauptung, Beteuerung)
  19. Assertions sind Anweisungen im Programm die automatisch verifizieren
  20. ob der Status des Programms immer noch richtig ist.
  21. Das bedeutet, dass während das Programm läuft, beobachtet der Computer andauernd
  22. das Programm um zu sehen ob ein Bug aufgetreten ist.
  23. Dies erlaubt dir sehr schnell und effektiv zu finden wo ein Bug zuerst aufgetaucht ist.
  24. Zusätzlich werden wir ein Werkzeug bauen, dass Assertions aus Programm-Ausführungen ableitet.
  25. In der dritten Einheit werde ich euch eine Technik namens Delta-Debugging vorstellen,
  26. die Probleme automatisch vereinfacht.
  27. Hier ist zum Beispiel diese 900-Zeilen HTML Datei die ein Programm, dass die Datei verarbeitet zum Absturz bringt.
  28. Mit Delta-Debugging könnt ihr dies auf nur 8 Zeichen reduzieren,
  29. die den Bug genauso verursachen, und all dies automatisch.
  30. In der nächsten Einheit werde ich euch zeigen wie man rausfindet wo ein spezifischer Fehler herkam.
  31. Eine Programm-Ausführung kann man als eine Serie von Zuständen sehen.
  32. Wir werden Techniken ausprobieren die helfen Fehler
  33. durch die gesamte Ausführung zu verfolgen.
  34. Zusätzlich werden wir ein Werkzeug bauen, dass solche Ursache-Wirkung Effekte automatisch isoliert.
  35. In der Einheit 5 werden wir uns damit beschäftigen Fehler zu reproduzieren.
  36. Wir werden die unterschiedlichen Input-Quellen für eure Programme ansehen
  37. und wir werden diskutieren wie man sie aufzeichen und abspielen kann so dass man einen Fehler
  38. der "in der Natur" auftaucht zuverlässig reproduzieren kann.
  39. Ausserdem werden wir statistisches Debugging, dass Daten sammelt
  40. und uns sagt welche Teile des Programms am wahrscheinlichsten mit einem Fehler zusammenhängen.
  41. In der Einheit 6 werden wir sehen wie man Information
  42. in einer Bug-Datenbank suchen kann, und werden Datenbanken verändern um herauszufinden
  43. wo Fehler in deinem Programm in der Vergangenheit waren, wo sie sich ansammeln,
  44. und welche Programmteile daher am fehleranfälligsten in der Zukunft sein werden.
  45. Und erneut ist dies eine vollkommen automatische Techik.
  46. Bis jetzt hattest du nie Spaß mit Debugging weil es einfach das Leben aus dir heraussaugt.
  47. Das Ziel dieses Kurses ist den größten Teil des Debuggin-Aufwands von deinen Schultern zu nehmen
  48. weil dein PC das meiste selbst erledigen kann.
  49. So ist dein Geist frei für kreativere Dinge als Debugging.