kostenloser Webspace werbefrei: lima-city


Wie funktionieren Unit Tests

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    Heyho

    Die Überschrift sagt eig alles: Wie funktionieren Unittests?
    Ich hab das jetzt gegooglt und gelesen nur entweder bin ich zu blöd für den Sachverhalt (was ich nicht hoffe), oder die erklären das tatsächlich alle so "unverstädnlich" für mich.
    Also die Grundidee ist soweit ich mitbekommen habe eine Klasse oder Funktion automatisch auf Bugs oder unerwartete Ergebnisse testen zu lassen. Nur wie erfasst man das alles? Meine eigene Idee wäre das alles zu Tokenizen und dann die Kommentare zu analysieren, was die jeweiligen Dinge machen sollen. Nur läuft das so? Geht das einfacher? Oder liege ich schon mit der Grundidee auf Eis?
    Ich bin irgendwie total verwirrt :-S

    Liebe Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Unittests beschreiben das Verhältnis von einer Eingabe zu einer Ausgabe.

    Beispielsweise erwarten man zu der Eingabe 4 an die Funktion Fakultät die Ausgabe 24. Das kann man dann als Unittest definieren:
    assert( fakultät( 4 ) == 24 );

    Wobei man hier einfache asserts benutzt. Für die jeweilige Programmiersprache kann es auch noch Unittesting-Frameworks geben, die das ganze noch etwas hübscher machen.

    Die generelle Vorgehensweise ist dann, dass man möglichst viele repräsentative Ausagen für jedes Modul und Funktion (oder anders gesagt: jede Unit) aufstellt und diese Aussagen in ein Programm zusammenfasst. Dieses Programm führt man dann regelmäßig aus. Wenn jetzt jemand was an der Fakultäts-Funktion ändert und dadurch entsteht ein neuer Bug, so gibt es hoffentlich mindestens einen Unittest, der dann nicht mehr funktioniert und man kann der Sache nachgehen.

    Beitrag zuletzt geändert: 14.6.2011 19:24:21 von bladehunter
  4. ggamee schrieb:
    Also die Grundidee ist soweit ich mitbekommen habe eine Klasse oder Funktion automatisch auf Bugs oder unerwartete Ergebnisse testen zu lassen. Nur wie erfasst man das alles? Meine eigene Idee wäre das alles zu Tokenizen und dann die Kommentare zu analysieren, was die jeweiligen Dinge machen sollen. Nur läuft das so?


    Das "automatisch" bezieht sich wohl eher darauf, dass Unit-Tests regelmäßig durch ein Buildsystem o.ä. ausgeführt werden können. Die eigentlichen Tests muss auch weiterhin ein "echter" Programmierer definieren und schreiben, ein Programm kann nicht wissen, was eine Methode tun soll.

    Daraus folgt auch direkt, dass die Unit-Tests nur so gut sein können wie der Programmierer, der sie schreibt. Es ist meiner Erfahrung nach relativ leicht, einen Unit-Test zu schreiben, der zwar auf den ersten Blick gut aussieht, aber trotzdem keinen Fehler finden wird. Genauso dürfte es oft vorkommen, dass nicht alle möglichen Situationen geprüft werden (können) - etwa, weil die Komplexität des zu testenden Codes es nicht zulässt oder weil der Entwickler schlicht irgendeine Möglichkeit übersehen hat.
  5. b*u

    ggamee schrieb:
    Also die Grundidee ist soweit ich mitbekommen habe eine Klasse oder Funktion automatisch auf Bugs oder unerwartete Ergebnisse testen zu lassen. Nur wie erfasst man das alles?


    Du musst dabei aber selbst die unerwarteten Ereignisse/Ergebnisse und Fehleranfälligkeiten definieren. Alles erfassen kann man natürlich nie, aber man sollte gewisse "Extremums" abdecken ;)
  6. Autor dieses Themas

    g****e

    Also quasi automatisierte Tests ob die Grundfunktion die ich haben will immernoch alles stichprobenhaltig läuft.
    Ok, vielen Dank :) das is ne gute Erklärung.

    Liebe Grüße
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!