Software Testing - Quick Guide

Was ist Testing?

Testen ist der Prozess zur Herstellung eines Systems oder seine Komponenten der Bewertung (en) mit der Absicht, um herauszufinden, ob sie die genannten Anforderungen erfüllen oder nicht. In einfachen Worten, ist die Ausführung Testen eines Systems, um etwaige Lücken, Fehler oder fehlende Anforderungen im Gegensatz zu den tatsächlichen Anforderungen zu identifizieren.







Nach ANSI / IEEE 1059-Standard können Testing definiert werden - ein Prozess, ein Software-Element zur Analyse der Unterschiede zwischen den bestehenden und erforderlichen Bedingungen zu erfassen (dh Defekte / Fehler / Bugs) und die Funktionen der Software Artikel zu bewerten.

Wer macht Testing?

Es hängt von dem Prozess und den damit verbundenen Interessengruppen des Projekts (s). In der IT-Branche, große Unternehmen haben ein Team mit Verantwortung der entwickelten Software in Zusammenhang mit den gegebenen Anforderungen zu bewerten. Darüber hinaus führen die Entwickler auch Tests, die Unit-Tests aufgerufen wird. In den meisten Fällen werden die folgenden Fachleute beim Testen eines Systems im Rahmen ihrer jeweiligen Kapazitäten beteiligt:

  • Software Tester
  • Softwareentwickler
  • Projektleiter / Geschäftsführer
  • Endbenutzer

Verschiedene Unternehmen haben unterschiedliche Bezeichnungen für Menschen, die die Software auf der Grundlage ihrer Erfahrungen und Kenntnisse wie Software Tester testen, Software Quality Assurance Engineer QA Analyst usw.

Bei der Prüfung beginnen?

Ein früher Start der Prüfung reduziert die Kosten und die Zeit fehlerfreie Software zu überarbeiten und zu produzieren, die den Kunden geliefert wird. Doch in Software Development Life Cycle (SDLC), können Tests von den Anforderungen gestartet werden Phase Sammeln und bis zum Einsatz der Software fortgesetzt. Es hängt auch von dem Entwicklungsmodell, das verwendet wird. Zum Beispiel in dem Wasserfall-Modell wird formale Tests in der Testphase durchgeführt wird; sondern im inkrementalen Modell, Prüfung wird am Ende jeden Inkrement / Iteration durchgeführt, und die gesamte Anwendung ist am Ende getestet.

Die Prüfung erfolgt in verschiedenen Formen in jeder Phase der SDLC getan:

Während der Anforderung Sammelphase werden die Analyse und Überprüfung der Anforderungen auch als Test angesehen.

Die Überprüfung der Konstruktion in der Konzeptionsphase mit der Absicht, um das Design zu verbessern, wird auch als Test angesehen.

Die Tests wurden von einem Entwickler nach Abschluss des Codes durchgeführt wird, auch als Test kategorisiert.

Bei der Prüfung zu stoppen?

Es ist schwierig, zu bestimmen, wann Tests zu stoppen, als Test ein nie endender Prozess ist, und niemand kann behaupten, dass eine Software zu 100% getestet. Folgende Aspekte sind zum Anhalten des Testprozesses in Betracht gezogen werden:

Überprüfung - Validierung

Diese beiden Begriffe sind sehr verwirrend für die meisten Menschen, die sie untereinander austauschbar verwendet werden. Die folgende Tabelle zeigt die Unterschiede zwischen Verifikation und Validierung.

QC kann als Teilmenge der Qualitätssicherung in Betracht gezogen werden.

Testen ist die Teilmenge der Qualitätskontrolle.

Revision und Inspektion

Prüfung. Es ist ein systematisches Verfahren, um zu bestimmen, wie der eigentliche Prüfvorgang innerhalb einer Organisation oder einem Teams durchgeführt wird. Im Allgemeinen ist es eine unabhängige Untersuchung der Vorgänge bei der Erprobung einer Software beteiligt. Gemäß IEEE, ist es ein Überprüfungsprozess des dokumentierte die Organisationen implementieren und befolgen. Prüfungsarten umfassen Legal Compliance Audit, Internal Audit und System Audit.

Inspektion. Es ist eine formale Technik, die durch die Identifizierung eines Fehlers oder eine Lücke formelle oder informelle technische Überprüfungen jeden Artefakt handelt. Gemäß IEEE94, Inspektion ist eine formale Bewertung Technik, bei der Software-Anforderungen, Entwürfe oder Codes im Detail von einer Person untersucht oder einer anderen Gruppe als der Autor Fehler, Verletzungen von Entwicklungsstandards zu erkennen, und andere Probleme.

Testen und Debuggen

Testen. Es beinhaltet die Ermittlung Bug / Fehler / Defekt in einer Software, ohne sie zu korrigieren. Normalerweise Profis mit einer Qualitätssicherung Hintergrund sind in Bugs Identifizierung beteiligt. Die Prüfung erfolgt in der Testphase durchgeführt.

Debuggen. Es beinhaltet die Identifizierung, Isolierung und Fixierung der Probleme / Bugs. Entwickler, die die Software Verhalten Debuggen beim Antreffen eines Fehlers im Code codieren. Debugging ist ein Teil des White Box Testing oder Unit Testing. Debuggen kann in der Entwicklungsphase durchgeführt werden, während Unit Testing leitende oder in Phasen, während die gemeldeten Fehler zu beheben.

Viele Organisationen rund um den Globus entwickeln und unterschiedliche Standards implementieren, um die Qualitätsanforderungen ihrer Software zu verbessern. Dieses Kapitel beschreibt kurz einige der weit verbreiteten Standards in Bezug auf Qualitätssicherung und Testing.

ISO / IEC 9126

Diese Norm behandelt die folgenden Aspekte der Qualität einer Software-Anwendung zu bestimmen:

  • Qualitätsmodell
  • externe Metriken
  • interne Kennzahlen
  • Qualität im Einsatz Metriken

Diese Norm stellt eine Reihe von Qualitätsmerkmalen für jede Software wie zum Beispiel:

  • Funktionalität
  • Zuverlässigkeit
  • Verwendbarkeit
  • Wirksamkeit
  • Wartbarkeit
  • Portabilität

Die oben genannten Qualitätsmerkmale sind weiter unterteilt in Unterfaktoren, die Sie studieren können, wenn Sie den Standard im Detail studieren.

ISO / IEC 9241-11

Teil 11 dieser Norm befasst sich mit dem Ausmaß, in dem ein Produkt durch bestimmte Benutzer verwendet werden, um bestimmte Ziele Effektivität, Effizienz und Zufriedenheit in einem bestimmten Nutzungskontext zu erreichen.

Diese Norm vorgeschlagen, einen Rahmen, der die Usability-Komponenten und die Beziehung zwischen ihnen beschreibt. In dieser Norm wird die Benutzerfreundlichkeit in Bezug auf die Benutzerleistung und Zufriedenheit betrachtet. Nach ISO 9241-11, hängt Usability Nutzungskontext und das Niveau der Usability ändert sich der Kontext ändert.

SQuaRE ist unterteilt in Unterteile, wie beispielsweise:

  • ISO 2500n - Qualitätsmanagement Abteilung
  • ISO 2501n - Qualitätsmodell Abteilung
  • ISO 2502n - Qualität Meßteilung
  • ISO 2503n - Qualitätsanforderungen der Division
  • ISO 2504n - Bewertung der Qualität der Division

Die wichtigsten Inhalte der SQuaRE sind:

  • Begriffe und Definitionen
  • Referenzmodelle
  • Allgemeine Anleitung
  • Einzelne Division Führungen
  • Standard in Bezug auf Requirement Engineering (d Spezifikation, Planung, Messung und Evaluierung)






ISO / IEC 12119

Diese Norm befasst sich mit Software-Pakete an den Client ausgeliefert. Es funktioniert nicht mit den Kunden Produktionsprozess konzentrieren oder befassen. Die wichtigsten Inhalte sind zu folgenden Punkten zu:

  • Satz von Anforderungen an Software-Paketen.
  • Anleitung zum Testen eines gelieferten Softwarepaketes gegen die festgelegten Anforderungen.

Sonstiges

Einige der anderen Standards in Bezug auf QA und Testing Prozesse sind nachfolgend aufgeführt:

Manual Testing

Manuelles Testen umfasst manuell ein Software-Tests, das heißt, ohne irgendeine automatisiertes Werkzeug oder ein Skript. Bei dieser Art nimmt der Tester über die Rolle eines Endbenutzers und testet die Software unerwartetes Verhalten oder Fehler zu identifizieren. Es gibt verschiedene Stufen für die manuelle Prüfung, wie Komponententests, Integrationstests, Systemtests und Benutzerabnahmeprüfung.

Tester verwenden Testpläne, Testfälle oder Testszenarien, eine Software zu testen, um die Vollständigkeit der Tests zu gewährleisten. Manuelles Testen umfasst auch explorative Tests, als Tester die Software erforschen, um Fehler darin zu erkennen.

Automation Testing

Automation Tests, die auch als Testautomatisierung bekannt ist, ist, wenn der Tester schreibt Skripte und verwendet eine andere Software das Produkt zu testen. Dieser Prozess beinhaltet die Automatisierung eines manuellen Prozesses. Automation Testing wird verwendet, um die Testszenarien neu zu laufen, die manuell durchgeführt wurden, schnell und immer wieder.

Software Testing - Quick Guide

Abgesehen von Regressionstests, Automatisierungstests werden auch testen Sie die Anwendung von Last, Leistung und Stress Sicht verwendet. Es erhöht die Testabdeckung, verbessert die Genauigkeit und spart Zeit und Geld im Vergleich zu manuellen Tests.

Was ist Automate?

Es ist nicht möglich, alles in einer Software zu automatisieren. Die Bereiche, in denen ein Benutzer Transaktionen wie die Login-Formular oder Anmeldeformulare machen, jeder Bereich, in die große Anzahl von Benutzern auf die Software zugreifen kann gleichzeitig automatisiert werden soll.

Darüber hinaus können alle GUI Elemente, Verbindungen mit Datenbanken, Feld Validierungen usw. effizient durch die Automatisierung der manuellen Prozess getestet werden.

Wenn zu automatisieren?

Testautomatisierung sollte unter Berücksichtigung der folgenden Aspekte einer Software verwendet werden:

  • Große und kritische Projekte
  • Projekte, die die gleichen Bereiche erfordern Testen häufig
  • Anforderungen nicht häufig ändern
  • Zugriff auf die Anwendung für Last- und Performance mit vielen virtuellen Benutzern
  • Stabile Software in Bezug auf manuelle Tests
  • Verfügbarkeit von Zeit

Wie zu automatisieren?

Automation wird durch die Verwendung einer unterstützenden Computersprache wie VB-Scripting und eine automatisierte Software-Anwendung getan. Es gibt viele Werkzeuge zur Verfügung, die verwendet werden können, um Automatisierungsskripts zu schreiben. Bevor die Werkzeuge zu erwähnen, lassen Sie uns den Prozess identifizieren, die verwendet werden können, den Testprozess zu automatisieren:

  • Ermittlung von Bereichen innerhalb einer Software für die Automatisierung
  • Die Auswahl des geeigneten Werkzeugs zur Testautomatisierung
  • Schreiben Testskripts
  • Entwicklung von Testanzüge
  • Ausführung von Skripten
  • Erstellen Sie Ergebnisberichte
  • Identifizieren Sie alle mögliche Fehler oder Performance-Probleme

Software Testing-Tools

Die folgenden Tools können für die Automatisierung Tests verwendet werden:

  • HP Quick Test Professional
  • Selen
  • IBM Rational Functional Tester
  • SilkTest
  • Testcomplete
  • Testen überall
  • WinRunner
  • LaodRunner
  • Visual Studio Test Professional
  • Watir

Es gibt verschiedene Methoden, die für Software-Tests verwendet werden können. Dieses Kapitel beschreibt kurz die Methoden zur Verfügung.

Black-Box-Testing

Die Technik des Testens ohne Kenntnis der inneren Funktionsweise der Anwendung aufweist, wird Black-Box-Test genannt. Der Tester ist blind gegenüber der Systemarchitektur und hat keinen Zugriff auf den Quellcode. Typischerweise, während ein Black-Box-Test durchgeführt wird, wird ein Tester mit der Benutzeroberfläche des Systems interagieren, indem Eingänge bereitstellt und Ausgänge der Prüfung, ohne zu wissen, wo und wie die Eingänge auf gearbeitet.

In der folgenden Tabelle sind die Vor- und Nachteile der Black-Box-Tests.

  • Gut geeignet und effizient für große Codesegmente.
  • Code Zugang ist nicht erforderlich.
  • Offenbar trennt Perspektive des Benutzers aus der Sicht des Entwicklers durch sichtbar definierten Rollen.
  • Ein große Anzahl von mäßig qualifizierten Testern kann die Anwendung testen, ohne Kenntnis der Implementierung, Programmiersprache oder Betriebssysteme.
  • Begrenzte Abdeckung, da nur eine ausgewählte Anzahl von Testszenarien tatsächlich durchgeführt wird.
  • Ineffizienten Tests, aufgrund der Tatsache, dass der Tester nur begrenzte Kenntnisse über eine Anwendung hat.
  • Blindabdeckung, da die Tester keine bestimmten Codesegmente oder fehleranfällige Bereiche ausrichten können.
  • Die Testfälle sind schwer zu entwerfen.

White-Box Testing

White-Box-Test ist die detaillierte Untersuchung der internen Logik und Struktur des Codes. White-Box-Test wird auch Glasprüfung oder Open-Box-Test genannt. Um White-Box-Test auf eine Anwendung auszuführen, muss ein Tester die internen Abläufe des Codes kennen.

Der Tester muss einen Blick in den Quellcode haben und welche Einheit / Stück des Codes herauszufinden unpassend verhält.

In der folgenden Tabelle sind die Vor- und Nachteile der White-Box-Tests.

  • Da der Tester Kenntnis des Quellcodes hat, wird es sehr einfach, um herauszufinden, welche Art von Daten effektiv beim Testen der Anwendung helfen kann.
  • Es hilft in den Code zu optimieren.
  • Zusätzliche Zeilen Code kann entfernt werden, die in versteckte Mängel bringen.
  • Durch das Wissen der Tester über den Code, wird eine maximale Abdeckung während Testszenario Schreiben erreicht.

Grau-Box Testing

Grau-Box-Tests ist eine Technik, um die Anwendung zu testen, ein begrenztes Wissen über die internen Abläufe einer Anwendung mit müssen. In der Software-Tests, mehr der Ausdruck den Sie wissen, trägt, desto besser eine Menge Gewicht, während eine Anwendung zu testen.

Die Beherrschung der Domäne eines Systems immer gibt der Tester einen Vorteil gegenüber jemand mit begrenzten Domain Wissen. Im Gegensatz zu Black-Box-Tests, wo die Tester nur testen die Benutzeroberfläche der Anwendung; in grau-Box-Tests, hat der Tester Zugriff auf Design-Dokumente und die Datenbank. Dieses Wissen hat, kann ein Tester besser Testdaten und Testszenarien vorzubereiten, während Sie einen Testplan zu machen.

  • Angebote kombinieren Vorteile der Black-Box und White-Box-Tests, wo immer möglich.
  • Grey-Box-Tester verlassen sich nicht auf den Quellcode; stattdessen verlassen sie sich auf Schnittstellendefinition und Funktionsspezifikationen.
  • Auf der Grundlage der begrenzten verfügbaren Informationen, ein Tester grau-Box kann eine hervorragende Testszenarien entwerfen vor allem um Kommunikationsprotokolle und Datentyp Handhabung.
  • Der Test wird aus der Sicht des Nutzers und nicht der Designer.
  • Da der Zugangscode zu Quelle nicht verfügbar ist, die Fähigkeit, den Code und Testabdeckung durchgehen, ist begrenzt.
  • Die Tests können überflüssig sein, wenn der Software-Designer hat bereits einen Testfall ausgeführt werden.
  • jeden möglichen Eingangsstrom Testen ist unrealistisch, weil es eine unzumutbare Menge Zeit in Anspruch nehmen würde; Daher werden viele Programmpfade ungetestet gehen.

Ein Vergleich von Testmethoden

In der folgenden Tabelle sind die Punkte, die Black-Box-Tests, grau-Box-Tests, und White-Box-Tests unterscheiden.

Der Vergleich der tatsächlichen und der erwarteten Ergebnisse auf die durchgeführten Testfälle basieren.

Eine wirksame Prüfung der Praxis werden die obigen Schritte, um den Testrichtlinien von jeder Organisation angewendet zu sehen und daher wird es sicher, dass die Organisation die strengsten Standards hält, wenn es um Software-Qualität geht.

Unit Testing

Diese Art der Prüfung wird von Entwicklern durchgeführt, bevor das Setup über das Testteam übergeben wird, um formell die Testfälle durchführt. Unit-Tests werden von den jeweiligen Entwicklern auf den einzelnen Einheiten des Quellcodes zugeordnet Bereiche durchgeführt. Die Entwickler verwenden Testdaten, die von den Testdaten des Qualitätssicherungsteam unterscheiden.

Das Ziel der Unit-Tests ist es, jeden Teil des Programms zu isolieren und zu zeigen, dass einzelne Teile in Bezug auf den Anforderungen und Funktionalität korrekt sind.

Einschränkungen der Unit Testing

Die Prüfung kann nicht jeden einzelnen Fehler in einer Anwendung fangen. Es ist unmöglich, jeden Ausführungspfad in jeder Software-Anwendung zu bewerten. Dasselbe ist der Fall mit Komponententests.

Es gibt eine Grenze für die Anzahl von Szenarien und Testdaten, die ein Entwickler verwenden kann, einen Quellcode zu überprüfen. Nachdem alle Möglichkeiten ausgeschöpft sind, gibt es keine andere Wahl, als Unit-Tests zu stoppen und das Codesegment mit anderen Einheiten verschmelzen.

Integrationstests

Integrationstests wird als die Prüfung von kombinierten Teile einer Anwendung definiert ist, um zu bestimmen, ob sie korrekt funktionieren. Bottom-up-Integrationstests und Top-down-Integrationstests: Integrationstests können auf zwei Arten erfolgen.

Integration Testmethode







In Verbindung stehende Artikel