Test design



  • was ich mich schon immer gefragt habe :

    wie schreibt man eigentlich vernünftig tests :

    problem 1 :
    meistens schreibt man für ein kleines Modul seines Projekts
    eine kleine Testfunktion, und testet dann für irgendwelche
    (Random)-Extrem-werte
    Diese kleine Tests gehen aber oft verloren
    (weil man nicht jeden kleinen Test behalten will)

    Ich hätte gerne ein Framework, wo man immer weiter tests einbauen kann,
    sowas wie grosse asserts, wo man anforderungen an seine Module stellen kann,

    viele packages haben ja auch sowas wie
    "make tests"

    ich habe mich auch mal daran gemacht, aber ohne framework endet das
    in ziemlich viel arbeit
    (fast eine cpp pro klasse, welche die klasse durchtestet)
    und das ufert irgendwie aus, so das ich das irgendwann abgebrochen habe



  • in dem refactoring buch wars so beschrieben das jede klasse eine methode namens "test" beinhaltet - und das automatisierte test ruft dann "einfach" stets die test funktion auf sofern vorhanden



  • Testdesign ist ein äußerst umfangreiches Thema. Will man das vernünftig machen muss man sich erst einmal einpaar gute Bücher durchlesen und Gedanken machen, was man überhaupt will.

    Es gibt eine riesige Palette an Testarten. Last-/Stresstests, Portabilitätstests, Usabilitytests, Systemtests, Regressionstests, uswusw...

    Willst Du einen automatisierten Test machen, gibt es verschiedene Tools. Winrunner war mal ein relativ weit verbreitetes, aber ich glaube das ist nicht mehr so aktuell. Diese "kleinen Module" die Du meinst, sind sogenannte "Stubs" und dienen dazu noch nicht fertigen Code zu ersetzen oder zu "simulieren".

    Grundästzlich gilt aber, dass Entwickler, aufgrund mangelnder Fehlertoleranz ggü. dem eigenen Code, die schlechtesten Tester sind.

    Ein gutes Buch, das auch für die ISTQB Certified Tester als Grundlage gilt, ist dieses hier: http://www.amazon.de/Basiswissen-Softwaretest-Weiterbildung-Foundation-ISTQB-Standard/dp/3898643581/ref=sr_1_1?ie=UTF8&s=books&qid=1214209668&sr=1-1

    Mir ist zwar fast klar, dass Du nicht im großen Stil eine Qualitätssicherung Deiner Programme betreiben willst, aber wenn Du wirklich testen willst, wie es "im Feld" üblich ist, solltest Du Dir dieses Buch zumindest einmal durchlesen. Musst es ja nicht kaufen, das gibt's sicherlich in jeder Bücherei da weit verbreitet.

    Gruß,
    PuerNoctis

    EDIT: Zu dieser Sache mit der "Test"-Methode die von den Tools aufgerufen wird: Das ist z.T. völlig unterschiedlich. Viele Testtools generieren eigenen Code der im Source mit eingebunden wird um verschiedene Module zu testen, andere wiederum brauche besagte Schnittstellen. Bei GUI-Tests werden die Handles von Buttons und Windows gespeichert und nach und nach "abgeklickt", usw. Das kommt hier alles auf das verwendete Tool an.

    Silktest ist glaube ich ein aktuelleres Test-Automatisierungstool

    EDIT 2: Die "(Random)-Extrem-werte" sind die sogenannte Äquivalenzklassen-Methode. Hier eine recht gute Erklärung zu Bildung von Äquivalenzklassen und deren Anwendung: http://www.st.cs.uni-sb.de/edu/se/2005/funktionstest.pdf


Log in to reply