1. #1
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard Welche Grenzen bei Testfällen für automatisierte Tests setzen?

    Hi,

    ich möchte endlich damit beginnen, das vorgeschobene Thema von automatisierten Komponententests anzugehen.

    Womit ich mich schwer tue sind die Testbedingungen. Was auf jeden Fall drin sein muss, ist der Positiv-Testfall bzw. die positiv-Testfälle. Sagen wir ich habe ein Datenmodell, dass einen Blogeintrag widerspriegelt. Der Einfachheit halber hat es nur drei Felder:

    - Titel: Text mit max. 100 Zeichen
    - Inhalt: Text mit max. 5000 Zeichen
    - Kategorie: Auswahl aus einer Liste von Kategorien
    - Veröffentlichungsdatum: Gültiges Datum in der Zukunft

    Diese Komponente möchte ich nun testen. Der erste Fall wäre also klar eine 0815 gültige Eingabe: Titel < 100 Zeichen, Inhalt < 5000 Zeichen, Auswahl einer gültigen Kategorie, Veröffentlichungsdatum beispielsweise am Folgetag. Anschließend teste ich, ob der Artikel erfolgreich abgespeichert wird. Wie tief gehe ich aber nun in die Maxime "Ich will alle Möglichkeiten abgedeckt haben"? (Dass dies nicht möglich ist, ist mir klar, aber man will natürlich möglichst vieles testen). Alle möglichen Fälle wären ja hier schon etliche Hundert. Ich denke, man muss hier abwägen, was sinnvoll ist: Tests ob der Titel mit 20, 21, ... 100 Zeichen funktioniert sind denke ich wenig sinnvoll. Es ist sehr unwahrscheinlich, dass ein bestimmter Fehler genau bei 52 Zeichen auftritt.

    Aber ein Test mit den verschiedenen Kategorien wiederum würde ich nicht unsinnig finden. Schließlich könnte es sein, dass z.B. die Komponente zum laden der Kategorie einen Fehler aufweist, und eine nicht vorhandene anzeigt. Wenn ich nur mit Kategorie A teste und Kategorie C nicht vorhanden ist, werde ich dieses Problem durch Tests ja nicht finden. Also sollte für jede existierende Kategorie ein Testdurchlauf gemacht werden (wobei hier ja nicht mehrere Tests nötig sind, das kann ein Test erledigen, der eben für jede Kategorie 1x durchläuft.

    Noch mehr Kopfzerbrechen bereiten mir die Negativ-Fälle. Hier gibt es ja eine fast unbegrenzte Anzahl an fällen. Alleine schon das Datum: Man könnte ein anderes Format (17/01/2017, 17.01.2017, 17.1.2017, 17.01.17 und so weiter) eingeben. Dann noch ausländische Formatierungen, z.B. 01.17.2016 in den USA. Und so weiter. Lässt man das eher bleiben und vertraut darauf, dass man simplen Code nutzt: z.B. Datum beim . Splitten, Fehlermeldung wenn kein Punkt drin ist, anschließend in jeden Element prüfen ob 2 Chars drin sind etc. Das ist ja recht einfache Logik, und im Gegensatz zu einem Regulären Ausdruck eigentlich unmöglich, dass 17/01/2017 zwar als ungültiges Format erkannt wird, aber 17.1.2017 nicht.

    Wenn ich eine Priorisierung anhand des möglichen Schadens mache, müsste ich ja ohnehin solche Tests relativ weit hinten anstellen. Und stattdessen lieber testen, ob zum Beispiel eingeschleuster Javascript-Code in Titel/Inhalt korrekt entfernt wird, oder XSS Lücken entstehen. Wobei man hier aber auch einige Testfälle machen kann. Es gibt verschiedene Methoden wie z.B. Klartext, URL-Kodiert, mit Nullbytes und so weiter. Um wirklich sicher zu sein, dass die Validierung funktioniert und kein (erheblicher) Sicherheitsschaden dadurch entsteht, müsste ich das alles durchnehmen.

    Das bringt mich dann auch schon zu meinem nächsten Gedanken: Generische Tests. Gerade so Fälle wie das Entfernen von HTML kommen ja häufiger vor. Hier finde ich es Sinnvoll, ein Toolchain von verbreiteten Tests anzulegen. Ich definiere also einmalig einen Test, der verschiedene Möglichkeiten HTML bzw. Javascript zu injecten durchprobiert. Möchte ich jetzt mein Blog-Model testen, muss ich lediglich den generischen Test mit meinem Titel/Inhalt Attribut ausführen. Genau wie beim Datum, hier könnte eine Liste gebräuchlicher Falscheingaben gespeichert und getestet werden. Ich sehe nichts was dagegen spricht, im Gegenteil. Ihr etwa?


  2. The Following User Says Thank You to DMW007 For This Useful Post:

    sam3nx (04.06.2023)

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 16.05.2022, 19:11
  2. Biete Hilfe für CM- und Admin-Tests
    Von ookana im Forum Knuddels Allgemein
    Antworten: 0
    Letzter Beitrag: 15.06.2016, 19:49
  3. Pro Asyl fordert Öffnung der EU-Grenzen
    Von Ektoplazm im Forum RealLife
    Antworten: 6
    Letzter Beitrag: 02.11.2014, 10:45
  4. [Vorschlag] Automatisierte Spenden
    Von Snees im Forum Feedback
    Antworten: 5
    Letzter Beitrag: 07.07.2013, 20:00
  5. (F) Umgebungsvariablen setzen
    Von Herox im Forum Internet und Technik
    Antworten: 1
    Letzter Beitrag: 20.01.2012, 17:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.