Grundlegendes Testproblem

Einführung


Guten Tag, Einwohner von Chabrowsk. Hier löste ich eine Testaufgabe für die QA Lead-Stelle für ein Fintech-Unternehmen. Die erste Aufgabe, einen Testplan mit einer vollständigen Checkliste und Beispielen für Testfälle zur Überprüfung eines Wasserkochers zu erstellen, ist trivial gelöst:



Der zweite Teil stellte sich jedoch als Frage heraus: „Gibt es Probleme, die allen Testern gemeinsam sind und die effizientere Arbeit beeinträchtigen?“.


Das erste, was mir in den Sinn kam: all die mehr oder weniger auffälligen Probleme aufzulisten, auf die ich beim Testen gestoßen bin, kleine Dinge auszusortieren, den Rest zu verallgemeinern. Er erkannte jedoch schnell, dass die induktive Methode eine Frage beantworten würde, die sich nicht auf „alle“, sondern bestenfalls nur auf die „Mehrheit“ der Tester bezog. Deshalb habe ich mich entschlossen, mich deduktiv von der anderen Seite zu nähern, und genau das ist passiert.


Definitionen


Das erste, was ich normalerweise mache, wenn ich eine neue Aufgabe löse, ist zu versuchen, zu verstehen, worum es geht, und dafür muss man die Bedeutung der Wörter verstehen, die es darstellt. Die zu verstehenden Schlüsselwörter lauten wie folgt:


  • das Problem
  • Tester
  • Testerarbeit
  • Testerleistung

Wenden Sie sich an Wikipedia und gesunden Menschenverstand:
Das Problem (dr. Griechisch πρόβλημα) im weiteren Sinne ist eine komplexe theoretische oder praktische Frage, die untersucht und gelöst werden muss; in der Wissenschaft - eine widersprüchliche Situation, die in Form gegensätzlicher Positionen bei der Erklärung von Phänomenen, Objekten, Prozessen wirkt und eine angemessene Theorie erfordert, um sie zu lösen; Im Leben ist das Problem so formuliert, dass die Leute verstehen: "Ich weiß was, ich weiß nicht wie", das heißt, wir wissen, was empfangen werden muss, aber es ist nicht bekannt, wie es geht. Kommt von spät lat problēma aus dem Griechischen πρόβλημα "nach vorne geworfen, vorgesetzt"; von προβάλλω “vorwärts werfen, vor dich gestellt; Schuld. "


Tatsächlich macht „Problem“ = „irgendetwas, mit dem man sich befassen muss“ nicht viel Sinn.
Der Tester ist ein Spezialist (wir werden nicht in Typen unterteilen, da wir an allen Testern interessiert sind), der am Testen einer Komponente oder eines Systems teilnimmt. Das Ergebnis ist:
Die Arbeit des Testers besteht aus einer Reihe von Aktivitäten im Zusammenhang mit dem Testen.
Effizienz (lat. Effectivus ) - das Verhältnis zwischen dem erzielten Ergebnis und den verwendeten Ressourcen ( ISO 9000 : 2015).
Ein Ergebnis ist eine Folge einer Kette (Sequenz) von Aktionen (insgesamt) oder Ereignissen, die qualitativ oder quantitativ ausgedrückt werden. Mögliche Ergebnisse sind Vorteil, Unannehmlichkeiten, Gewinn, Verlust, Wert und Sieg.
Wie beim „Problem“ macht es wenig Sinn: etwas, das durch die Arbeit entstanden ist.
Ressource - eine quantitativ gemessene Fähigkeit, jede Aktivität einer Person oder von Personen auszuführen; Bedingungen, die es ermöglichen, bestimmte Transformationen zu verwenden, um das gewünschte Ergebnis zu erzielen. Ein Tester ist eine Person, und gemäß der Theorie der lebenswichtigen Ressourcen ist jede Person Eigentümer von vier Wirtschaftsgütern:
Bargeld (Einkommen) - eine erneuerbare Ressource;
Energie (Vitalität) - eine teilweise erneuerbare Ressource;
Zeit - eine feste und grundsätzlich nicht erneuerbare Ressource;
Wissen (Information) - eine erneuerbare Ressource, die Teil des Humankapitals ist und wachsen und zusammenbrechen kann [1] .


Ich möchte darauf hinweisen, dass die Definition der Wirksamkeit in unserem Fall nicht ganz richtig ist, da die Effizienz umso geringer ist, je mehr Wissen wir verwenden. Daher würde ich Effizienz als „das Verhältnis zwischen dem erzielten Ergebnis und den aufgewendeten Ressourcen“ neu definieren. Dann stimmt alles: Wissen bei der Arbeit wird nicht verschwendet, sondern reduziert die Kosten der einzigen grundsätzlich nicht erneuerbaren Ressource des Testers - seiner Zeit.


Lösung


Wir suchen daher nach globalen Problemen von Testern, die die Effektivität ihrer Arbeit verschlechtern.
Die wichtigste Ressource, die für die Arbeit des Testers aufgewendet wird, ist seine Zeit (der Rest kann auf die eine oder andere Weise zu ihm gebracht werden). Damit wir über die korrekte Berechnung der Effizienz sprechen können, müssen wir das Ergebnis zeitlich festlegen.
Betrachten Sie dazu ein System, dessen Lebensfähigkeit der Tester mit seiner Arbeit bietet. Ein solches System ist ein Projekt, dessen Team einen Tester umfasst. Der Projektlebenszyklus kann grob durch den folgenden Algorithmus dargestellt werden:


  1. Arbeiten Sie mit Anforderungen
  2. Bildung technischer Spezifikationen
  3. Entwicklung
  4. Testen
  5. Freigabe in die Produktion
  6. Support (gehe zu S.1)

Darüber hinaus kann das gesamte Projekt rekursiv in Teilprojekte (Features) mit demselben Lebenszyklus unterteilt werden.
Aus Sicht des Projekts ist die Effektivität seiner Umsetzung umso größer, je weniger Zeit dafür aufgewendet wird.
So kommen wir zur Bestimmung der maximal möglichen Effektivität des Testers aus Sicht des Projekts - dies ist der Status des Projekts, wenn die Testzeit Null ist. Ein gemeinsames Problem für alle Tester ist die Unfähigkeit, diese Zeit zu erreichen.


Wie gehe ich damit um?


Die Schlussfolgerungen liegen auf der Hand und werden seit langem von vielen verwendet:


  1. Entwicklung und Test sollten fast gleichzeitig beginnen und enden (dies wird normalerweise von der QS- Abteilung durchgeführt). Die ideale Option ist, wenn alle entwickelten Funktionen zum Zeitpunkt ihrer Fertigstellung bereits durch Autotests abgedeckt sind, die in Regressionstests (und wenn möglich vor dem Festschreiben) mit einem CI organisiert sind .
  2. Je mehr Funktionen im Projekt vorhanden sind (je komplizierter es ist), desto mehr Zeit müssen Sie darauf verwenden, zu überprüfen, ob die neue Funktionalität die alte nicht beschädigt hat. Je komplexer das Projekt ist, desto mehr Automatisierung der Regressionstests ist erforderlich.
  3. Jedes Mal, wenn wir einen Fehler in der Produktion überspringen und der Benutzer ihn findet, müssen wir ab Schritt 1 (Arbeiten mit Anforderungen, in diesem Fall Benutzer) zusätzliche Zeit für den Projektlebenszyklus aufwenden. Da die Gründe für das Fehlen eines Fehlers im Allgemeinen unbekannt sind, haben wir nur eine Möglichkeit zur Optimierung: Jeder von Benutzern gefundene Fehler sollte in Regressionstests einbezogen werden, um sicherzustellen, dass er nicht erneut angezeigt wird.

Source: https://habr.com/ru/post/de470806/


All Articles