Was machen Tester? [geschlossen]

7

Ich arbeite in einer Firma, wo die Entwickler QA die Arbeit der anderen Entwickler überprüfen, wie zB die Einhaltung von Coding-Standards, ob es funktioniert oder nicht.

Nun scheint das für uns sehr gut zu funktionieren, aber ich kann nicht umhin zu glauben, dass wir Entwicklungszeit auf etwas verschwenden, was ein engagierter Tester oder Tester tun könnte.

Das Problem ist, dass ich immer für diese Firma gearbeitet habe, also habe ich nie mit Testern gearbeitet, also weiß ich nicht, welche Funktion sie in einem Entwicklungsteam haben, außer der kilometerlangen Ansicht von "sie testen".

>

Wir neigen auch dazu graduierte Leute einzustellen, so dass jemand sie für einige Zeit durch all ihre Aufgaben führen müsste.

Zusammenfassend, was machen Tester in Ihrem Unternehmen und wie passen sie in Ihre Entwicklungs- und Freigabeprozesse?

    
Garry Shutler 08.02.2009, 12:56
quelle

12 Antworten

4

Eine gute QA-Abteilung wird mehrere Dinge tun:

  1. Schreiben Sie einen Testplan gemäß der funktionalen Spezifikation des Produkts. Dies hilft, die funktionale Spezifikation zu spülen und Bereiche zu finden, in denen sie verbessert / geändert werden müssen.
  2. Fehler im Produkt finden Dieses ist offensichtlich.
  3. Testen Sie die Benutzerfreundlichkeit des Produkts aus der Sicht eines Nicht-Entwicklers. Dieser geht weit über das Finden von Bugs hinaus - es bringt dir nichts, ein fehlerfreies Produkt zu haben, wenn niemand herausfinden kann, wie man das Ding benutzt.

Wie sie in den Prozess passen:

  1. Sobald das Entwicklungsteam der Ansicht ist, dass die funktionale Spezifikation vollständig ist, wird es dem QA-Team zur Verfügung gestellt, damit diese Testpläne erstellen kann.
  2. Wenn das Entwicklungsteam einen relativ stabilen Build mit einer angemessenen Menge an Funktionalität hat, kann es der QA gegeben werden, damit sie es sich ansehen kann. An diesem Punkt liegt der Fokus von QA nur darauf, sich mit der neuen Version vertraut zu machen und irgendwelche eklatanten Usability-Fehler aufzuzeigen, anstatt die Sache zu hämmern, um Fehler zu finden.
  3. Sobald die Entwickler sagen: "Okay, ich denke, wir sind bereit", startet QA die Bug-Finding-Mission.
  4. Entwickler und QA arbeiten daran, alle Probleme zu lösen. Fehler werden alle behoben, fallen gelassen oder auf zukünftige Versionen verschoben.
  5. QA hat das letzte Wort darüber, ob das Release freigegeben wird oder nicht

Beachten Sie, dass die obigen 3 und 4 sehr unterschiedlich sein können, je nachdem, ob Sie über ein neues Produkt oder eine Version eines bestehenden Produkts sprechen. Wenn Sie ein existierendes Produkt haben, können sehr viele Tests gleichzeitig mit der Entwicklung durchgeführt werden.

    
17 of 26 08.02.2009, 13:27
quelle
11

Ihre Arbeit ist schlicht und einfach. Brechen Sie die Anwendung. Du weißt immer, wenn du einen guten Tester hast, weil du immer ein bisschen genervt bist, wenn diese Person deinen Schreibtisch / Würfel betritt. Der Grund dafür ist, dass Sie wissen, dass, wenn der Tester in Ihrer allgemeinen Umgebung ist, sie etwas falsch mit dem gefunden haben, was Sie geschrieben haben. All die Ausreden beginnen sich in deinem Kopf zu häufen: "Nun, du benutzt es nicht richtig!", Etc., aber am Ende weißt du, dass der Tester recht hat und du gerade einen Fehler in deiner Programmierung gemacht hast .

Gute Tester können Fehler finden . Sie können wie ein Benutzer denken, um die Geschäftsregeln zu überprüfen, usw., aber sie verhalten sich auch wie ein Benutzer, wenn sie in ungewöhnliche Muster klicken, um die Anwendung zu brechen. Es mag so aussehen, als würden sie die Anwendung missbrauchen und sie auf eine Weise benutzen, die nicht dazu gedacht ist, benutzt zu werden, aber das ist ihre Aufgabe und deshalb werden sie als Tester bezahlt.

Sie wissen, dass Ihr Tester ausgetauscht werden muss, wenn er nichts falsch findet. Glauben Sie mir, in jedem komplexen System gibt es immer etwas falsch, und es ist die Aufgabe des Testers, es zu finden.

Vor diesem Hintergrund ist es äußerst wichtig, dedizierte Testpersonen zu verwenden, insbesondere wenn Sie mit einer Anwendung arbeiten, die über eine umfangreiche UI-Komponente verfügt.

    
David Morton 08.02.2009 13:05
quelle
9

Nach Davids Antwort lohnt sich ein guter Tester ihr Gewicht in Gold - und gute Kontrakt Tester können sehr teuer sein.

Ich habe vor einigen Jahren mit einem hervorragenden Tester zusammengearbeitet. Ich war der Tech-Lead zu der Zeit und er war der Fluch meines Lebens, aber sein Wert war unberechenbar.

Er war sehr organisiert und sehr intelligent. Er schrieb seine eigenen Testpläne, basierend auf einer begrenzten Dokumentation von Anforderungen und Funktionen. Meistens hat er den Antrag gestellt und aus seinem Verständnis des Geschäfts herausgearbeitet, was es tun sollte und wo es fehlte.

Seine Liebe zum Detail war einfach fantastisch. Alles, was er berichtete, war vollständig reproduzierbar, dokumentiert und enthielt nicht nur Fehlerberichte, sondern auch Vorschläge für alternatives Verhalten. Dies war natürlich sehr nützlich, da nicht alle Fehler zu einem Abbruch der Anwendung führen.

Er war auch flexibel genug, um zu erkennen, wo die Dinge hohe Priorität hatten, und (vorübergehend!) hörte auf, uns über die Dinge zu ärgern, für die wir keine Zeit hatten.

Also haben wir UI-Feedback, Bug-Reports, sogar Vorschläge, wo die Anforderungen missverstanden wurden.

Er arbeitete hart mit dem, was er fand, aber wir hatten eine starke Anerkennung für unser gemeinsames Ziel, nämlich ein qualitativ hochwertiges System. Wenn du da draußen bist, Nicholas, wünsche ich dir alles Gute.

Zum OP würde ich vorschlagen, dass Sie jemanden mit diesen Fähigkeiten suchen.

    
ChrisA 08.02.2009 13:32
quelle
3

Idealerweise sollten Tester von Anfang an in das Projekt einbezogen werden, damit sie die Testpläne formulieren können. Dies umfasst unter anderem das Erstellen von Testskripts. Tatsächlich geschriebene Testskripts sind wichtig für wiederholbare Tests (z. B. für Regressionstests neuer Releases). Neben dem Testen der Funktionalität werden die Pläne das Testen verschiedener Plattformen, das Testen der Benutzerfreundlichkeit und das Testen der Leistung umfassen.

Tester führen die Testpläne aus und suchen und melden Fehler mit genügend Details, um die Arbeit des Entwicklers bei der Behebung der Fehler zu minimieren. Dies bedeutet, dass Sie sich die Zeit nehmen müssen, genau herauszufinden, wie Sie Probleme reproduzieren können. Tester kosten im Allgemeinen weniger als Entwickler, also ist es für das Unternehmen besser, wenn die Tester dies tun, als wenn es den Entwicklern überlassen wird. Tester neigen dazu, auch besser darin zu sein, da sie nicht die Annahmen machen, die Entwickler machen.

Tester sollten sich nicht wirklich damit beschäftigen, die Einhaltung von Codierungsstandards zu überprüfen - dies wird eher automatisierten Tools überlassen. Tester müssen den Quellcode nicht sehen.

Wenn gute Tester in Vollzeit an einem Projekt arbeiten, werden sie schnell zu Experten für die Anforderungen (mehr als Entwickler, die nur an einem Teil des Systems arbeiten).

    
Dan Dyer 08.02.2009 13:34
quelle
2

Programmierer testen Code, Tester testen Anwendungen. Tester lesen die Spezifikation, denken an Szenarien, die Probleme verursachen könnten (was ist, wenn zwei Personen gleichzeitig vorgehen?) Usw.

Sie dokumentieren dann eine Reihe von Tests, probieren sie aus, melden das Ergebnis und so weiter.

    
Peter Morris 08.02.2009 13:06
quelle
2

Siehe Joels Top Fünf (falsche) Gründe, warum Sie keine Tester haben , um eine Beschreibung dessen zu erhalten, was Tester tun und warum sie gut für Softwareunternehmen sind.

    
Yuval F 08.02.2009 13:13
quelle
2

Entwickleraufgaben:

  • Von innen nach außen - konzentrieren Sie sich auf den Code
  • Behauptungen - Überprüfen Sie den Datenfluss und die Strukturen
  • Debugger - Code-Flow und Daten überprüfen
  • Komponententest - Überprüfen Sie jede Funktion
  • Integrationstest - verifiziere Subsysteme
  • Systemtest - verifiziere die Funktionalität

Tester Aufgaben:

  • Von außen herein - konzentrieren Sie sich auf Funktionen
  • Szenarien - überprüfen Sie reale Situationen
  • Globale Tests - verifizierbare Eingaben
  • Regressionstests - verifizieren, dass Fehler behoben sind
  • Code coverage - Testen des unberührten Codes
  • Kompatibilität - mit früheren Versionen
  • Auf der Suche nach Macken und Ecken
RoadWarrior 08.02.2009 14:13
quelle
1

Traditionell variiert in einem großen IT-Dienstleistungsunternehmen die Rolle eines Testers leicht mit der Art des verwendeten Entwicklungsprozesses. Herkömmliche Wasserfall- oder iterative Projekte neigen dazu, Tester zu involvieren, die Testpläne entwerfen, Testfälle schreiben und Anforderungen während dieses Prozesses klären, sie (sowohl manuell als auch automatisiert) ausführen und die App für Produktionsumzüge löschen. Sie testen auch andere Apps, die potentiell betroffen sein könnten. Zum größten Teil betrachten sie den Code nie, aber in einigen speziellen Fällen validieren sie Datenbankeinträge, insbesondere in Szenarien, in denen Batch-Jobs oder andere Legacy-Systeme beteiligt sind.

Agile Projekte hingegen führen zunehmend dazu, dass die Verantwortlichkeiten zwischen Tester und Entwickler verschwimmen. Mit Frameworks wie Rails oder Django hat der Entwickler eine viel bessere Sicht auf das "große Ganze" als je zuvor, so dass es im Allgemeinen keinen Sinn macht, ein großes, engagiertes, reines Testteam zu haben. Und mit einer fortwährenden Beta-Philosophie wird ein Großteil der Tests von tatsächlichen Endbenutzern durchgeführt. Ein eher schlankeres, entwicklungsstärkeres Testteam neigt dazu, Agile-Projekten zu helfen (zumindest innerhalb von Unternehmen). Unter anderem hilft es, wenn Tester Skripts erstellen können, um reguläre Testfälle zu automatisieren, anstatt sich auf teure Tools (wie Win / Loadrunner) verlassen zu müssen.

Im Durchschnitt ist die Motivation eines Testers niedriger als die der Entwickler. Zumindest in meiner Organisation wollen viele Tester "erwachsen werden", um zu Entwicklern zu werden, obwohl einige von ihnen verstehen, dass eine QA / Assurance-Beraterin eine Karriere an sich ist.

    
krishashok 08.02.2009 14:33
quelle
0

Sie sollten Leute einstellen, um die Tests zu machen.

Tester verwenden die Anwendung und melden Fehler, die sie finden. Wenn Sie eine Spezifikation haben, können sie die Anwendung testen, um Inkonsistenzen zu melden.

Keine Produktfreigabe kann Qualität haben, wenn sie nicht getestet wird.

    
luiscubal 08.02.2009 13:02
quelle
0

Tatsächlich habe ich erst vor kurzem erkannt, wie man einen schlechten Tester von einem guten Tester unterscheiden kann. Wenn die Aufgaben geschlossen sind, weil keine Fehler gefunden wurden, stürzt man eine Stunde später selbst ab, weil man das Gefühl hatte: "Es ist dumm, aber was passiert, wenn man diese Art von Eingabe macht?" und tat es, das ist ein gutes Zeichen, dass jemand (Tester) ihre Arbeit nicht gemacht hat.

Ich melde regelmäßig Fehler irgendwo in unserer Software und die ganze Zeit fiel ich wie "Das bin nicht ich, wer sollte das tun".

    
User 08.02.2009 13:30
quelle
0

Um einen besseren Überblick zu bekommen, empfehle ich Gerry Weinbergs Buch "Perfect Software: And Other Illusions to Testing" ( saniert) Amazon-Link ).

Es ist voll von ausgezeichneten Einsichten, die Sie dazu bringen werden, auf völlig neue Art und Weise über das Testen nachzudenken.

HTH

Prost,

Rob

    
Rob Wells 08.02.2009 13:44
quelle
0

Im Gegensatz zu Ihrem Szenario habe ich eng mit den Testern zusammengearbeitet. Ich finde sie sehr hilfreich für die Tatsache, dass sie gut verstehen, wo meine Software in den ganzen Plan der Dinge passt. Sie wissen besser über die Anwendung, mit der meine interagieren. Die Eingaben in dieser Hinsicht sind sehr wertvoll.

    
Prabhu. S 08.02.2009 13:46
quelle

Tags und Links