Wie sollte ich einen Prozess für Front-End-Tests erstellen?

Wir haben ein ähnliches Produkt wie Photoshop und hatten in der Testphase viele Probleme.

Mitten im Projekt haben wir begonnen, Agile Framework zu verwenden.

Wir müssen menschliche manuelle Tests verwenden, um visuelle Effekte zu testen (z. B. die Opazitätsfunktion des Hintergrundbilds).

Unit-Tests sind nicht ausreichend und gelten nicht für die visuelle Seite (Frontend) der Anwendung.

Jetzt verwenden wir Selenium für UI-Tests, aber es reicht nicht aus, da Tester Screenshots überprüfen müssen, die mit Selenium aufgenommen wurden. Und es gibt mehr als 500 Screenshots für jeden Freigabetest.

Wir haben manuelle Tests durchgeführt, aber viele Fälle übersehen (z. B.: Wenn der Z-Index-Wert der Schaltfläche größer als andere Elemente ist, funktioniert die Hintergrundopazität der Schaltfläche nicht). Also hatte ich eine Frage: "Wie testen sie die Funktionen von Photoshop in Adobe?".

Wie sollte ich eine sehr komplizierte Benutzeroberfläche testen?

Ich habe meine enge Abstimmung zurückgezogen, da Sie Ihre Frage bearbeitet haben, um eine bestimmte Frage zu stellen. Ich denke jedoch, dass es zu weit gefasst ist. Im Wesentlichen fragen Sie: "Wie testet man ein System?" und das ist ein sehr weites thema. Welche Teststrategien haben Sie in Betracht gezogen und verworfen und warum? Welche Schwierigkeiten erwarten Sie beim Aufbau eines Testbetriebs in Ihrer Organisation? Usw.
Die Aspekte des Projektmanagements beim Testen sind hier Thema, aber die Fragen auf Engineering-Ebene sollten stattdessen auf programmers.stackexchange.com gestellt werden. Ich stimme dafür, dies zu schließen, da es im Kontext des Projektmanagements nicht wirklich gefragt wird, obwohl dies sicherlich bei einer umfangreichen Bearbeitung der Fall sein könnte. Wenn Ihre Frage zurückgestellt wird, können Sie sie gerne bearbeiten, bis sie zum Thema dieser Website gehört, oder die Frage markieren, damit ein Moderator sie migrieren kann.
Wie ist Ihr Entwickler-zu-Tester-Verhältnis?
es sind 5 ( 5x Entwickler, x Tester )

Antworten (2)

Wie Marv in seinen Kommentaren erwähnt, ist dies eine sehr weit gefasste Frage, aber ich werde versuchen, ein paar Ideen vorzubringen, die hilfreich sein könnten (angesichts der Breite der Frage bin ich sicher, dass sie nicht umfassend sein werden).

Testen Sie in erster Linie, während Sie gehen. Warten Sie nicht bis zu einer Testphase, wenn Sie irgendwie helfen können. Das gilt wirklich für fast jedes Projekt. Der Testzeitraum gerät ins Stocken und es bleibt nicht genug Zeit zum Testen.

Fordern Sie Ihre Entwickler und Tester auf, Tests auf niedrigerer Ebene zu identifizieren, um viele Ihrer vielfältigen Funktionen zu validieren – insbesondere auf der Ebene der Integrationstests. Wenn ich beispielsweise einen Bereich aufhellen oder abdunkeln möchte, sollte ich in der Lage sein, eine Reihe automatisierter Testfälle zu erstellen, um zu überprüfen, ob die richtigen Berechnungen durchgeführt und Änderungen an der Farbe der Pixel vorgenommen wurden. Ich könnte etwas wie Fitnesse verwenden, um eine große Reihe von Tests zu erstellen, die diese Funktionalität unterhalb der UI-Schicht gründlich testen.

Natürlich muss diese Arbeit auch auf der Benutzeroberfläche validiert werden, aber wenn Sie überprüft haben, dass alle Berechnungen unter der Haube funktionieren, müssen Sie nur testen, ob die Daten ordnungsgemäß in die Benutzeroberfläche gelangen, was weitaus weniger Tests erfordert. Fordern Sie Ihr Team erneut heraus, automatisierte Wege zu finden, um dies zu testen. Zum Beispiel hat ein Team, mit dem ich zusammengearbeitet habe, kürzlich den Bildabgleich verwendet, um sicherzustellen, dass Sie bei einem bestimmten Ausgangsbild und der Eingabe bestimmter Parameter das erwartete Ergebnisbild erhalten.

Diese Art von Arbeit braucht Zeit, fügt aber auch viel Stabilität hinzu. Wenn Sie während des gesamten Projekts Zeit investieren, um in diese automatisierten Regressionstests zu investieren, wird ein erheblicher Teil dessen, was Sie jetzt manuell testen, an einem Wochenende in einem automatisierten Test ausgeführt, und Ihre manuellen Tests können sich auf die äußerst komplexen und dynamischen Szenarien mit viel konzentrieren Zeit dafür aufzuwenden.

Wie oben erwähnt, testen Sie, während Sie gehen:

Verwenden Sie ein agiles Framework, das iteratives Testen fördert?

Was ist Ihr aktueller Testprozess? Lieferprozess? Fördern Ihre Prozesse das Testen, sobald der Code eingecheckt ist? Vor?

Investieren Sie in Testautomatisierung, um gängige Szenarien abzudecken?

Haben Sie sich angesehen, was getestet werden muss, sollte und könnte, um festzustellen, welche Tests im Hinblick auf den Geschäftswert am wertvollsten sind?

Veröffentlichen Sie häufig eine experimentelle oder Alpha-Version Ihres Produkts für Ihre Benutzerbasis? Wenn Ihre Ressourcen begrenzt sind, ist es manchmal möglich, "kostenlose" Tests von der Community der Endbenutzer zu erhalten.

Wenn Sie eine der oben genannten Fragen mit „Nein“ beantworten, haben Sie viele Möglichkeiten, Ihre Testfähigkeit zu verbessern.