Wie notwendig ist es für Tester, zusätzlich zu Black-Box-Tests White-Box-Tests durchzuführen? Als Entwickler sehe ich Wert darin, dass eine QS-orientierte Person meinen Code durchläuft und nach Schwachstellen sucht. Wenn ein nicht-technischer Tester jedoch gründlich und methodisch genug ist, kann er die Anwendung gut abdecken.
White-Box-Tests können wichtige Testfälle aufdecken, die bei Betrachtung der Anwendung nur aus Anwendersicht nicht offensichtlich sind. Ausschließliche Black-Box-Tests können jedoch weniger Zeit in Anspruch nehmen und die Anzahl der Personen, die in der Lage sind, die Aufgabe auszuführen, erheblich erhöhen . Außerdem sollte der Entwickler eine nicht triviale Anzahl von White-Box-Tests durchführen, bevor er jemals zum Tester gelangt. Stimmt das?
Antworten:
White-Box- und Black-Box-Tests sind zwei verschiedene Fähigkeiten - jemand, der sich mit dem einen auskennt, muss sich nicht unbedingt mit dem anderen auskennen.
Vieles, was die Qualitätssicherung tut, werden Black-Box-Tests sein - um sicherzustellen, dass das System "wie angekündigt" funktioniert, und in dieser Hinsicht müssen sie nicht wissen, wie das System funktioniert, um gute Arbeit zu leisten. Tatsächlich kann die Kenntnis des Codes dazu führen, dass sie in die gleichen Fallen geraten, in denen der unachtsame Entwickler seine eigenen Tests durchführt. Es ist weitaus besser, dass sie keine Vorurteile darüber haben, wie der Entwickler glaubt, dass das System funktionieren soll.
Das heißt nicht, dass es keine White-Box-Tests geben sollte - was (teilweise) das Testen von Entwicklereinheiten ist. Eine gute Reihe von Komponententests sollte darin bestehen, gültige Eingaben, ungültige Eingaben und Edge-Case-Eingaben zu testen. Ich denke jedoch nicht, dass es für die Qualitätssicherung immer notwendig ist, dies zu tun - wenn auch aus keinem anderen Grund, als es wirklich in der Verantwortung des Entwicklers liegt.
Wie SnOfus in seinen Kommentaren hervorhebt, können gute White-Box-Tests jedoch äußerst nützlich sein.
quelle
Ich hatte viel Glück in meinem Team mit Testcode-Überprüfungen. Tester neigen dazu, Code genauso zu betrachten wie Anwendungen - sie fragen sich, "wie würde dieser Code nicht funktionieren" und finden häufig Probleme, die Programmierer bei der Codeüberprüfung nicht finden.
Für eine längere Antwort habe ich dieses Papier geschrieben .
quelle
Absolut
Wie ich als Antwort auf @ChrisF sagte: QA ist da, um sicherzustellen, dass der Produktionscode immer funktioniert . Ohne erschöpfend zu sein, bedeutet dies, zu wissen, welche Plattformen erwartet werden, wie der Status des bereitgestellten Computers sein wird, wie die Leistungsanforderungen sind und sicher zu sein, dass jede Linie erfolgreich sein wird.
IME, ein gutes QA-Team wird mehr Code schreiben, lesen und überprüfen als das Entwicklerteam.
Wenn Ihre Feature-Teams und (großen) Bugfix-Teams keinen QS-Entwickler haben, der daran arbeitet, die API, den Workflow, die Sicherheit und alle anderen Aspekte des Features / Fix zu entwerfen, dann verpassen Sie wirklich eine Stärke dass Ihre QS-Abteilung Ihr Produkt während der Entwicklung unterstützen kann .
quelle
Es ist überhaupt nicht notwendig. Anstatt eine QA-orientierte Person Ihren Code durchgehen zu lassen, empfehle ich, dass ein Entwickler Ihren Code durchläuft. Wenn Sie während der Entwicklung Ihres Codes Komponententests schreiben, ist es nicht die beste Nutzung der QA-Zeit, wenn eine QS-orientierte Person Ihren Code durchläuft.
Die QS-Person sollte sich nicht darauf konzentrieren, wie der Code geschrieben wurde, sondern darauf, WAS der Code tut.
Die QS-Person sollte sich auf keine Funktionstests konzentrieren und die Anforderungen für diese Tests nutzen. Am Ende werden Unit-Tests und ein QS-Funktionstester, der Black-Box-Tests durchführt, die beste Zeit für jeden sein.
quelle