it-swarm.com.de

Unterschied zwischen Abnahmetest und Funktionstest?

Was ist der wirkliche Unterschied zwischen Abnahme- und Funktionstests?

Was sind die Highlights oder Ziele von jedem? Überall, wo ich lese, sind sie mehrdeutig.

130
JavaRocky

In meiner Welt verwenden wir die Begriffe wie folgt:

Funktionsprüfung : Dies ist eine Verifizierung -Aktivität; Haben wir ein korrekt funktionierendes Produkt gebaut? Erfüllt die Software die Geschäftsanforderungen? 

Für diese Art von Tests gibt es Testfälle, die alle denkbaren Szenarien abdecken, selbst 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 dem Zeitpunkt packen können, es muss kein "Produktionskalender" sein, solange es brauchbar ist.

Abnahmetest : Dies ist eine validation -Aktivität; Haben wir das Richtige gebaut? Ist es das, was der Kunde wirklich braucht? 

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 die Software erwartet wird. Dieser Test muss in einer "produktionsähnlichen" Umgebung mit Hardware ausgeführt werden, die der des Kunden entspricht oder nahe daran liegt. Dann testen wir unsere "ilities":

  • Zuverlässigkeit, Verfügbarkeit : Validiert über einen Stresstest.

  • Skalierbarkeit : Validiert über einen Belastungstest.

  • Usability : Validiert durch eine Inspektion und Demonstration gegenüber dem Kunden. Ist die Benutzeroberfläche nach ihrem Geschmack konfiguriert? Haben wir das Kundenbranding an den richtigen Stellen platziert? Haben wir alle Felder/Bildschirme, nach denen sie gefragt haben?

  • Sicherheit (aka, Sicherheit, nur zum Einpassen): Validiert durch Demonstration. Manchmal wird ein Kunde eine externe Firma beauftragen, um eine Sicherheitsüberprüfung und/oder einen Intrusionstest durchzuführen.

  • Wartungsfreundlichkeit : Validiert durch Demonstration der Bereitstellung von Softwareupdates/Patches.

  • 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 daran halten.

158
Patrick Cuff

Ich mag die Antwort von Patrick Cuff. Was ich gerne hinzufüge, ist die Unterscheidung zwischen einem Testlevel und einem Testtyp, was für mich ein Augenöffner war.

teststufen

Testlevel ist mit V-Modell , einem Beispiel, einfach zu erklären: enter image description here Jeder Testlevel hat seinen entsprechenden Entwicklungslevel. Es hat einen typischen Zeitcharakter, sie werden in einer bestimmten Phase des Entwicklungslebenszyklus ausgeführt.

  1. bauteil-/Einheitentest => Überprüfung des detaillierten Entwurfs
  2. testen der Komponenten-/Einheitenintegration => Überprüfung des globalen Designs
  3. systemtest => Überprüfung der Systemanforderungen
  4. systemintegrationstest => Überprüfung der Systemanforderungen
  5. abnahmetests => Validierung der Benutzeranforderungen

testtypen

Ein Testtyp ist ein Merkmal, das sich auf ein bestimmtes Testziel konzentriert. Testtypen betonen Sie Ihre Qualitätsaspekte, auch als technische oder nicht funktionale Aspekte bezeichnet. Testtypen kann auf jeder Teststufe ausgeführt werden. Ich verwende als Prüftypen die in ISO/IEC 25010: 2011 genannten Qualitätsmerkmale.

  1. funktionsprüfung
  2. zuverlässigkeitsprüfung
  3. leistungstest
  4. funktionsfähigkeitsprüfung
  5. sicherheitstests
  6. verträglichkeitsprüfung
  7. wartbarkeitstests
  8. übertragbarkeitsprüfung

Um es zu vervollständigen. Es gibt auch so etwas wie Regressionstests. Dies ist eine zusätzliche Klassifizierung neben Teststufe und Testart. Ein Regressionstest ist ein Test, den Sie wiederholen möchten, weil er etwas Kritisches in Ihrem Produkt berührt. Es ist in der Tat eine Untergruppe 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 ist eine Antwort darauf.

63
Nick V

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 Serienprodukten durchgeführt werden, bevor sie das Werk verlassen. Bei einem Funktionstest wird überprüft, ob das Produkt tatsächlich so funktioniert, wie Sie (der Entwickler) glauben.

Abnahmeprüfungen bestätigen, dass das Produkt das zu lösende Problem tatsächlich löst. Dies kann am besten vom Benutzer (Kunden) ausgeführt werden, z. B. indem er seine/ihre Aufgaben ausführt, die von der Software unterstützt werden. Wenn die Software diesen Praxistest besteht, wird die bisherige Lösung ersetzt. Dieser Abnahmetest kann in der Produktion manchmal nur ordnungsgemäß durchgeführt werden, insbesondere wenn Sie anonyme Kunden haben (z. B. eine Website). Eine neue Funktion wird daher erst nach Tagen oder Wochen der Nutzung akzeptiert.

Funktionstests - Testen Sie das Produkt und stellen Sie sicher, dass es die Eigenschaften aufweist, die Sie entworfen oder gebaut haben (Funktionen, Geschwindigkeit, Fehler, Konsistenz usw.).

Abnahmetests - Testen Sie das Produkt in seinem Kontext. Dies erfordert die (Simulation) der Interaktion von Menschen. Testen Sie, ob das Produkt die gewünschte Wirkung auf die ursprünglichen Probleme hat.

22
Machiel

Die Antwort ist die Meinung. Ich habe an vielen Projekten und Testmanagern und IssuManagern mitgewirkt und die verschiedenen Rollen und die Beschreibungen in den verschiedenen Büchern unterscheiden sich daher hier meine Variation:

Funktionsprüfung: Nehmen Sie die geschäftlichen Anforderungen und testen Sie alles gut und gründlich aus funktionaler Sicht.

Abnahmetests: Der "zahlende" Kunde führt die von ihm gewünschten Tests durch, damit er das gelieferte Produkt annehmen kann. Das hängt vom Kunden ab, aber in der Regel sind die Tests nicht so gründlich wie die Funktionstests, insbesondere wenn es sich um ein internes Projekt handelt, da die Beteiligten die Testergebnisse in früheren Testphasen ü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. 

9
hol
  1. Publikum. Funktionstests dienen dazu, den Mitgliedern des Teams, die die Software produzieren, sicherzustellen, dass sie das tun, was sie erwarten. Durch Abnahmetests wird sichergestellt, dass der Verbraucher seinen Bedürfnissen entspricht. 

  2. Umfang. Beim Funktionstest wird jeweils nur die Funktionalität einer Komponente getestet. Die Abnahmeprüfung deckt alle Aspekte des Produkts ab, die für den Verbraucher so wichtig sind, dass sie vor der Abnahme der Software getestet werden können (d. H. Alles, was die Zeit oder das Geld wert ist, das erforderlich ist, um es auf seine Akzeptanz zu prüfen). 

Software kann Funktionstests, Integrationstests und Systemtests bestehen. Abnahmeprüfungen nur dann, wenn der Kunde feststellt, dass die Funktionen ihre Anforderungen nicht erfüllen. Dies würde in der Regel bedeuten, dass jemand die Spezifikation vermasselt hat. Software könnte auch einige Funktionstests nicht bestehen, muss jedoch Abnahmeprüfungen bestehen, da der Kunde bereit ist, mit einigen Funktionsfehlern umzugehen, solange die Software die Kernaufgaben erledigt, die sie benötigen (Beta-Software wird häufig von einem Teil der Benutzer vorher akzeptiert) ist voll funktionsfähig).

8
Ethel Evans

Funktionstest: Anwendung von Testdaten, die sich aus den angegebenen funktionalen Anforderungen ergeben, ohne Rücksicht auf die endgültige Programmstruktur. Auch als Blackbox-Test bezeichnet.

Abnahmetests: Formale Tests, die durchgeführt werden, um zu bestimmen, ob ein System die Annahmekriterien erfüllt oder nicht - ermöglicht dem Endbenutzer zu bestimmen, ob das System akzeptiert werden soll oder nicht.

2
Prashant Vadher

Aus meiner Sicht ist der Hauptunterschied, wer sagt, ob die Tests erfolgreich sind oder nicht.

Ein Funktionstest, bei dem das System vordefinierte Anforderungen erfüllt. Sie wird von den für die Entwicklung des Systems Verantwortlichen durchgeführt und geprüft.

Ein Abnahmetest wird von den Benutzern abgemeldet. Im Idealfall sagen die Benutzer, was sie testen möchten, aber in der Praxis ist dies wahrscheinlich der 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, z. Luftfahrt und andere sicherheitskritische Faktoren könnten diesen Unterschied möglicherweise nicht aufweisen.

1
Mark

Abnahmeprüfung :

... ist ein Black-Box-Test, der vor der Lieferung an einem System durchgeführt wird (z. B. Software, viele gefertigte mechanische Teile oder Chargen chemischer Produkte).

Obwohl dies so aussieht:

Es ist auch als Funktionstest, Black-Box-Test, Release-Akzeptanz, QS-Test, Anwendungstest, Vertrauens- und Endtest, Validierungstest oder Werksabnahme bekannt

mit einem "Zitierzeichen" markiert.

Funktionstest (der tatsächlich zum Systemtest umleitet):

auf einem vollständigen, integrierten System durchgeführt, um die Einhaltung der festgelegten Anforderungen durch das System zu bewerten. Systemtests fallen in den Black-Box-Test und sollten daher keine Kenntnis des inneren Designs des Codes oder der Logik erfordern.

Aus dieser Definition sind sie also ziemlich dasselbe.

In meiner Erfahrung sind Abnahmetests in der Regel eine Teilmenge der Funktionstests und werden vom Kunden im formalen Abzeichnungsprozess verwendet, während Funktions-/Systemtests die vom Entwickler/der QS-Abteilung durchgeführten Tests sind.

1
ChrisF

Abnahmetests sind nur vom Kunden durchgeführte Tests und umfassen andere Arten von Tests:

  • Funktionsprüfung: "Diese Taste funktioniert nicht"
  • Nicht-Funktionsprüfung: "Diese Seite funktioniert, ist aber zu langsam"

Für Funktionstests gegen nicht-Funktionstests (ihre Untertypen) - siehe meine Antwort auf diese SO-Frage .

0
Andrejs

Die Beziehung zwischen den beiden: Abnahmetests umfassen normalerweise Funktionstests, sie können jedoch zusätzliche Tests enthalten. Zum Beispiel Überprüfung der Kennzeichnungs-/Dokumentationsanforderungen.

Funktionstest ist, wenn das zu testende Produkt in einer Testumgebung platziert wird, die (im Rahmen des Tests) eine Vielzahl von Stimulationen hervorrufen kann, die die Zielumgebung normalerweise erzeugt oder sogar darüber hinaus, während die Reaktion des Geräts unter untersucht wird Prüfung.

Für ein physisches Produkt (keine Software) gibt es zwei Haupttypen von Acceptance-Tests: Design-Tests und Fertigungstests. Konstruktionstests verwenden normalerweise eine große Anzahl von Produktmustern, die den Produktionstest bestanden haben. Verschiedene Verbraucher können das Design auf verschiedene Arten testen.

Abnahmetests werden als Verifizierung bezeichnet, wenn das Design anhand der Produktspezifikationen getestet wird, und Abnahmetests werden als Validierung bezeichnet, wenn das Produkt in der realen Umgebung des Verbrauchers platziert wird.

0
ali65