2009-01-22 23 views
13

Welches Verhältnis von [Senior] -Entwicklern zu Testern sehen die Leute am besten?Was ist ein gutes Verhältnis von Entwicklern zu Testern?

Offensichtlich hängt dies zum Teil vom Entwicklungs-/Wartungsdurchsatz ab, aber gibt es eine Faustregel, aus der ein neues Unternehmen/Projekt arbeiten könnte?

Würden Sie auch "reine" Tester verwenden, oder würden Sie Tests mit anderen Rollen kombinieren (z. B. Dokumentation, Benutzerschulung usw.)?

Offensichtlich hängen die Antworten möglicherweise von den verwendeten Unternehmensstrategien/Entwicklungsmodellen ab. Bitte geben Sie an, ob Sie im Allgemeinen oder für einen bestimmten Produkt/Release-Stil usw. antworten.

+1

Suchen Sie nach empirischen Daten oder nur unbestätigten Meinungen? –

+0

Entweder in gewissem Umfang. Wenn Menschen es studiert haben und empirische Antworten/Berichte/etc. Liefern können, ist dies das Beste. Aber wenn nicht, könnte es einfach nützlich sein, einfach mehrere Antworten zu haben, die sagen "Wir haben X: Y und brauchen mehr/weniger für unsere Dev-Strategie". –

+0

Ich stimme diese Frage als Off-Topic zu schließen, weil es am Arbeitsplatz oder PM gehört, nicht Stack-Überlauf. –

Antwort

3

Zu allererst Entwickler Tester ist eine gute Faustregel, aber es ist ein schlechtRegel.

Was Sie beachten müssen, ist, wie viele Anwendungsfälle Ihre Anwendung hat. Anwendungen, mit denen von Benutzern unkontrolliert interagiert wird (I. E. Web-Anwendungen oder Desktop-Anwendungen), benötigen mehr Tester als eine ähnliche Konsolenanwendung.

Eine Anwendung, die eine einzelne Datei verwendet und darin Regex-Muster erkennt, benötigt weniger Tester als ein neues Betriebssystem.

Während die allgemeinen Grundsätze sind, die praktische Ratschläge wäre irgendeine Art von Näherungsformel zu verwenden, auf der Grundlage dieser Faktoren

1) Wie viele (compartmentalized) Anwendungsfälle gibt es?

Ich sage unterteilte Anwendungsfälle, denn wenn Sie Zustandsänderungen und persistente Variablen einschließen, dann können scheinbar nicht verwandte Teile eines Programms zusammenhängen. I.E. 2 + 2 = 4 (1 Anwendungsfall) 2 * 2 = 4 (2. Anwendungsfall). Das sind zwei einfache Operatoren, also zwei Klassen von Anwendungsfällen.Wenn Sie jedoch können add dann multiply, dann können Sie nicht nur add und multiply einzeln überprüfen, müssen Sie sie in all ihren möglichen Permutationen überprüfen.

Wenn Sie die Anzahl der Anwendungsfälle untersuchen, stellen Sie sicher, dass Sie die Anwendungsfälle einschließen, die die Verkettung von Befehlen umfassen.

2) Wie lange dauert es, um jedes einzelne zu testen?

Dies bedeutet nicht (um die Metapher des Rechners zu erweitern) nur 2 + 2 hinzufügen und die Antwort betrachten. Sie müssen die Zeit angeben, die nach einem Absturz für die Wiederherstellung benötigt wird. Wenn die Antwort falsch ist, würden Sie erwarten, dass der Tester den Fehler mit einem Screenshot und spezifischen Anweisungen zum Erstellen des Fehlers protokolliert. Wenn Sie ihnen keine Zeit für diese Art von Verwaltungsarbeit geben, dann backen Sie in Ihren Plan die Annahme, dass Sie keine Fehler haben. Und wenn wir das übernehmen, dann warum Tester überhaupt haben;)

Ein komplexes Projekt wird sowohl eine hohe Anzahl von Anwendungsfällen als auch eine hohe Anzahl von Entwicklern haben, aber sie sind keine garantierte Korrelation. Sie sollten Ihre Anwendungsfälle gründlich untersuchen und eine fundierte Entscheidung darüber treffen, wie viele Tester benötigt werden.

Bonus hinzugefügt. Nachdem Sie die Anwendung gründlich analysiert haben, finden Sie möglicherweise Anwendungsfälle, die in der Entwurfsphase nicht berücksichtigt wurden, und beheben diese, bevor ein Tester sie findet.

+0

Danke. Das Denken in Bezug auf Anwendungsfälle und Testzeiten ist ein guter Weg, dieses Problem anzugehen, und wie Sie sagen, kann das Aufspalten der Anwendung auch dazu beitragen, mögliche Probleme zu identifizieren, die überprüft/behoben werden müssen. –

+0

Und ein neues Betriebssystem erfordert mehr Entwickler als eine App, um Regex-Muster in einer einzigen Datei zu erkennen. Die Analogie scheint sinnlos und nirgendwohin zu gehen. – Paul

5

Es gab einen aktuellen, relevanten Artikel über InfoQ, den Sie vielleicht interessant finden könnten.

+0

Danke, es sieht so aus, als ob der Artikel selbst mehr nützliche Links hat. –

3

Meiner Meinung nach ist eine gute Metrik zur Bestimmung der Anzahl der benötigten Tester die Komplexität der Anforderungen, nicht die Anzahl der Entwickler. Wenn ich Tester anheuern würde, würde ich mir die Liste der Anforderungen ansehen (oder das Designdokument in eine Liste von Anforderungen aufteilen, falls erforderlich) und darüber nachdenken, wie viel Testzeit jede Anforderung benötigt, um zu überprüfen, ob sie ordnungsgemäß funktioniert. Ich würde diese anfängliche Analyse verwenden, um eine Basis von Testern anzuheuern, und dann später Tester hinzufügen, wenn sich die Arbeitsbelastung als zu hoch für meine anfängliche Basis herausstellte.

Wenn Sie ein Budget zusammenstellen und Tester später einstellen, ist dies keine Option. Sie sollten daher etwas mehr Testressourcen einplanen, als Ihre Analyse angibt. Zu viel ist immer besser als nicht genug.

Ob "reine" Tester zu verwenden ist eine andere Frage, die wirklich davon abhängt, wie viele Testressourcen Sie benötigen. Ich habe festgestellt, dass ein guter Kompromiss darin besteht, Tester zu beauftragen, die zu anderen Jobs in der Lage sind, und sie in anderen Kapazitäten zu Zeiten einzusetzen, in denen die Testlast gering ist.

Bearbeiten: Wenn Sie Glück haben, eine Reihe von Abnahmetests früh zu haben, ersetzen Sie bitte "Abnahmetests" für "Anforderungsliste" oben. :-)

+0

Die Anzahl der Entwickler variiert auch mit der Komplexität, daher muss eine gewisse Korrelation bestehen. – Arkadiy

1

Ich würde sagen (abhängig von der Geschwindigkeit, die Sie Dinge getestet haben) mit Automatisierung könnten Sie wie 1 oder 2 Tester für jede 5 Entwickler haben.

Warum:

  • Mit Automatisierung sie müssen nur über die neuen Module Tests
  • Regressionstests Sorge kümmert sich um die Älteren nehmen.
  • 1 oder 2 Tester können leicht alle Arbeit abdecken 5 Entwickler werden zum Beispiel Woche/Woche tun
  • Ein gutes Verhältnis, das ich gelehrt wurde, war, dass für alle 10 Stunden der Entwicklung, das Qualitätssicherungsteam rund 3 nehmen wird oder 4 Stunden, um die meisten Defekte dieser 10 Stunden zu verfolgen.

Hope it :)

8

Joel makes a good argument für 1 Tester für alle 2 Ingenieure, sowie Abdecken der Entschuldigungen für Leute benutzen wird nicht helfen, diese Tester haben.

1

Außerdem würden Sie ‚reinen‘ Tester verwenden oder würden Sie Tests mit anderen Rollen kombinieren (zDokumentation, Benutzer Training, etc)?

Es hängt von der Art der Prüfung ab, aber ich würde Tester mit anderen Rollen nicht belasten. Kompetente Testingenieure sind Gold wert (genauso wie kompetente Software-Ingenieure). Wenn Sie ihnen Aufgaben außerhalb ihrer fachlichen Kompetenz geben, werden Sie sie verlangsamen und ausschalten. Machen Softwareingenieure gerne Dokumentationen oder Benutzerschulungen? Normalerweise nicht. Auch Tester nicht.

Allerdings gibt es nichts falsch mit Ihrem Testteam mit Menschen aus anderen Bereichen zu ergänzen, vor allem für Usability-Tests, Abnahmeprüfung, schnelle Bewertungen usw.

5

ich über diese einmal here gebloggt. Der relevanteste Auszug ist unten.

"Ich habe gesehen, qualitativ hochwertige Produkte auf einem 10: 1-Entwickler: Test-Verhältnis und schreckliche Produkte mit einem Verhältnis 1: 1 erstellt. Der Unterschied ist in Aufmerksamkeit und Sorgfalt für Qualität. Wenn jeder (einschließlich Management) Im Team ist die Qualität des Produkts sehr wichtig, es hat eine gute Chance, unabhängig vom Verhältnis zu funktionieren, aber wenn Qualität etwas ist, das in das Produkt getestet werden soll, haben Sie mindestens einen Tester für jeden Entwickler - mehr wenn du sie bekommen kannst. "

2

Es gibt kein verallgemeinertes "gutes" Verhältnis.

Offensichtlich ist die Zeit, die benötigt wird, um etwas zu testen, kontextabhängig - es hängt von Faktoren ab, die wenig oder nichts mit der Entwicklung dieses Features zu tun haben.

Sehen Sie sich auch:

  • was als Entwicklung?
  • Was zählt als Testing?
  • Wenn wir Regressionstests trotzdem durchführen würden, zählt das als "Null" zusätzliche Teststunden?

siehe: http://www.sqablogs.com/jstrazzere/150/What+is+the+%22Correct%22+Ratio+of+Development+Time+to+Test+Time%3F.html

4

Diese Zeichenfolge ist anscheinend ziemlich alt. Aber die Antworten schienen mir alle den Punkt verpasst.

1). Die Frage nach einem Verhältnis von Entwickler und Tester ist berechtigt, denn je komplexer die Anforderungen, desto mehr Entwickler werden benötigt und desto mehr Tester werden benötigt. Einige der Antworten schienen dies zu widerlegen.

2). Unabhängig von den Anwendungsdomänen ist ein gutes Verhältnis, das in der realen Welt für "hochwertige" Software funktioniert, 2: 1. Sie können mit 4: 1 leben, aber es ist wirklich dehnbar. Natürlich gibt es in dieser Schätzung viele Variablen, nicht nur die Komplexität der Anforderungen, die zu implementierenden Systeme/Umgebungen, sondern auch, wie produktiv die Entwickler sind und wie knapp der Lieferplan ist.

HTH

1

Eins ist sicher. Die Anzahl der Tester sollte größer sein als die Anzahl der Entwickler. Für jedes von einem Entwickler erstellte Feature muss ein Tester das Feature unter verschiedenen Arten von Tests ausüben: Funktionalität, Benutzerfreundlichkeit, Grenzen, Stress usw. Obwohl das genaue Verhältnis mehr von der Anzahl der Testfälle und davon abhängt, wie lang ein Testzyklus sein sollte (1 Woche, 3 Tage, 1 Tag oder einen halben Tag), ein einzelner Entwickler wird genügend Testaktivität für mehrere Tester generieren. Darüber hinaus können Szenarien erforderlich sein, in denen mehrere Tester zwei oder mehr Benutzer simulieren, die gleichzeitig auf dem System arbeiten.