3 Stimmen

Bewährte Praktiken beim Testen einer Website

In unserem QA-Team führen wir bei jedem Commit der Entwickler eine Reihe von automatisierten Tests durch. Da es täglich eine ganze Reihe solcher Commits gibt und kein Entwickler länger als ein paar Minuten auf eine Rückmeldung warten möchte, sind wir auf 5 Minuten Testzeit beschränkt. In diesen 5 Minuten wollen wir so viele Tests wie möglich durchführen.

Wir haben festgestellt, dass Selen-Tests für unsere Bedürfnisse am besten geeignet sind, vor allem weil sie zuverlässig sind. Wenn ein Selenium-Test einen JS-Fehler meldet, ist man zu 95 % sicher, dass es sich um einen echten Fehler handelt. (Dies ist eine äußerst wichtige Eigenschaft, wie wir aus unserer Erfahrung mit HTMLUnit gelernt haben). Die Ausführung von Selenium-Tests ist jedoch langsam und schwerfällig (wir unterhalten eine kleine CPU-Farm, damit wir viele Selenium-Server und viele Skripte asynchron ausführen können).

Kürzlich haben wir einen neuen Ansatz vorgeschlagen - verwenden Sie Selenium nur für die Orte, wo Sie es WIRKLICH brauchen: Popups, Ajax, JS im Allgemeinen, An anderen Stellen verwenden Sie einen "Textual Browser". Zum Beispiel, wenn Sie überprüfen möchten, dass der folgende Link "funktioniert":

<a href="stackoverflow.com/somewhere'> link </a>

Sie brauchen eigentlich kein Selen. Sie können eine GET-Anfrage an die Seite durchführen und dann regex/parse die Seite und xpath/. verwenden. Unterm Strich. Sie brauchen keine JS-Engine . Dies ist eindeutig ein viel leichterer und schnellerer Test.

Wir hatten viel Erfolg mit diesem Ansatz und sind auf die folgenden Links gestoßen:

<a href="stackoverflow.com/somewhere-1' onclick="foo()" > link 1 </a>
<a href="stackoverflow.com/somewhere-2' onclick="foo()" > link 2 </a>
... many more such links ...

In diesem Fall müssen Sie also nicht unbedingt ein Selenium-Skript ausführen, das jeden einzelnen Link prüft. Klicken Sie einfach auf einen von ihnen mit Selenium (so testen Sie die Funktionalität der JS-Funktion foo() ) und verwenden Sie dann den Textbrowser, um die href s der anderen Links.

Meine Frage ist, wo sollten wir Ihrer Meinung nach die Grenze ziehen? und ich würde mich freuen, Ihre Meinungen zu hören - gibt es "Textual Browser" Tools da draußen (wir haben nicht mit WebDriver gearbeitet)?

1voto

Nat Punkte 14020

Für mich klingt es so, als ob die Grenze zwischen dem, was Sie tun, und dem, was ich von Ihren Entwicklern erwarten würde, ein wenig verschwommen ist.

Meiner Meinung nach sollten die Entwickler Unit-Tests für ihre foo() Funktion. TDD in Javascript ist ein bisschen wenig für die Werkzeugunterstützung, aber etwas, das passieren sollte.

Wenn die Funktionen Unit-Tests sind, dann Selenium wird der Ort, um mehr gegen die Anforderungen des Benutzers zu testen, anstatt auf der Ebene der Einheit des Codes.

Allerdings sind die Interaktionen zwischen QA- und Entwicklungsteams gesellschaftlich ziemlich kompliziert, und es kann schwierig sein, eine Einigung auf diesen Ansatz zu erzielen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X