Frage

Ich habe ein Produkt,

Hierzu nutzen wir eine Reihe von Statistiken aus den von uns durchgeführten Tests, wie zum Beispiel:

  • Wiederöffnungsrate (Anzahl der wieder geöffneten Fehler/Anzahl der getesteten korrigierten Fehler)
  • Rate neuer Fehler (Anzahl der neuen, einschließlich Regressionen, beim Testen gefundenen Fehler/Anzahl der getesteten korrigierten Fehler)
  • für jede neue Erweiterung die neue Fehlerrate (Anzahl der für diese Erweiterung gefundenen Fehler/Anzahl der Arbeitstage)

und verschiedene andere Figuren.

Aus Gründen, auf die wir hier nicht eingehen, ist es unmöglich, jedes Mal alles zu testen.

Meine Frage lautet also:

Wie schätze ich die Anzahl und Art der verbleibenden Fehler in meiner Software ein?Welche Teststrategien muss ich befolgen, um sicherzustellen, dass das Produkt gut ist?

Ich weiß, dass dies eine etwas offene Frage ist, aber hey, ich weiß auch, dass es keine einfachen Lösungen gibt.

Danke.

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie die Anzahl der Fehler in Ihrer App jemals wirklich abschätzen können.Wenn Sie keine Sprache und kein Verfahren verwenden, das formale Beweise ermöglicht, können Sie nie wirklich sicher sein.Ihre Zeit sollten Sie wahrscheinlich besser damit verbringen, Prozesse einzurichten, um Fehler zu minimieren, als zu versuchen, abzuschätzen, wie viele Sie haben.

Eines der wichtigsten Dinge, die Sie tun können, ist ein gutes QS-Team und eine gute Arbeitsaufgabenverfolgung.Möglicherweise können Sie nicht jedes Mal vollständige Regressionstests durchführen, aber wenn Sie eine Liste der Änderungen haben, die Sie seit der letzten Version an der App vorgenommen haben, können Ihre QA-Mitarbeiter (oder Personen) ihre Tests auf die einzelnen Teile konzentrieren die App, die voraussichtlich betroffen sein wird.

Eine weitere hilfreiche Sache wären Unit-Tests.Je mehr Codebasis Sie abgedeckt haben, desto sicherer können Sie sein, dass Änderungen in einem Bereich nicht versehentlich Auswirkungen auf einen anderen Bereich haben.Ich fand das sehr nützlich, da ich manchmal etwas ändere und vergesse, dass es sich auf einen anderen Teil der App auswirken würde, und die Unit-Tests zeigten das Problem sofort.Bestandene Unit-Tests garantieren nicht, dass Sie nichts kaputt gemacht haben, aber sie können dazu beitragen, das Vertrauen zu stärken, dass die von Ihnen vorgenommenen Änderungen funktionieren.

Auch das ist etwas überflüssig und offensichtlich, aber stellen Sie sicher, dass Sie über eine gute Bug-Tracking-Software verfügen.:) :)

Andere Tipps

Die Frage ist, wer von Ihnen die Bereitstellung der Statistiken verlangt.

Wenn es sich um technisch nicht versierte Personen handelt, fälschen Sie die Statistiken.Mit „gefälscht“ meine ich „jegliche zwangsläufig bedeutungslosen, aber realen Zahlen angeben“ der von Ihnen erwähnten Art.

Wenn es sich um Techniker ohne CS-Hintergrund handelt, sollten sie über das Stoppproblem informiert werden, das unentscheidbar und einfacher ist als das Zählen und Klassifizieren der verbleibenden Fehler.

Es gibt viele Metriken und Tools zur Softwarequalität (Codeabdeckung, zyklomatische Komplexität, Codierungsrichtlinien und Tools zu deren Durchsetzung usw.).In der Praxis funktioniert es, so viele Tests wie möglich zu automatisieren, menschliche Tester so viele Tests wie möglich durchführen zu lassen, die nicht automatisiert wurden, und dann zu beten.

Ich denke, dass es der beste Weg ist, es einfach zu halten.Kategorisieren Sie Ihre Fehler nach Schweregrad und beheben Sie sie in der Reihenfolge abnehmender Schwere.

Auf diese Weise können Sie den höchstmöglichen Build liefern (ich würde die Qualität des Produkts anhand der Anzahl der verbleibenden erheblichen Fehler beurteilen, im Gegensatz zu einigen komplexen Statistiken).

Die meisten agilen Methoden gehen dieses Dilemma ziemlich klar an.Man kann nicht alles testen.Sie können es auch nicht unendlich oft testen, bevor Sie es veröffentlichen.Das Verfahren besteht also darin, sich auf das Risiko und die Wahrscheinlichkeit des Fehlers zu verlassen.Sowohl Risiko als auch Wahrscheinlichkeit sind numerische Werte.Das Produkt aus beiden ergibt eine RPN-Nummer.Wenn die Anzahl weniger als 15 beträgt, versenden Sie eine Betaversion.Wenn Sie den Wert auf weniger als 10 senken können, versenden Sie das Produkt und schieben den Fehler in eine zukünftige Version, um ihn zu beheben.

Wie berechnet man das Risiko?

Wenn es ein Absturz ist, dann ist es eine 5, wenn es ein Absturz ist, aber Sie können eine Arbeit liefern, dann ist es eine Zahl von weniger als 5.Wenn der Fehler die Funktionalität beeinträchtigt, ist es eine 4

Wie berechnet man die Wahrscheinlichkeit?

Kannst du es jedes Mal neu erzeugen, wenn du läufst? Es ist eine 5.Wenn die bereitgestellte Problemumgehung immer noch zum Absturz führt, dann weniger als 5

Nun, ich bin gespannt, ob noch jemand dieses Schema verwendet und möchte wissen, wie viel Erfahrung er damit gemacht hat.

Wie lang ist ein Stück Schnur?Was macht letztendlich ein Qualitätsprodukt aus?Fehler geben einige Hinweise, ja, aber es spielen noch viele andere Faktoren eine Rolle. Die Abdeckung von Unit-Tests ist meiner Meinung nach ein Schlüsselfaktor.Aber meiner Erfahrung nach ist der Hauptfaktor, der darüber entscheidet, ob ein Produkt als hochwertig angesehen werden kann oder nicht, ein gutes Verständnis des zu lösenden Problems.Oft passiert es, dass das „Problem“, das das Produkt lösen soll, nicht richtig verstanden wird und die Entwickler am Ende die Lösung für ein Problem erfinden, das sie im Kopf ausgearbeitet haben, und nicht das eigentliche Problem, wodurch „Bugs“ entstehen .Ich bin ein starker Befürworter der Iteration Agil Entwicklung, auf diese Weise ist das Produkt ständig gegen das „Problem“ gerichtet und das Produkt weicht nicht zu weit von seinem Ziel ab.

Die Fragen, die ich hörte, waren: Wie schätze ich die Fehler in meiner Software ein?Und welche Techniken wende ich an, um eine gute Qualität sicherzustellen?

Anstatt einen vollständigen Kurs zu absolvieren, finden Sie hier einige Ansätze.

Wie schätze ich die Fehler in meiner Software ein?

Beginnen Sie mit der Historie. Sie wissen (hoffentlich) wie viele Sie beim Testen gefunden haben und wie viele im Nachhinein gefunden wurden.Damit können Sie abschätzen, wie effizient Sie beim Auffinden von Fehlern sind (DDR – Defect Detection Rate ist ein Name dafür).Wenn Sie nachweisen können, dass Ihr DDR über einen konsistenten Zeitraum konstant ist (oder sich verbessert), können Sie einen Einblick in die Qualität der Veröffentlichung geben, indem Sie die Anzahl der Post-Release-Mängel schätzen, die nach der Veröffentlichung des Produkts gefunden werden.

Welche Techniken wende ich an, um eine gute Qualität sicherzustellen?

Die Ursachenanalyse Ihrer Fehler weist Sie auf bestimmte Komponenten hin, die fehlerhaft sind, auf bestimmte Entwickler, die fehlerhaften Code erstellen, auf die Tatsache, dass das Fehlen vollständiger Anforderungen dazu führt, dass die Implementierung nicht den Erwartungen entspricht usw.

Projektüberprüfungssitzungen, um schnell zu erkennen, was gut war, damit diese Dinge wiederholt werden können, und was schlecht war, und um einen Weg zu finden, diese Dinge nicht noch einmal zu tun.

Hoffentlich geben Ihnen diese einen guten Start.Viel Glück!

Es scheint Konsens darüber zu geben, dass der Schwerpunkt auf Unit-Tests gelegt werden sollte.Die Fehlerverfolgung ist ein guter Indikator für die Produktqualität, wird jedoch nur von Ihrem Testteam genau ermittelt.Wenn Sie Unit-Tests einsetzen, erhalten Sie eine messbare Metrik der Codeabdeckung und stellen Regressionstests bereit, sodass Sie sicher sein können, dass Sie seit dem letzten Monat nichts kaputt gemacht haben.

Mein Unternehmen verlässt sich auf Tests auf System-/Integrationsebene.Ich sehe viele Fehler, die eingeführt werden, weil es an Regressionstests mangelt.Ich denke, „Fehler“, bei denen die Umsetzung der Anforderungen durch den Entwickler von der Vision des Benutzers abweicht, sind eine Art separates Problem, das, wie Dan und rptony feststellten, am besten mit agilen Methoden gelöst werden kann.

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