it-swarm.dev

Unterschied zwischen einem Defekt und einem Fehler beim Testen?

Was ist der Unterschied zwischen einem Defekt und einem Fehler?

35
maz3tt
  • Ein Fehler ist das Ergebnis eines Codierungsfehlers

  • Ein Defekt ist eine Abweichung von den Anforderungen

Das heißt: Ein Defekt bedeutet nicht unbedingt, dass der Code einen Fehler enthält . Es könnte sich um eine Funktion handeln, die nicht implementiert, sondern in den Anforderungen von definiert wurde die Software.


Von der Wikipedia-Seite auf Softwaretests :

Nicht alle Softwarefehler werden durch Codierungsfehler verursacht. Eine häufige Ursache für teure Fehler sind Anforderungslücken, z. B. nicht erkannte Anforderungen, die zu Auslassungsfehlern des Programmdesigners führen. [14] Eine häufige Ursache für Anforderungslücken sind nicht funktionale Anforderungen wie Testbarkeit, Skalierbarkeit, Wartbarkeit, Benutzerfreundlichkeit, Leistung und Sicherheit.

59
Dan McGrath

Zitiert Ilene Burnstein aus dem Buch Praktische Softwaretests (empfohlen), die von der Definition in der "IEEE Standards Collection for Software" abweicht Engineering "(1994) und" IEEE Standard Glossary of Software Engineering Terminology "(Standard 610.12, 1990):

Error

Ein Fehler ist ein Fehler, ein Missverständnis oder ein Missverständnis eines Softwareentwicklers

In die Kategorie der Entwickler gehören Softwareentwickler, Programmierer, Analysten und Tester. Beispielsweise kann ein Entwickler eine Entwurfsnotation falsch verstehen oder ein Programmierer kann einen Variablennamen falsch eingeben.

Fehler (Defekte)

Ein Fehler (Defekt) wird aufgrund eines Fehlers in die Software eingeführt. Es ist eine Anomalie in der Software, die dazu führen kann, dass sie sich falsch verhält und nicht der Spezifikation entspricht.

Fehler oder Defekte werden manchmal als "Bugs" bezeichnet. Die Verwendung des letzteren Begriffs trivialisiert die Auswirkungen von Fehlern auf die Softwarequalität. Die Verwendung des Begriffs „Defekt“ ist auch mit Software-Artefakten wie Anforderungen und Konstruktionsdokumenten verbunden. Fehler, die in diesen Artefakten auftreten, werden ebenfalls durch Fehler verursacht und normalerweise im Überprüfungsprozess erkannt.

Fehler

Ein Fehler ist die Unfähigkeit eines Softwaresystems oder einer Softwarekomponente, die erforderlichen Funktionen innerhalb der angegebenen Leistungsanforderungen auszuführen.

Während der Ausführung einer Softwarekomponente oder eines Systems stellt ein Tester, Entwickler oder Benutzer fest, dass die erwarteten Ergebnisse nicht erzielt werden. In einigen Fällen weist eine bestimmte Art von Fehlverhalten darauf hin, dass eine bestimmte Art von Fehler vorliegt. Wir können sagen, dass die Art des Fehlverhaltens ein Symptom für den Fehler ist. Ein erfahrener Entwickler/Tester verfügt über eine Wissensdatenbank zu Fehlern/Symptomen/Fehlerfällen (Fehlermodelle wie in Kapitel 3 beschrieben). Falsches Verhalten kann das Erzeugen falscher Werte für Ausgabevariablen, eine falsche Reaktion eines Geräts oder ein falsches Bild auf einem Bildschirm umfassen. Während der Entwicklung werden Fehler normalerweise von Testern beobachtet, und Fehler werden von Entwicklern lokalisiert und repariert.

Sie können das vollständige Kapitel in Google Books lesen, hier .

21
dukeofgaming

Es gibt verschiedene Begriffe im Zusammenhang mit Softwarefehlern. Auszug aus einem Kurs, den ich belegt habe:

  • Fehler: Menschliche Handlung oder Unterlassung, die zu einem Fehler führt.

  • Fehler: Fehler ist ein Softwarefehler (falscher Schritt, Prozess oder Datendefinition), der einen Fehler verursacht.

  • Bug: Wie Fehler.

  • Fehler: Die Unfähigkeit einer Software, ihre erforderlichen Funktionen innerhalb der angegebenen Leistungsanforderungen auszuführen.

Demnach gibt es keinen Unterschied zwischen einem Defekt und einem Fehler. Einige Leute argumentieren jedoch, dass der Fehler ein Fehler ist, der vor der Veröffentlichung der Software gefunden wurde, während der Fehler vom Kunden festgestellt wurde.

Ich konnte nicht widerstehen, den berühmten "ersten tatsächlichen Fall eines gefundenen Fehlers" zu veröffentlichen.

alt text

12
Tamás Szelei

Aus dem IEEE-Standardglossar der Software-Engineering-Terminologie, das im Software-Engineering-Wissensbestand KA für Softwaretests und Softwarequalität zitiert wird:

fehler. Siehe: Fehler; Fehler.


error. (1) Die Differenz zwischen einem berechneten, beobachteten oder gemessenen Wert oder Zustand und dem wahren, spezifizierten oder theoretisch korrekten Wert oder Zustand. Zum Beispiel eine Differenz von 30 Metern zwischen einem berechneten Ergebnis und dem korrekten Ergebnis. (2) Eine falsche Schritt-, Prozess- oder Datendefinition. Zum Beispiel eine falsche Anweisung in einem Computerprogramm. (3) Ein falsches Ergebnis. Zum Beispiel ein berechnetes Ergebnis von 12, wenn das richtige Ergebnis 10 ist. (4) Eine menschliche Handlung, die ein falsches Ergebnis erzeugt. Zum Beispiel eine falsche Aktion eines Programmierers oder Bedieners. Hinweis: Während alle vier Definitionen häufig verwendet werden, weist eine Unterscheidung Definition 1 dem Wort "Fehler", Definition 2 dem Wort "Fehler", Definition 3 dem Wort "Fehler" und Definition 4 dem Wort "Fehler" zu. Siehe a2so: dynamischer Fehler; fataler Fehler; indigener Fehler; semantischer Fehler; syntaktischer Fehler; statischer Fehler; vorübergehender Fehler.


fehler. Die Unfähigkeit eines Systems oder einer Komponente, die erforderlichen Funktionen innerhalb der festgelegten Leistungsanforderungen auszuführen. Hinweis: Die Fehlertoleranzdisziplin unterscheidet zwischen einer menschlichen Handlung (einem Fehler), ihrer Manifestation (einem Hardware- oder Softwarefehler), dem Ergebnis des Fehlers (einem Fehler) und dem Betrag, um den das Ergebnis falsch ist (der Fehler). Siehe auch: Absturz; abhängiges Versagen; Ausnahme; Fehlermodus; Fehlerrate; harter Ausfall; beginnendes Versagen; unabhängiges Versagen; zufälliger Fehler; weiches Versagen; festgefahrener Fehler.


fehler. (1) Ein Defekt in einem Hardwaregerät oder einer Hardwarekomponente; Zum Beispiel ein Kurzschluss oder ein Kabelbruch. (2) Ein falscher Schritt, Prozess oder eine falsche Datendefinition in einem Computerprogramm. Hinweis: Diese Definition wird hauptsächlich von der Fehlertoleranzdisziplin verwendet. Im allgemeinen Sprachgebrauch werden die Begriffe "Fehler" und "Fehler" verwendet, um diese Bedeutung auszudrücken. Siehe auch: datensensitiver Fehler; programmempfindlicher Fehler; äquivalente Fehler; Fehlermaskierung; zeitweiliger Fehler.


Ich denke, die Definition von Versagen ist am relevantesten. Alles beginnt mit einem Fehler, sei es in den Anforderungen, im Design, in der Implementierung oder im Testfall/-verfahren. Wenn sich dieser Fehler in der Software manifestiert, wird er zu einem Fehler. Ein Fehler wird durch das Vorhandensein eines oder mehrerer Fehler in der Software verursacht.

Ich bin jedoch nicht scharf auf die formale Definition von Fehler. Ich bevorzuge sehr die Definition, die dukeofgaming in seiner Antwort gegeben hat , aber die in dieser Antwort ist die IEEE-Standarddefinition für Fehler.

7
Thomas Owens

Ach je.

Früher - ein fehlerhafter Betrieb eines Computers wurde durch alle möglichen Dinge verursacht - einschließlich Ratten, die an der Verkabelung kauten, und echten Insekten (Lebewesen), die in die Arbeit kamen.

Der Begriff BUG ist ein Begriff, der bedeutet, dass etwas nicht wie erwartet funktioniert.

BUG sollte als Jargonbegriff betrachtet werden, der einen Defekt bedeutet.

Ein Defekt ist ein technisch korrekter Begriff, der bedeutet, dass das Ding nicht so tut, wie es sollte.

Wo immer möglich, bringt die Verwendung von DEFECT anstelle von BUG die Konnotation mit sich, dass wir unsere Fehler (unsere Fehler, unser mangelndes Verständnis der Benutzeranforderungen oder die Dinge, die wir bei der Implementierung übersehen haben) anerkennen, anstatt sie als den trivial klingenden "Fehler" zu verkleiden ".

Verwenden Sie DEFECT.

Versuchen Sie, den Begriff BUG nicht zu verwenden. Es ist albern, irrelevant, historisch und trivialisierend.

7
quickly_now

Dan McGraths Antwort hat es richtig verstanden.

  • Ein Fehler ist das Ergebnis eines Codierungsfehlers
  • Ein Defekt ist eine Abweichung von den Anforderungen

Vielleicht würde ein Beispiel es klarer machen.

Beispiel: Der Client wollte, dass das Webformular das Fenster speichern und schließen kann.

Szenario 1: Das Webformular verfügt über eine Schaltfläche zum Speichern und eine weitere Schaltfläche zum Schließen. Ergebnis: Fehler, da der Client wollte, dass die Schaltfläche 1 das Fenster speichert und schließt. Entwickler missverstanden und separat erstellt. Da beide Schaltflächen ihre Anforderungen erfüllten, handelt es sich nicht um einen Fehler, sondern um einen Fehler, da die Anforderungen des Kunden nicht erfüllt wurden.

Szenario 2: Das Webformular verfügt über eine Schaltfläche zum Speichern und Schließen, speichert jedoch nur, wird jedoch nicht geschlossen. Ergebnis: Bug. Weil die Schaltfläche nicht wie erforderlich/erwartet funktioniert. Entwickler wissen, dass es wahrscheinlich ist, dieses Ergebnis zu erzielen, aber letztendlich nicht. (möglicherweise Codierungsfehler)

Ich bin mir nicht sicher, ob dies klarer macht.

p/s: Aus Entwicklersicht (ich war einmal) sind sowohl Fehler als auch Fehler genauso wichtig. Wir werden es immer noch reparieren.

Wir sind sogar auf seltsame Anomalien gestoßen, die wir unter Fehler kategorisiert haben, und wir versuchen ständig herauszufinden, was die Ursache ist und wie wir sie beheben können. Wenn man es als Fehler bezeichnet, ist es im Vergleich zu Fehlern nicht trivial.

3
tctham

Hier ist eine, die ich zuvor für meinen Arbeitgeber Q-LEAP basierend auf dem ISTQB-Vokabular gemacht habe, und ich habe auch das IEEE-Vokabular überprüft. Genießen.

Fehler und Defekt? Das gleiche, obwohl man endlose Diskussionen darüber haben kann. Wir müssen uns wirklich um andere Dinge kümmern, das Leben ist schon kompliziert genug usw.

enter image description here

Ein Beispiel dafür, wie der Begriff in freier Wildbahn verwendet wird, von "Wie Google Software testet" p. 113. Öffnen Sie einen Artikel von "IEEE Software" und er wird auf die gleiche Weise verwendet. In der Tat trifft man im wirklichen Leben selten auf das Wort "Defekt".

Leben eines Bugs

Fehler und Fehlerberichte sind das einzige Artefakt, das jeder Tester versteht. Das Auffinden von Fehlern, das Testen von Fehlern, das Beheben von Fehlern und das Zurückführen von Fehlern sind der Herzschlag und der Workflow für die Softwarequalität. Dies ist der Teil des Testens, der bei Google am konventionellsten ist, aber es gibt immer noch einige interessante Abweichungen von der Norm. In diesem Abschnitt ignorieren wir die Fehler, die zum Verfolgen von Arbeitselementen abgelegt werden, und verwenden den Begriff, um den tatsächlich fehlerhaften Code zu identifizieren. Daher stellen Fehler häufig den Arbeitsablauf von Stunde zu Stunde und von Tag zu Tag für Entwicklungsteams dar.

Ein Fehler wird geboren. Fehler werden von allen bei Google gefunden und abgelegt. Produktmanager melden Fehler, wenn sie Probleme in den frühen Builds feststellen, die sich von ihren Spezifikationen/Gedanken unterscheiden. Entwickler melden Fehler, wenn sie feststellen, dass sie versehentlich ein Problem eingecheckt haben oder ein Problem an einer anderen Stelle in der Codebasis finden oder wenn sie Google-Produkte mit Hunden füttern. Fehler kommen auch aus dem Feld, von Crowd-Sourcing-Testern und externen Anbietertests, und werden von Community-Managern eingereicht, die die produktspezifischen Google-Gruppen überwachen. Viele interne Versionen von Apps bieten auch schnelle Ein-Klick-Methoden zum Ablegen von Fehlern, z. B. Google Maps. Und manchmal erzeugen Softwareprogramme Fehler über eine API.

1
David Tonhofer

Nach Zuverlässigkeit: Grundbegriffe und Terminologie :

Ein Systemfehler tritt auf, wenn der gelieferte Dienst von der Erfüllung der Systemfunktion abweicht, wobei letztere das ist, wofür das System bestimmt ist. Ein Fehler ist der Teil des Systemstatus, der zu einem nachfolgenden Fehler führen kann: Ein Fehler, der den Dienst betrifft, ist ein Hinweis darauf, dass ein Fehler auftritt oder vorliegt aufgetreten. Die festgestellte oder hypothetische Fehlerursache ist ein Fehler .

Ich verstehe Defekt als nur einen anderen Namen für Fehler.

Bug ist verwirrend und kann je nach Kontext einen Fehler oder einen Fehler darstellen.

Beachten Sie, dass die Spezifikation nicht erwähnt wird: Selbst eine Spezifikation kann fehlerhaft sein.

0
mouviciel

Außerhalb eines bestimmten Fehlers/einer bestimmten Aufgabe/eines bestimmten Tickets/eines bestimmten Fehlers/eines bestimmten Problems/einer beliebigen Instanz des Tracking-Systems haben diese Wörter keine genaue Bedeutung, und daher ist es sinnlos, den Unterschied zwischen ihnen zu diskutieren. Wenn Sie Ihren Workflow festlegen, sollten Sie die Terminologie festlegen und Beschreibungen bereitstellen.

In meiner aktuellen Umgebung ist ein "Defekt" ein beliebiger Gegenstand in Jira. Es sieht so aus, als würde Jira selbst den Begriff "Problem" verwenden. Wir haben es möglicherweise von einem früheren System geerbt. "Bug" ist eine Art Problem, wenn etwas nicht wie erwartet funktioniert und in der Dokumentation beschrieben wird. "Funktionsanforderung", wenn etwas wie erwartet funktioniert, aber eine Verbesserung gewünscht wird (dies kann offensichtlich und wichtig sein, aber wenn das aktuelle Verhalten beschrieben wird, handelt es sich immer noch um eine Funktionsanforderung). Es gibt mehr Typen, aber diese 2 werden von Leuten außerhalb des Entwicklungsteams verwendet, um etwas von ihnen zu verlangen.

Wenn Sie Namen für Problemtypen auswählen, klingen "Bug" und "Defect" ähnlich wie ich. Der Unterschied zwischen ihnen ist stilistisch. Da Englisch nicht meine Muttersprache ist, kann ich nicht viel davon sehen und bin mir nicht sicher, ob das, was ich sehe, richtig ist.

0
max630

Der Unterschied ist, dass der Begriff "Bug" magisch klingt. Als ob ein Programm nach dem Programmieren zufällig Fehler enthalten kann. Wenn es zufällige Fehler gibt, bedeutet dies, dass Sie die Spezifikationen nicht eingehalten haben und Ihr Programm fehlerhaft ist.

Ein Defekt bedeutet einen Fehler, bei dem das Programm nicht den Spezifikationen entspricht. Dies ist schwerwiegender und besagt im Grunde, dass any error ein riesiges Problem mit dem Programm ist und dies bedeutet, dass das Programm nicht für die Veröffentlichung geeignet ist.

Der Unterschied liegt in der Einstellung der Programmierer, die die Begriffe verwenden. Es gibt Millionen von Programmen, die mit Fehlern veröffentlicht werden, und die Leute sind damit einverstanden, weil sie aus irgendeinem Grund akzeptieren, dass ein Fehler magisch und zufällig ist und dass jedes Programm mindestens einen Fehler enthält. Ein Programmierer, der den Begriff "Fehler" verwendet, kann sich jedoch unwohl fühlen, wenn er ein Programm mit einem Fehler freigibt, da der Begriff einen höheren Schweregrad impliziert.

Die Auswirkungen des Vorzugs eines Begriffs gegenüber dem anderen betreffen uns täglich.

0
Rudolf Olah