Eignung des Funktionstests für Probleme mit vielen miteinander verbundenen Eingängen

  • Ich habe gelesen, dass Funktionstests nicht geeignet sind, wenn es viele miteinander verbundene Eingaben gibt. Ist mein Verständnis richtig, dass z. Das folgende Programm wäre mit Funktionstests (Testfällen) wirklich schwer zu testen:

    Fahrzeugkonfigurator mit z. 20 Felder mit jeweils 20 Auswahlmöglichkeiten, die 400 mögliche Kombinationen ergeben.

    Ich würde sagen, niemand würde 400 Testfälle dafür schreiben. Aber während dies immer noch seine Funktionalität testet, nennen wir es immer noch Funktionstest, richtig? Aber ist es nicht tatsächlich ein risikobasierter Ansatz, wenn nur einige Kombinationen getestet werden?

    Zusätzliche Frage: Funktioniert das explorative Testen? Ich würde sagen, dass es ist, aber es testet nicht gegen irgendein Dokument.

    19 June 2017
    alecxePietross
3 answers
  • Ich lebe dieses Szenario.

    Die Software meines Arbeitgebers hat nördlich von 1000 Konfigurationsflags, einige davon mit geringfügigen Auswirkungen und andere mit der Fähigkeit, das Systemverhalten dramatisch zu verändern. Sie unterstützen die Definition von 15 verschiedenen Verkaufsarten mit jeweils unterschiedlichen Betriebsregeln, 8 Steuerdefinitionen (von denen jede in einer von vier Konfigurationen definiert werden kann) und mehreren Verkaufsschnittstellen.

    Da es buchstäblich unmöglich ist, alle möglichen Kombinationen zu testen, verwenden wir viel Automatisierung und unsere Abdeckung beträgt im Moment ungefähr 20% des Systems - aber 20% sind spezifisch zielte auf die Konfigurationen und Schnittstellen ab, die die meisten unserer Kunden am häufigsten verwenden.

    Aus diesem Grund gibt es nur sehr wenige Fehler, die zu unseren Automatisierungspaketen hinzugefügt werden können. Die auftretenden Fehler sind normalerweise Dinge, die nicht ohne lächerlichen Aufwand automatisiert werden können (ein bestimmtes Stück Hardware spielt nicht gut mit der Software, ist ein typisches Beispiel) oder es lohnt sich einfach nicht zu automatisieren (es gibt mehrere Stunden Konfiguration zum Durchführen eines 1-minütigen Tests, bei dem ein Kunde verwendet wird, der niemals ein Upgrade durchführen möchte.

    Soweit explorative Tests durchgeführt werden, ist sie funktionsfähig. Aber es lohnt sich nicht, sich mit der Terminologie auseinanderzusetzen. In diesem Beispiel untersucht ein intelligenter Tester eine halb zufällige Auswahl der möglichen Kombinationen, bevor er auf mögliche Bruchpunkte abzielt: Können sie das Auto so konfigurieren, dass es ein 2-Sitzer mit 4 Türen ist? 6 Zylinder elektronisch? Und so weiter. Oft werden sie während des Testens dokumentiert und verwenden ihre Dokumentation, um die Funktionsdokumentation für die Funktion zu erweitern.

    Es ist zu beachten, dass das mit jeder Art von Test verbundene Etikett stark kontextabhängig und eins ist Die Funktionsprüfung des Testers ist eine explorative oder risikobasierte Prüfung eines anderen. Solange Sie mit einer Aufzeichnung enden, was getestet wurde, warum und was die r

    12 July 2012
    Chris Bunch
  • Dies scheint eher eine philosophische als eine praktische Frage zu sein. Die Verwendung des Begriffs "Funktionsprüfung" ist nicht besonders wichtig. was wichtiger ist, was Sie tun und warum Sie es tun.

    Ja, was Sie beschrieben haben, ist ein risikobasierter Ansatz, aber die gesamte Testpraxis ist ein Ansatz zur Risikominimierung. Die Tatsache, dass wir nicht alles testen, bedeutet nicht, dass wir keine bestimmte Art von Tests durchführen. Es gibt immer einen größeren Kontext, aus dem wir selektiv abtasten.

    11 July 2012
    rjohnston
  • Das hängt wirklich von der endgültigen Ausgabe und Struktur der Felder ab. Wenn die Back-End-Logik für die Felder alle gleich ist, wäre das Testen jedes Felds und jeder Kombination eine Zeitverschwendung. Es gibt 20 20 (104.857.600.000.000.000.000.000.000.000) Permutationen für 20 Objekte in 20 Objekten, nicht die 400, die Sie vorgeschlagen haben.

    Wenn die Kombination von Feldern eindeutige Ergebnisse liefert und diese Ergebnisse überprüft werden müssen, ist die Erstellung eines automatisierten Tests der richtige Weg.

    Ihre gewünschten Ergebnisse sollten diese Entscheidung bestimmen. Es besteht immer ein Risiko, etwas in der Qualitätssicherung zu "übergeben", wenn Sie es nicht betrachtet haben. Wenn die Backend-Logik jedoch dieselbe ist und mit anderen Kombinationen getestet wurde, ist dieses Risiko viel geringer als bei einem Abschnitt der Anwendung, der bereits ausgeführt wurde Nulltest durchgeführt.

    11 July 2012
    rjohnston