Frage

Wir sind in der Anfangsphase eines großen Projektes und haben beschlossen, dass irgendeine Form von automatisierten UI-Tests wahrscheinlich für uns nützlich sein wird, aber noch nicht genau geklärt, wie dies funktionieren wird ...

Das primäre Ziel ist es, eine grundlegende Installation und Ausführung von Durch den App zu automatisieren, so dass, wenn ein Entwickler einen großen Bruch verursacht (zB: App nicht installieren, Netzwerk nicht verbinden, Fenster werden nicht Anzeige usw.) die Tester müssen nicht ihre Zeit verschwenden (und genervt von) Installation und eine gebrochene Build Konfiguration

Ein sekundäres Ziel ist es Testern zu helfen, wenn mit sich wiederholende Aufgaben zu tun.

Meine Frage ist: Wer diese Art von Tests schaffen sollte? Die implizite Annahme in unserem Team war, dass die Tester wird es tun, aber alles, was ich im Netz gelesen habe, scheint immer zu implizieren, dass die Entwickler sie schaffen werden, als eine Art ‚erweiterte Unit-Test‘.

Einige Gedanken:

  • Die Entwickler in einer viel besseren Position zu sein scheinen, dies zu tun, da sie wissen IDs steuern, Klassen, usw., und haben ein viel besseres Bild davon, wie die App funktioniert

  • Die Tester haben den Vorteil, nicht zu wissen, wie die App funktioniert, und damit Tests produzieren kann, die viel sein können nützlich

  • Ich habe einige erste Skripte geschrieben mit IronRuby und White . Das hat wirklich gut funktioniert, und ist stark genug, um buchstäblich alles zu tun, aber dann müssen Sie in der Lage sein, Code zu schreiben, um die UI-Tests

  • schreiben
  • Alle der automatisierten UI-Test-Tools wir versucht haben (Testcomplete, etc.) scheinen unglaublich komplex und zerbrechlich zu sein, und während die Tester sie verwenden können, dauert es sie etwa 100-mal länger, und sie sind ständig läuft in "zufällige Komplexität" durch die UI-Test-Tools verursacht.

  • Unsere Tester kann nicht programmieren, und während sie viel schlau sind, alles, was ich komisch aussieht bekam, als ich, dass Tester vorgeschlagen potenziell einfachen Ruby-Skripte schreiben könnten (selbst sagte, obwohl Skripte ist über 100x einfacher zu lesen und schreiben als das verstümmelte Durcheinander von Tasten und Datagrids, die der Standard für die automatisierten UI-Test-Tools zu sein scheinen).

Ich würde wirklich über jedes Feedback von anderen schätzen, die UI-Automatisierung in einem Team von den beiden Entwicklern und Testern ausprobiert hat. Wer hat etwas, und hat es gut? Vielen Dank im Voraus!

Edit: Die betreffende Anwendung ist eine C # WPF "Rich Client" Anwendung, die mit einem Server verbindet WCF mit

War es hilfreich?

Lösung

Im Idealfall soll es wirklich QA sein, die das Schreiben von Tests am Ende. Das Problem mit einer programmatischen Lösung besteht darin, die Lernkurve in immer die QA Beteiligten bis zur Geschwindigkeit mit dem Werkzeug. Entwickler können sicherlich mit dieser Lernkurve helfen und den Prozess durch Mentoring helfen, aber es dauert noch Zeit und ist ein Hemmschuh für die Entwicklung.

Die Alternative ist ein einfaches GUI-Tool zu verwenden, die eine Sprache (und Datenskripten) unterstützt und ermöglichen QA-Skripte visuell zu bauen, in die feineren Details der Sprache einzutauchen nur wenn es wirklich notwendig - Entwicklung kann auch hier auch engagieren.

Die erfolgreichsten Versuche, die ich gesehen habe, haben auf jeden Fall mit diesem, aber diese Einrichtung ist der schwierige Teil. Selen hat gut funktioniert für einfache Web-Anwendungen und einfache Fäden durch die Anwendung. JMeter auch (für eine Skript-Web-Gespräche für Web-Services) hat gut funktioniert ... Eine andere Option, die das Test-Harnisch von in Haus gebaut ist - ein einfaches Werkzeug über die Spitze einer Skriptsprache (Groovy, Python, Ruby), die QA erlaubt stellen Testdaten in die Applikation entweder über eine GUI oder über Datendateien. Die Datendateien können einfache Eigenschaften Dateien sein, oder in komplexeren Fällen strukturiert (so etwas wie YAML oder auch Excel) Datendateien. Auf diese Weise können sie die grundlegenden Rauchversuche bauen, zu starten und später, dass die Tests in verschiedene Szenarios getrieben erweitern.

Schließlich ... Ich denke, Rich-Client-Anwendungen sind viel schwieriger, auf diese Weise zu testen, aber es hängt von der Art der Sprache und die Werkzeuge zur Verfügung, um Sie ...

Andere Tipps

Nach meiner Erfahrung Tester, die Arbeitsplätze für eine Gehaltserhöhung als Entwickler schalten codieren können.

Ich stimme mit Ihnen auf die automatisierten UI-Test-Tools. Jeder Ort, wo ich gearbeitet habe, das war reich genug WinRunner oder Loadrunner zu leisten, nicht das Personal leisten konnte, tatsächlich, es zu benutzen. Die Preise geändert haben können, aber damals waren diese in der hohen 5-stelligen zu niedrigen 6-stelligen Preisschilder (man denke an den Preis eines Starters nach Hause). Die Produkte waren schwer zu bedienen und wurden in der Regel in einem verschlossenen Schrank deinstalliert gehalten, weil jede Angst hat zu brechen sie in Schwierigkeiten zu geraten.

Ich arbeitete mehr als 7 Jahre als Anwendungsentwickler, bevor ich schließlich zum Testen und Testautomatisierung geschaltet. Testen ist viel schwieriger als Codierung und jeder Automatisierungs Entwickler, sollen Tests Fähigkeiten erfolgreich sein will meistern.

Vor einiger Zeit Ich habe meine Gedanken auf Geschicklichkeit Matrizen in ein paar Blog-Posts.

Wenn Sie interessiert sind zu diskutieren:

http://automation-beyond.com/ 2009/05/28 / qa-Automation-Skill-Matrizen /

Danke.

Ich denke, die die Entwickler schreiben die Tests der am Einsatz sein wird. Auf diese Weise können Sie erhalten während Ihres dev Zyklus, nicht nur am Ende „Bruch Kontrolle“. Wenn Sie Nightly Builds automatisiert haben, können Sie Fehler fangen und beheben, wenn sie klein sind, bevor sie wachsen in großen, mittleren, Fleisch fressenden Insekten.

Was ist mit den Testern die Tests vorschlägt, und die Entwickler es tatsächlich zu schreiben?

Ich glaube, es hängt weitgehend zunächst auf die Werkzeuge, die Sie verwenden.

Unser Unternehmen nutzt derzeit Selen (Wir sind ein Java-Shop).

Die Selenium IDE (die Aktionen in Firefox zeichnet) funktioniert OK, aber die Entwickler müssen manuell korrigieren Fehler es gegen unsere Webapps macht, so ist es nicht wirklich geeignet für QA Tests zu schreiben mit.

Eine Sache, die ich in der Vergangenheit versucht (mit einigem Erfolg), waren Bibliotheksfunktionen als Wrapper für Selenium Funktionen zu schreiben. Sie lesen als einfaches Englisch:

selenium.clickButton("Button Text")

... aber hinter den Kulissen für die richtige Layout und Tags auf der Schaltfläche überprüft, hat eine ID etc.

Leider benötigt dies eine Menge eingerichtet einfaches Schreiben von Tests zu ermöglichen.

Ich wurde vor kurzem bekannt, ein Tool namens Twist (von Thoughtworks, gebaut auf die Eclipse-Engine), die ein Wrapper für Selen ist, schlicht englischer Stil Tests ermöglicht geschrieben werden. Ich hoffe, dies zu liefern, um die Tester in der Lage sein, die einfache Behauptungen in einfachem Englisch schreiben kann!

Es erstellt automatisch Stubs für neue Aussagen zu, so dass die Tester der Tests schreiben können, und sie an den Entwickler weitergeben, wenn sie neuen Code benötigen.

Ich habe die vernünftigste Option gefunden ist genug Spezifikationen aufweisen, so dass die QA Leute den Test Stub kann, im Grunde herausfinden, was sie an jedem ‚screen‘ testen wollen oder auf jeder Komponente und Stummel diejenigen aus. Die Stubs sollte so benannt werden, dass sie sehr beschreibend sind, was sie zu testen. Dies bietet auch eine Möglichkeit, funktionale Anforderungen zu kristallisieren. In der Tat sind die Anforderungen in dieser Art und Weise tun, besonders einfach und helfen nicht-technische Menschen wirklich obwohl Prozess durch das schlammige Wasser ihrer eigene Arbeit.

Die Stummel kann über eine Kombination von QA / dev Menschen ausgefüllt werden. So können Sie BILLIG QA Menschen trainieren, wie Tests zu schreiben, und sie es in der Regel schlürfen, wie sie ihre Arbeitsplatzsicherheit fördert.

Ich denke, es ist vor allem auf der Spielstärke des Testteam abhängt, die Werkzeuge zur Verfügung, und die Teamkultur in Bezug auf, wie Entwickler und Tester miteinander in Wechselwirkung treten. Meine aktuelle Situation ist, dass wir ein relativ technisches Testteam haben. Alle Tester erwartete Entwicklung Fähigkeiten haben. In unserem Fall schreiben Tester UI Automation. Wenn Ihr Testteam sie werden nicht für den Erfolg gründen nicht diese Fähigkeiten haben. In diesem Fall kann es sein, am besten für Entwickler Ihnen UI Automation zu schreiben.

Andere Faktoren zu berücksichtigen:

Was andere Prüfaufgaben auf der Platte Tester sind? Wer sind Ihre Kunden und was sind ihre Erwartungen in Bezug auf Qualität? Was ist das Qualifikationsniveau des Entwicklungsteams und was ist ihre Bereitschaft, auf die Testautomatisierung Arbeit zu nehmen?

-Ron

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top