Testing ist ein wichtiger Bestandteil beim Schreiben von Software - jeder Art von Software. Egal, ob Sie eine kleine Routine zum Sortieren von Zahlen schreiben oder ein System zum Starten von Raumschiffen zum Mars.
Früher war es so, dass Entwickler ihren Code schrieben und dann manuell ausführten - oft in einem Debugger -, um zu überprüfen, ob er das tat, was sie erwarteten. Dies war eine schmerzhafte und mühsame Methode, um ihren Code zu testen. Es war nicht nur mühsam und schmerzhaft - es war nicht wiederholbar. Das bedeutete, dass jedes Mal, wenn Sie eine Änderung vorgenommen haben, Sie die Tests manuell wiederholen mussten und hoffen mussten, dass Sie nichts vergessen haben oder Dinge etwas anders gemacht haben. Die Qualität litt - und es gab viel Trauer und Tränen.
Schließlich realisierten die Entwickler, dass sie ein separates Programm schreiben konnten, das ihren Code ausführen konnte, indem es ihn durch die Bedingungen führte, die sie erwarteten, und diesen Code die Ergebnisse überprüfen ließen. Dinge fingen an, sich zu verbessern. Dieser Testansatz wurde oft als Testharness bezeichnet.
Das Schreiben von Testharnessen half, aber es gab viel wiederkehrenden Code - es gibt eine Menge Infrastruktur in Bezug auf das Ausführen und Überprüfen von Tests. Einige wirklich kluge Entwickler sagten jedoch: "Wir werden nicht immer wieder Boilerplate-Code schreiben... wir werden eine Bibliothek erstellen, die es für uns erledigt." Und so wurden Unit-Test-Tools wie JUnit und NUnit (und viele andere) geboren.
Diese Bibliotheken (und Tools) helfen Ihnen, Ihre Tests zu strukturieren, zu organisieren und auszuführen. Sie bieten praktische Methoden zum Überprüfen von Bedingungen, zum Auffangen und Verfolgen von Ausnahmen und zum Melden, welche Tests bestanden und welche nicht. Schließlich konnten sich die Entwickler auf den wichtigen Teil konzentrieren: das Schreiben der Tests und der Überprüfungslogik, die dazu beitragen würde, zu versichern, dass der von ihnen geschriebene Code funktioniert. Diese Tests waren wiederholbar. Sie konnten als Teil eines automatisierten Build -Prozesses gestartet werden. Sie konnten von Generation zu Generation weitergegeben und von anderen ergänzt werden, wenn neue Fehlerpunkte gefunden und behoben wurden. Sie könnten Monate und Jahre nach dem Schreiben des Originalcodes vom ursprünglichen Entwickler erneut ausgeführt werden, um sicherzustellen, dass alles noch funktioniert.
Wenn Sie vorhaben, ein erfolgreicher Softwareentwickler auf irgendeiner Ebene in jeder Organisation zu sein (auch wenn es nur Sie sind) - sollten Sie sich über - und Umarmen von Unit-Tests lernen.
Hier sind einige Ressourcen, die Ihnen auf Ihrem Weg helfen können: