Ich bin dabei, an einer Diskussion mit dem Management über die Messung unserer Testeffizienz als QS-Organisation teilzunehmen. Der Hauptgrund dafür ist, dass die Hälfte unseres Teams ausgelagert ist und unser Unternehmen einige Kennzahlen darüber liefern möchte, wie effektiv / effizient wir sind, damit wir Basisdaten haben, über die wir mit dem Servicevertrag unserer Auftragnehmer Vertragsparameter aushandeln können .
Ich habe mich ein wenig umgesehen und die meiste Meinung, die ich zu diesem Thema gefunden habe, dreht sich um die Effizienz von Entwicklern: Codezeilen, gelieferte Story Points, eingeführte Fehler usw.
Aber was ist mit Testern? Unsere Tests basieren hauptsächlich auf Anforderungen und sind eine Mischung aus manuellen, halbautomatisierten und automatisierten Tests (nicht weil wir nicht alles automatisiert haben, sondern weil einige Dinge in unserem Testsystem nicht automatisierbar sind).
quelle
Antworten:
Die Anzahl der geschriebenen Tests ist nutzlos, und eine hohe Anzahl gefundener Fehler kann eher ein Maß für eine schlechte Entwicklung als für eine effiziente Qualitätssicherung sein.
Automatisierungsmaßnahmen (Codeabdeckung, Funktionsabdeckung ...) können gut sein, aber ich denke, sie sind eine größere Hilfe für die Entwicklung (als Entwickler weiß ich, wenn ich versehentlich etwas kaputt mache) als Kunden (das möchte ich tun und es funktioniert nicht).
Da Qualität gut ist, wenn Kunden keine Probleme haben, ist ein gutes Maß für die Effektivität (nicht die Effizienz) eines QS-Teams und -Prozesses das Maß für Fehler, die von Kunden gefunden wurden, die von QA nicht gefunden wurden .
Das Hauptproblem bei dieser Metrik besteht darin, dass es zu erheblichen Verzögerungen zwischen der geleisteten Arbeit und dem Beginn aussagekräftiger Zahlen kommen kann.
quelle
Es gibt einige Metriken, die wir bei meinem letzten Job zur Bewertung der Qualitätssicherung verwendet haben:
Am Ende besteht die Aufgabe Ihres QA-Teams darin, die Fehler zu finden, bevor sie in freier Wildbahn veröffentlicht werden. Ihre Metriken sollten darauf basieren, dieses Ziel tatsächlich zu erreichen. Wenn es nur eine geringe Abdeckung von Testfällen, eine minimale Anzahl automatisierter Tests und eine hohe Fehlerquote in der Produktion gibt, leisten sie keine gute Arbeit. Wenn sie jedoch eine gute Erfolgsbilanz darin haben, die Fehler zu finden, lange bevor sie auf Prod treffen, sollten ihre Metriken ziemlich hoch sein.
quelle
Die Qualitätssicherung sollte anhand von zwei Hauptkennzahlen gemessen werden: Wie viele Fehler kommen an der Qualitätssicherung vorbei, um im Feld gefunden zu werden? Was sind ihre Schwere?
Möglicherweise können Sie die Qualitätssicherung durchführen, um schwerwiegende Fehler zu finden, die näher an der Veröffentlichung liegen als die vollständige Entwicklung. Möglicherweise können Sie die Qualitätssicherung durchführen, wenn Sie die Tests nicht bis zum voraussichtlichen Abschlussdatum (pro Feature) abgeschlossen haben.
Letztendlich befürchte ich jedoch, dass Sie mehr Geld ausgeben werden, um die Effektivität Ihres Vertragspersonals zu messen, als Einsparungen, die durch den Einsatz eines Vertragspersonals erzielt werden ...
quelle
Das Unternehmen, in dem ich arbeite, verwendet eine Reihe von QS-Metriken.
Am relevantesten ist meiner Meinung nach die Codeabdeckung. Ein Tool wie EMMA funktioniert hervorragend, da es zusätzlich zu seinen manuellen Tests gründliche automatisierte Tests schreibt.
Was auch immer Sie tun, konzentrieren Sie sich nicht auf die Anzahl der Tests. Das ist ungefähr so nützlich wie LOC pro Tag.
quelle
Viele Möglichkeiten, die Leistung in Entwicklungs- und Testphasen während der Projektausführung zu messen. Wir haben in unseren Projekten die folgenden Maßnahmen verwendet. Entwicklungsleistung gemessen anhand von 4 gängigen Code-Metriken (Wartbarkeitsindex, zyklometrische Komplexität, Vererbungstiefe, Klassenkopplungen). Für C # wird es in Microsoft Visual Studio erhalten. Für die Testabdeckung ist Ncover / Ndepend sehr nützlich. Testleistung gemessen an der Anzahl der Entwicklungsfehler, die durch die letzten 4 Sprints übertragen wurden Systemtestfehler, die über die letzten 4 Sprints übertragen wurden. Kein Automatisierungstest in einer bestimmten Version / gelieferten Funktionen bestanden.
quelle