Erste Schritte beim Testen, Debuggen und Behandeln von Ausnahmen
- 7 Minuten
Jeder Softwareentwickler muss beim Entwickeln ihres Codes einige Tests durchführen und debuggen, und die Ausnahmebehandlung ist dabei oft erforderlich. Aber wie stehen diese drei Aufgaben im Zusammenhang und wann sollten sie implementiert werden?
Testen, Debuggen und Ausnahmebehandlung
Codedebugging ist sowohl mit der Codeentwicklung als auch mit Tests eindeutig verknüpft. Schließlich nehmen Sie während der Entwicklung der Anwendung Korrekturen an der Codelogik vor, und Sie führen den Code regelmäßig aus, um zu überprüfen, ob die Codesyntax und -logik korrekt sind. Aber ist das Aktualisieren der Codelogik während des Entwicklungsprozesses wirklich das, was mit Debuggen gemeint ist? Und bedeutet die Überprüfung, ob Ihr Code kompiliert und läuft, tatsächlich das, was mit Tests gemeint ist? Nein, nicht wirklich.
Wie bezieht sich die Ausnahmebehandlung auf die Codeentwicklung und -tests? Was bedeutet "Ausnahmebehandlung" tatsächlich und wird von einem Entwickler erwartet, dass er es tut? Bei der C#-Entwicklung werden die Fehler, die während der Anwendungslaufzeit auftreten (im Vergleich zu Buildfehlern, die während des Buildprozesses auftreten) als Ausnahmen bezeichnet, und "Ausnahmebehandlung" ist der Prozess, mit dem ein Entwickler diese Laufzeit exceptions innerhalb seines Codes verwaltet.
Möglicherweise fragen Sie sich, wie sich die Ausnahmebehandlung auf die Codeentwicklung und -tests bezieht. Was bedeutet "Ausnahmebehandlung" tatsächlich, und wird von einem Entwickler erwartet, dass er sie durchführt? Bei der C#-Entwicklung werden die Fehler, die während der Ausführung der Anwendung auftreten, als Ausnahmen bezeichnet. Der Begriff "Ausnahmebehandlung" bezieht sich auf den Prozess, den ein Entwickler zum Verwalten dieser Laufzeitausnahmen innerhalb seines Codes verwendet. Fehler, die während des Buildvorgangs auftreten, werden als Fehler bezeichnet und sind nicht Teil des Ausnahmebehandlungsprozesses.
In den folgenden Abschnitten wird die Rolle des Entwicklers beim Testen, Debuggen und Ausnahmebehandlung beschrieben.
Verantwortlichkeiten für Softwaretests und Entwickler
Der Softwareentwicklungsprozess kann viele Tests beinhalten. Tatsächlich hat Softwaretests eine eigene spezielle Disziplin, und Softwaretester spielen eine wichtige Rolle bei der Entwicklung großer Anwendungen. Es gibt sogar Ansätze für den Softwareentwicklungsprozess, die auf Tests basieren, z. B. testgesteuerte Entwicklung.
Softwaretestkategorien können unter den Testtypen , den Ansätzen für Tests oder einer Kombination beider Kategorien organisiert werden. Eine Möglichkeit zum Kategorisieren der Testtypen ist das Aufteilen von Tests in funktionale und nicht funktionsfreie Tests. Die funktionalen und nichtfunktionalen Kategorien enthalten jeweils Unterkategorien von Tests. Funktions- und Nichtfunktionstests können z. B. in die folgenden Unterkategorien unterteilt werden:
- Funktionstests - Komponententests - Integrationstests - Systemtests - Akzeptanztests
- Nichtfunktionelle Tests - Sicherheitstests - Leistungstests - Usability-Tests - Kompatibilitätstests
Obwohl sich die meisten Entwickler wahrscheinlich nicht als Tester erwägen, wird ein gewisses Maß an Tests erwartet, bevor ein Entwickler seine Arbeit losgibt. Wenn Entwicklern eine formale Rolle im Testprozess zugewiesen wird, handelt es sich häufig um Komponententests.
Hinweis
Da Softwaretests ein so großes Thema sind und häufig von einer separaten Jobrolle durchgeführt werden, werden formale Ansätze für Softwaretests in diesem Modul nicht behandelt.
Codedebugging und Entwickleraufgaben
Codedebugging ist ein Prozess, mit dem Entwickler ein Problem isolieren und eine oder mehrere Möglichkeiten zum Beheben identifizieren. Das Problem könnte entweder mit der Codelogik oder einer Ausnahme zusammenhängen. In jedem Fall arbeiten Sie daran, Ihren Code zu debuggen, wenn er nicht so funktioniert, wie Sie es wünschen. Im Allgemeinen ist der Begriff Debugging für Laufzeitprobleme reserviert, die nicht einfach zu isolieren sind. Daher gilt das Beheben von Syntaxproblemen wie einem fehlenden ";" am Ende einer Code-Anweisung normalerweise nicht als Debuggen.
Sehen Sie sich den folgenden Beispielcode an:
string[] students = new string[] {"Sophia", "Nicolas", "Zahirah", "Jeong"};
int studentCount = students.Length;
Console.WriteLine("The final name is: " + students[studentCount]);
Das Codebeispiel soll Folgendes erreichen:
- Deklarieren Sie ein Zeichenfolgenarray mit dem Namen
students. DasstudentsArray enthält die Namen der Kursteilnehmer. - Deklarieren Sie eine ganze Zahl mit dem Namen
studentCount. Der Code verwendet dieLengthMethode des Arrays, um einen Wert zuzuweisenstudentCount. - Drucken Sie den Namen des endgültigen Kursteilnehmers in die Konsole. Der Code verwendet \
studentCountum auf den endgültigen Namen im \studentsArray zuzugreifen, und er verwendet die \Console.WriteLine()Methode, um die Informationen auf der Konsole auszugeben.
Auf den ersten Blick scheint alles in Ordnung zu sein. Dieser Code generiert jedoch eine Ausnahme, wenn versucht wird, den Namen des Kursteilnehmers in die Konsole zu drucken. Der Entwickler hat vergessen, dass Arrays nullbasiert sind. **
Auf den letzten Namen im Array sollte mit students[studentCount - 1] zugegriffen werden.
Codedebugging ist definitiv eine Entwicklerverantwortung. In diesem Codebeispiel haben Sie das Problem möglicherweise sofort erkannt. In komplexeren Codierungsszenarien ist es jedoch nicht immer einfach, ein Problem zu finden. Keine Sorge, es gibt Tools und Ansätze, die Sie verwenden können, um Probleme nachzuverfolgen, die schwer zu finden sind.
Ausnahmebehandlung und Entwicklerverantwortung
Wie Sie zuvor gelesen haben, werden Fehler, die während der Anwendungslaufzeit auftreten, als Ausnahmen bezeichnet. Wenn eine Anwendung eine Ausnahme generiert und diese Ausnahme nicht im Code verwaltet wird, kann dies dazu führen, dass die Anwendung heruntergefahren wird.
Die Behandlung von Ausnahmen ist definitiv eine Verantwortung des Entwicklers. C# bietet Ihnen eine Möglichkeit, den Code, von dem Sie wissen, dass er möglicherweise eine Ausnahme auslösen könnte, mit "try" zu versehen und eine Möglichkeit zum "catch" von auftretenden Ausnahmen.
Zusammenfassung
Nachstehend finden Sie nochmals die wichtigsten Punkte aus dieser Lerneinheit:
- Tests, Debugging und Ausnahmebehandlung sind alle wichtigen Aufgaben für Softwareentwickler.
- Tests können in funktionale und nicht funktionsfreie Tests kategorisiert werden, und Entwickler werden voraussichtlich einige Teststufen durchführen.
- Das Codedebugging ist der Prozess des Isolierens von Problemen und das Identifizieren von Möglichkeiten, sie zu beheben, und es liegt in der Verantwortung des Entwicklers.
- Die Ausnahmebehandlung ist der Prozess der Verwaltung von Fehlern, die während der Laufzeit auftreten, und Entwickler sind für die Behandlung von Ausnahmen mithilfe von "try" und "catch" Anweisungen in ihrem Code verantwortlich.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?