Show Menu
Cheatography

Kurze Beschreibung von Testarten der Softwareentwicklung

Property based Testing

Grundk­onzept

Beim Property (im Sinne von Eigens­chaft des zu prüfenden Algori­thmus oder Moduls) basierten Testen wird der Testge­gen­stand (Modul, Klasse, Methode, Funktion, ...) mit zufälligen Eingan­gsw­erten oder Parametern aufgerufen und geprüft ob die result­ier­enden Ausgab­ewerte oder Rückga­bewerte den Eigens­chaften des Testge­gen­standes entspr­echen.

Beispiel.
Eine Methode zur Zerlegung einer Zahl in Primfa­ktoren wird mit zufälligen Werten aufger­ufen. In der Assertion wird die Gegeno­per­ation genutzt um die Korrek­theit zu prüfen. Es werden also alle ermitt­elten Primfa­ktoren nachei­nander multip­liziert und dann geschaut ob die ursprü­ngliche Zahl wieder heraus­kommt.

Die meisten Tools bieten Möglic­hkeiten die Menge der Testwerte einzus­chr­änken. Beispi­els­weise nur ganze Zahlen als Eingab­ewerte für die Primfa­kto­ren­zer­legung zu nutzen.

Die Werteb­ereiche welche bei der Einsch­ränkung der Testwerte ausgeg­renzt wurde muss durch andere Testve­rfahren abgesi­chert werden. Beispi­els­weise könnte ein Floating Parameter zu einer Exception führen, deren Werfen durch einen EBT (Example based Test) abgeprüft wird.
 

Mutati­onstest - Wie gut sind meine Unittests?

Grundk­onzept

Generell lassen sich viele Unittests schreiben. Die Erfahrung zeigt, dass einige davon immer grün sind, manche am Monatsende oder an speziellen Tagen im Jahr rot werden, manche bei Infras­tru­ktu­rpr­oblemen den build brechen.

Auch zeigt sich im Laufe der Zeit, dass die Anwendung erfolg­reich betrieben wird und dennoch kleinere Fehler enthält und das obwohl die Kodeco­verage bei über 95% lag.

Der Grund ist, dass der Kode trotz hoher Kodeab­deckung nicht vollst­ändig vor Fehlern beim Refact­oring oder bei der Einarb­eitung neuer Fachli­chkeit, geschützt ist.

Hier kommen die Mutati­ons­tests ins Spiel. Sie führen die normale Testsuite aus und merken sich deren Ergebn­isse. Dann modifi­zieren sie den produk­tiven Kode und schauen ob ein Test rot geworden ist und diese Mutation entdeckt hat. Falls nicht ist eine Lücke in der Testab­deckung gefunden wurden.

Vorteil:

* Bestimmung der Testqu­alität möglich

Nachteil:

* Die Laufzeit der Tests verdoppelt sich mindes­tens, da jetzt die Suite mindestens zwei mal, wenn nicht noch mehrmals durchl­aufen werden lassen muss.
       
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          ISTQB Test Automation Engineering Cheat Sheet
          Cypress.io Cheat Sheet

          More Cheat Sheets by FunThomas424242

          Linux - Minihilfe Cheat Sheet