Was ist der wirkliche Unterschied zwischen Abnahmetests und Funktionstests?
Was sind die Highlights oder Ziele von jedem? Überall, wo ich lese, sind sie sich mehrdeutig ähnlich.
quelle
Was ist der wirkliche Unterschied zwischen Abnahmetests und Funktionstests?
Was sind die Highlights oder Ziele von jedem? Überall, wo ich lese, sind sie sich mehrdeutig ähnlich.
In meiner Welt verwenden wir die Begriffe wie folgt:
Funktionstests : Dies ist eine Verifizierungsaktivität . Haben wir ein richtig funktionierendes Produkt gebaut? Entspricht die Software den Geschäftsanforderungen?
Für diese Art von Tests haben wir Testfälle, die alle möglichen Szenarien abdecken, die wir uns vorstellen können, auch wenn es unwahrscheinlich ist, dass dieses Szenario "in der realen Welt" existiert. Bei dieser Art von Tests streben wir eine maximale Codeabdeckung an. Wir verwenden jede Testumgebung, die wir zu diesem Zeitpunkt nutzen können. Es muss kein "Produktions" -Kaliber sein, solange es verwendbar ist.
Abnahmetest : Dies ist eine Validierungsaktivität . Haben wir das Richtige gebaut? Braucht der Kunde das wirklich?
Dies erfolgt in der Regel in Zusammenarbeit mit dem Kunden oder durch einen internen Kundenvertreter (Product Owner). Für diese Art von Tests verwenden wir Testfälle, die die typischen Szenarien abdecken, unter denen wir die Verwendung der Software erwarten. Dieser Test muss in einer "produktionsähnlichen" Umgebung auf Hardware durchgeführt werden, die der von einem Kunden verwendeten Hardware entspricht oder dieser entspricht. Dies ist, wenn wir unsere "Fähigkeiten" testen:
Zuverlässigkeit, Verfügbarkeit : Validiert durch einen Stresstest.
Skalierbarkeit : Validiert durch einen Belastungstest.
Benutzerfreundlichkeit : Validiert durch Inspektion und Demonstration gegenüber dem Kunden. Ist die Benutzeroberfläche nach ihren Wünschen konfiguriert? Haben wir das Kundenbranding an den richtigen Stellen platziert? Haben wir alle Felder / Bildschirme, nach denen sie gefragt haben?
Sicherheit (auch bekannt als Sicherheit, nur um zu passen) : Validiert durch Demonstration. Manchmal beauftragt ein Kunde eine externe Firma mit der Durchführung eines Sicherheitsaudits und / oder Intrusionstests.
Wartbarkeit : Validiert durch Demonstration, wie wir Software-Updates / Patches bereitstellen.
Konfigurierbarkeit : Validiert durch Demonstration, wie der Kunde das System an seine Bedürfnisse anpassen kann.
Dies ist keineswegs Standard, und ich glaube nicht, dass es eine "Standard" -Definition gibt, wie die widersprüchlichen Antworten hier zeigen. Das Wichtigste für Ihr Unternehmen ist, dass Sie diese Begriffe genau definieren und sich an sie halten.
Ich mag die Antwort von Patrick Cuff. Was ich hinzufügen möchte, ist die Unterscheidung zwischen einem Testlevel und einem Testtyp, der für mich ein Augenöffner war.
Teststufen
Die Teststufe ist am Beispiel des V-Modells leicht zu erklären : Jede Teststufe hat ihre entsprechende Entwicklungsstufe . Es hat eine typische Zeitcharakteristik, sie werden in einer bestimmten Phase des Entwicklungslebenszyklus ausgeführt.
Testtypen
Ein Testtyp ist ein Merkmal, er konzentriert sich auf ein bestimmtes Testziel. Testtypen betonen Ihre Qualitätsaspekte, die auch als technische oder nicht funktionale Aspekte bezeichnet werden. Testtypen können auf jeder Testebene ausgeführt werden . Ich verwende gerne die in ISO / IEC 25010: 2011 genannten Qualitätsmerkmale als Testtypen .
Um es zu vervollständigen. Es gibt auch so genannte Regressionstests . Dies ist eine zusätzliche Klassifizierung neben Teststufe und Testtyp . Ein Regressionstest ist ein Test, den Sie wiederholen möchten, da er etwas Kritisches in Ihrem Produkt berührt. Es ist in der Tat eine Teilmenge von Tests, die Sie für jede Teststufe definiert haben . Wenn Ihr Produkt einen kleinen Fehler behebt, hat man nicht immer die Zeit, alle Tests zu wiederholen. Regressionstests sind eine Antwort darauf.
quelle
Der Unterschied besteht zwischen dem Testen des Problems und der Lösung. Software ist eine Lösung für ein Problem, beide können getestet werden.
Der Funktionstest bestätigt, dass die Software eine Funktion innerhalb der Grenzen der Problemlösung ausführt. Dies ist ein wesentlicher Bestandteil der Softwareentwicklung, vergleichbar mit den Tests, die an Massenprodukten durchgeführt werden, bevor diese das Werk verlassen. Ein Funktionstest überprüft, ob das Produkt tatsächlich so funktioniert, wie Sie (der Entwickler) glauben.
Abnahmetests bestätigen, dass das Produkt das zu lösende Problem tatsächlich löst. Dies kann am besten vom Benutzer (Kunden) durchgeführt werden, beispielsweise durch Ausführen seiner Aufgaben, bei denen die Software hilft. Wenn die Software diesen Test in der realen Welt besteht, wird akzeptiert, dass die vorherige Lösung ersetzt wird. Dieser Abnahmetest kann manchmal nur in der Produktion ordnungsgemäß durchgeführt werden, insbesondere wenn Sie anonyme Kunden haben (z. B. eine Website). Daher wird eine neue Funktion erst nach Tagen oder Wochen der Nutzung akzeptiert.
Funktionstests - Testen Sie das Produkt und stellen Sie sicher, dass es die von Ihnen entworfenen oder gebauten Eigenschaften aufweist (Funktionen, Geschwindigkeit, Fehler, Konsistenz usw.).
Abnahmetests - Testen Sie das Produkt in seinem Kontext. Dies erfordert (Simulation) menschlicher Interaktion. Testen Sie, ob es den gewünschten Effekt auf die ursprünglichen Probleme hat.
quelle
Die Antwort ist Meinung. Ich habe in vielen Projekten gearbeitet und war Testmanager und Issuemanager. Alle Rollen und Beschreibungen in verschiedenen Büchern sind unterschiedlich. Hier ist meine Variation:
Funktionstests: Nehmen Sie die Geschäftsanforderungen und testen Sie alles gut und gründlich unter funktionalen Gesichtspunkten.
Abnahmeprüfung: Der "zahlende" Kunde führt die von ihm gewünschten Prüfungen durch, damit er das gelieferte Produkt annehmen kann. Es hängt vom Kunden ab, aber normalerweise sind die Tests nicht so gründlich wie die Funktionstests, insbesondere wenn es sich um ein internes Projekt handelt, da die Stakeholder die in früheren Testphasen durchgeführten Testergebnisse überprüfen und ihnen vertrauen.
Wie gesagt, das ist mein Standpunkt und meine Erfahrung. Die Funktionsprüfung ist systematisch und die Abnahmeprüfung ist eher die Geschäftsabteilung, die die Sache testet.
quelle
Publikum. Funktionstests sollen sicherstellen, dass Mitglieder des Teams, das die Software erstellt, das tun, was sie erwarten. Abnahmetests sollen dem Verbraucher versichern, dass sie seine Bedürfnisse erfüllen.
Umfang. Funktionstests testen jeweils nur die Funktionalität einer Komponente. Abnahmetests decken alle Aspekte des Produkts ab, die für den Verbraucher wichtig genug sind, um vor dem Akzeptieren der Software getestet zu werden (dh alles, was die Zeit oder das Geld wert ist, die zum Testen erforderlich sind, um die Akzeptanz zu bestimmen).
Software kann Funktionstests, Integrationstests und Systemtests bestehen. Nur um Abnahmetests nicht zu bestehen, wenn der Kunde feststellt, dass die Funktionen einfach nicht seinen Anforderungen entsprechen. Dies würde normalerweise bedeuten, dass jemand die Spezifikation vermasselt hat. Software kann auch einige Funktionstests nicht bestehen, besteht jedoch die Abnahmetests, da der Kunde bereit ist, einige Funktionsfehler zu beheben, solange die Software die Kernaufgaben, die sie benötigt, akzeptabel gut erledigt (Beta-Software wird häufig von einer Untergruppe von Benutzern zuvor akzeptiert ist voll funktionsfähig).
quelle
Funktionstests: Anwendung von Testdaten, die aus den angegebenen funktionalen Anforderungen abgeleitet wurden, ohne Rücksicht auf die endgültige Programmstruktur. Wird auch als Black-Box-Test bezeichnet.
Abnahmetests: Formale Tests, die durchgeführt werden, um festzustellen, ob ein System seine Akzeptanzkriterien erfüllt oder nicht - ermöglichen es einem Endbenutzer, zu bestimmen, ob das System akzeptiert werden soll oder nicht.
quelle
Meiner Ansicht nach besteht der Hauptunterschied darin, wer sagt, ob die Tests erfolgreich sind oder nicht.
Ein Funktionstest testet, ob das System vordefinierte Anforderungen erfüllt. Es wird von den für die Entwicklung des Systems verantwortlichen Personen durchgeführt und überprüft.
Ein Abnahmetest wird von den Benutzern abgemeldet. Im Idealfall sagen die Benutzer, was sie testen möchten, aber in der Praxis ist es wahrscheinlich ein Sonnenuntergang eines Funktionstests, da die Benutzer nicht genügend Zeit investieren. Beachten Sie, dass diese Ansicht von den Geschäftsbenutzern stammt, die ich mit anderen Benutzergruppen beschäftige, z. B. Luftfahrt und andere sicherheitskritische Elemente, die diesen Unterschied möglicherweise nicht aufweisen.
quelle
Abnahmetests :
Dies sagt jedoch weiter:
mit einem "Zitat benötigt" Zeichen.
Funktionstests (die tatsächlich zu Systemtests umleiten):
Nach dieser Definition sind sie also ziemlich dasselbe.
Nach meiner Erfahrung sind Abnahmetests normalerweise eine Teilmenge der Funktionstests und werden vom Kunden im formellen Abmeldeprozess verwendet, während Funktions- / Systemtests von der Entwickler- / QS-Abteilung durchgeführt werden.
quelle
Die Beziehung zwischen beiden: Der Abnahmetest umfasst normalerweise Funktionstests, kann jedoch zusätzliche Tests umfassen. Überprüfen Sie beispielsweise die Kennzeichnungs- / Dokumentationsanforderungen.
Funktionstests werden durchgeführt, wenn das zu testende Produkt in eine Testumgebung gebracht wird, die (im Rahmen des Tests) eine Vielzahl von Stimulationen hervorrufen kann, die die Zielumgebung normalerweise oder sogar darüber hinaus erzeugt, während die Reaktion des zu testenden Geräts untersucht wird.
Für ein physisches Produkt (keine Software) gibt es zwei Hauptarten von Abnahmetests : Designtests und Herstellungstests. Bei Designtests wird normalerweise eine große Anzahl von Produktmustern verwendet, die den Herstellungstest bestanden haben. Verschiedene Verbraucher können das Design auf unterschiedliche Weise testen.
Abnahmetests werden als Verifizierung bezeichnet, wenn das Design anhand der Produktspezifikation getestet wird, und Abnahmetests werden als Validierung bezeichnet, wenn das Produkt in der realen Umgebung des Verbrauchers platziert wird.
quelle
Abnahmetests sind nur vom Kunden durchgeführte Tests und umfassen andere Arten von Tests:
Für Funktionstests im Vergleich zu nichtfunktionalen Tests (deren Subtypen) - siehe meine Antwort auf diese SO-Frage .
quelle
Sie sind das gleiche.
Abnahmetests werden auf dem fertigen System so identisch wie möglich mit der tatsächlichen Produktions- / Bereitstellungsumgebung durchgeführt, bevor das System bereitgestellt oder bereitgestellt wird.
Sie können Abnahmetests automatisiert oder manuell durchführen.
quelle