Was ist Softwaretesten? 100+ Free Manual Testing Tutorials
On Oktober 28, 2021 by adminA Complete Software Testing Guide with 100+ Manual Testing Tutorials with Testing Definition, Types, Methods, and Process Details:
What is Software Testing?
Software Testing is a process of verifying and validating the functionality of an application to find whether it satisfies the specified requirements. Es ist der Prozess der Fehlersuche in einer Anwendung und der Überprüfung, ob die Anwendung gemäß den Anforderungen des Endbenutzers funktioniert.
Was ist manuelles Testen?
Manuelles Testen ist ein Prozess, bei dem das Verhalten eines entwickelten Codes (Software, Modul, API, Funktion usw.) mit dem erwarteten Verhalten (Anforderungen) verglichen wird.
Liste der Tutorials zum manuellen Testen von Software
Dies ist die ausführlichste Reihe von Tutorials zum Thema Softwaretests. Gehen Sie die in dieser Reihe erwähnten Themen sorgfältig durch, um die grundlegenden und fortgeschrittenen Testtechniken zu erlernen.
Diese Reihe von Tutorials wird Ihr Wissen bereichern und Ihre Testfähigkeiten verbessern.
Praxis End-to-End Manual Testing Free Training on a Live Project:
Tutorial #1: Basics of Manual Software Testing
Tutorial #2: Live Project introduction
Tutorial #3: Test Scenario Writing
Tutorial #4: Write a Test Plan Document from Scratch
Tutorial #5: Writing Test Cases from SRS Document
Tutorial #6: Testdurchführung
Tutorial #7: Fehlerverfolgung und Testabnahme
Tutorial #8: Software-Testing-Kurs
Software Testing Life-Cycle:
Tutorial #1: STLC
Web Testing:
Tutorial #1: Web Application Testing
Tutorial #2: Cross Browser Testing
Test Case Management:
Tutorial #1: Test Cases
Tutorial #2: Muster-Testfallvorlage
Tutorial #3: Requirements Traceability Matrix (RTM)
Tutorial #4: Test Coverage
Tutorial #5: Testdatenmanagement
Testmanagement:
Tutorial #1: Test Strategy
Tutorial #2: Test Plan Template
Tutorial #3: Test Estimation
Tutorial #4: Test Management Tools
Tutorial #5: HP ALM Tutorial
Tutorial #6: Jira
Tutorial #7: TestLink Tutorial
Testtechniken:
Tutorial #1: Use Case Testing
Tutorial #2: State Transition testing
Tutorial #3: Boundary Value Analysis
Tutorial #4: Equivalence Partitioning
Tutorial #5: Software testing methodologies
Tutorial #6: Agile Methodology
Defect Management:
Tutorial #1: Bug Life Cycle
Tutorial #2: Bug Reporting
Tutorial #3: Defect Priority
Tutorial #4: Bugzilla Tutorial
Functional Testing
Tutorial #1: Unit Testing
Tutorial #2: Sanity und Smoke Testing
Tutorial #3: Regression Testing
Tutorial #4: System Testing
Tutorial #5: Akzeptanztests
Tutorial #6: Integrationstests
Tutorial #7: UAT Benutzerakzeptanztests
Nichtfunktionale Tests:
Tutorial #1: Nichtfunktionale Tests
Tutorial #2: Leistungstests
Tutorial #3: Sicherheitstests
Tutorial #4: Webanwendungssicherheitstests
Tutorial #5: Usability-Tests
Tutorial #6: Kompatibilitätstests
Tutorial #7: Installationstests
Tutorial #8: Dokumentationstests
Softwaretestarten:
Tutorial #1: Testarten
Tutorial #2: Black Box Testing
Tutorial #3: Database Testing
Tutorial #4: End to end Testing
Tutorial #5: Exploratory Testing
Tutorial #6: Incremental Testing
Tutorial #7: Accessibility Testing
Tutorial #8: Negative Testing
Tutorial #9: Backend Testing
Tutorial #10: Alpha Testing
Tutorial #11: Beta Testing
Tutorial #12: Alpha- vs. Beta-Tests
Tutorial #13: Gamma-Tests
Tutorial #14: ERP-Tests
Tutorial #15: Statische und dynamische Tests
Tutorial #16: Adhoc-Tests
Tutorial #17: Lokalisierung und Internationalisierungstests
Tutorial #18: Automatisierungstests
Tutorial #19: White Box Testing
Karriere im Software Testing:
Tutorial #1: Die Wahl einer Karriere im Software Testing
Tutorial #2: Wie man einen Job im QA Testing bekommt – Vollständiger Leitfaden
Tutorial #3: Karrieremöglichkeiten für Tester
Tutorial #4: Wechsel von Nicht-IT zu Software Testing
Tutorial #5: Kick Start Your Manual Testing Career
Tutorial #6: Lessons Learned from 10 Years in Testing
Tutorial #7: Survive and Progress in Testing Field
Interview Preparation:
Tutorial #1: QA Resume Preparation
Tutorial #2: Manual Testing Interview Questions
Tutorial #3: Automation Testing Interview Questions
Tutorial #4: QA Interview Questions
Tutorial #5: Handle Any Job Interview
Tutorial #6: Get Testing Job as a Fresher
Testing Different Domain Application:
Tutorial #1: Banking Application Testing
Tutorial #2: Health Care Application Testing
Tutorial #3: Payment Gateway Testing
Tutorial #4: Test Point of Sale (POS) System
Tutorial #5: eCommerce Website Testing
Testing QA Certification:
Tutorial #1: Software Testing Certification Guide
Tutorial #2: CSTE Certification Guide
Tutorial #3: CSQA Certification Guide
Tutorial #4: ISTQB Guide
Tutorial #5: ISTQB Advanced
Advanced Manual Testing Topics:
Tutorial #1: Zyklomatische Komplexität
Tutorial #2: Migration Testing
Tutorial #3: Cloud Testing
Tutorial #4: ETL Testing
Tutorial #5: Software Testing Metrics
Tutorial #6: Web Services
Werfen Sie einen Blick auf das erste Tutorial in dieser Manual Testing Serie!!
Einführung in das manuelle Testen von Software
Manuelles Testen ist ein Prozess, bei dem man das Verhalten eines entwickelten Codes (Software, Modul, API, Funktion usw.) mit dem erwarteten Verhalten (Anforderungen) vergleicht.
Und woher weiß man, welches das erwartete Verhalten ist?
Das erfährt man, indem man die Anforderungen sorgfältig liest oder anhört und sie vollständig versteht. Denken Sie daran, dass es sehr wichtig ist, die Anforderungen vollständig zu verstehen.
Stellen Sie sich vor, Sie wären der Endbenutzer dessen, was Sie testen wollen. Dann sind Sie nicht mehr an das Anforderungsdokument oder die Worte darin gebunden. Sie können dann die Kernanforderung verstehen und das Verhalten des Systems nicht nur anhand des Geschriebenen oder Gesagten überprüfen, sondern auch anhand Ihres eigenen Verständnisses und anhand von Dingen, die nicht geschrieben oder gesagt wurden.
Zuweilen kann es sich um eine fehlende Anforderung (unvollständige Anforderung) oder eine implizite Anforderung (etwas, das nicht gesondert erwähnt werden muss, aber erfüllt werden sollte) handeln, und auch darauf müssen Sie testen.
Ferner muss eine Anforderung nicht unbedingt dokumentiert sein. Man kann sehr wohl Wissen über die Softwarefunktionalität haben oder man kann sogar raten und dann Schritt für Schritt testen. Wir nennen das im Allgemeinen Ad-hoc-Tests oder Sondierungstests.
Lassen Sie uns einen genaueren Blick darauf werfen:
Zunächst sollten wir uns darüber im Klaren sein, dass das Konzept dasselbe ist, egal ob Sie eine Softwareanwendung oder etwas anderes (z. B. ein Fahrzeug) testen. Die Herangehensweise, die Werkzeuge und die Prioritäten mögen sich unterscheiden, aber das Kernziel bleibt dasselbe, und es ist EINFACH, nämlich das tatsächliche Verhalten mit dem erwarteten Verhalten zu vergleichen.
Zweitens – Testen ist wie eine Haltung oder Denkweise, die von innen kommen sollte. Fähigkeiten können erlernt werden, aber man wird nur dann ein erfolgreicher Tester, wenn man einige Qualitäten von Haus aus in sich trägt. Wenn ich sage, dass Testfähigkeiten erlernt werden können, meine ich eine gezielte und formale Ausbildung rund um den Softwaretestprozess.
Aber was sind die Qualitäten eines erfolgreichen Testers? Sie können sie unter dem folgenden Link nachlesen:
Lesen Sie hier =>Qualitäten hocheffektiver Tester
Ich empfehle dringend, den oben genannten Artikel durchzulesen, bevor Sie mit diesem Tutorial fortfahren. Er wird Ihnen helfen, Ihre Eigenschaften mit denen zu vergleichen, die in der Rolle des Software-Testers erwartet werden.
Für diejenigen, die keine Zeit haben, den Artikel durchzulesen, hier eine Zusammenfassung:
„Ihre Neugierde, Aufmerksamkeit, Disziplin, logisches Denken, Leidenschaft für die Arbeit und die Fähigkeit, Dinge zu sezieren, sind sehr wichtig, um ein erfolgreicher Tester zu sein. Bei mir hat es funktioniert, und ich glaube fest daran, dass es auch bei Ihnen funktionieren wird. Wenn Sie diese Qualitäten bereits haben, dann muss es auch für Sie funktionieren.“
Wir haben über die wichtigsten Voraussetzungen gesprochen, um Softwaretester zu werden. Jetzt wollen wir verstehen, warum das manuelle Testen seine eigenständige Existenz hat und immer haben wird, mit oder ohne das Wachstum des automatisierten Testens.
Warum manuelle Tests erforderlich sind?
Wissen Sie, was das Beste daran ist, ein Tester zu sein, und zwar ein manueller Tester?
Es ist die Tatsache, dass man sich hier nicht nur auf seine Fähigkeiten verlassen kann. Man muss einen Denkprozess haben/entwickeln und verbessern. Das ist etwas, was man nicht einfach für ein paar Euro kaufen kann. Du musst selbst daran arbeiten.
Du musst die Gewohnheit entwickeln, Fragen zu stellen, und du musst sie jede Minute stellen, wenn du prüfst. Meistens sollten Sie diese Fragen eher an sich selbst als an andere stellen.
Ich hoffe, Sie haben den Artikel gelesen, den ich im vorigen Abschnitt empfohlen habe (d.h. die Eigenschaften hocheffektiver Tester). Wenn ja, dann wissen Sie, dass Testen ein Denkprozess ist, und wie erfolgreich Sie als Tester sein werden, hängt ganz von den Qualitäten ab, die Sie als Person besitzen.
Sehen wir uns diesen einfachen Ablauf an:
- Sie tun etwas (führen Handlungen aus), während Sie es mit einer gewissen Absicht beobachten (Vergleich mit dem Erwarteten). Jetzt kommt deine Beobachtungsgabe und Disziplin, Dinge zu tun, ins Spiel.
- Voila! Was war das? Du hast etwas bemerkt. Du hast es bemerkt, weil du den Details vor dir perfekte Aufmerksamkeit geschenkt hast. Es lässt dich nicht mehr los, weil du neugierig bist. Es war nicht in deinem Plan, dass etwas Unerwartetes/Ungewöhnliches passiert, du wirst es bemerken und du wirst es weiter erforschen. Aber jetzt tust du es. Du kannst es loslassen. Aber du solltest es nicht loslassen.
- Du bist glücklich, du hast die Ursache, die Schritte und das Szenario herausgefunden. Jetzt werden Sie dies dem Entwicklungsteam und den anderen Beteiligten in Ihrem Team angemessen und konstruktiv mitteilen. Sie können dies über ein Tool zur Fehlerverfolgung oder mündlich tun, aber Sie müssen sicherstellen, dass Sie es konstruktiv kommunizieren.
- Oops! Und wenn ich es so mache? Was ist, wenn ich eine richtige ganze Zahl eingebe, aber mit führenden Leerzeichen? Was wäre, wenn? … Was wäre, wenn? … Was wäre, wenn? Es endet nicht einfach, es sollte nicht einfach enden. Sie werden sich viele Situationen & vorstellen und in der Tat werden Sie versucht sein, sie auch auszuführen.
Das folgende Diagramm stellt das Leben eines Testers dar:
Lesen Sie die vier oben genannten Punkte noch einmal. Ist Ihnen aufgefallen, dass ich mich sehr kurz gefasst habe, aber dennoch den wichtigsten Teil der Tätigkeit eines manuellen Testers hervorgehoben habe? Und ist Ihnen die fette Hervorhebung einiger Wörter aufgefallen? Das sind genau die wichtigsten Eigenschaften, die ein manueller Tester braucht.
Nun, glauben Sie wirklich, dass diese Handlungen durch irgendetwas anderes vollständig ersetzt werden können? Und der heiße Trend heute – kann es jemals durch Automatisierung ersetzt werden?
In SDLC mit jeder Entwicklungsmethodik, bleiben wenige Dinge immer konstant. Als Tester nehmen Sie die Anforderungen auf und wandeln sie in Testszenarien/Testfälle um. Dann führen Sie diese Testfälle aus oder automatisieren sie direkt (ich weiß, dass einige Unternehmen dies tun).
Wenn Sie sie automatisieren, liegt Ihr Schwerpunkt auf der Automatisierung der geschriebenen Schritte.
Wenden wir uns wieder dem formalen Teil zu, d. h. der Ausführung der manuell geschriebenen Testfälle.
Hier konzentrieren Sie sich nicht nur auf die Ausführung der geschriebenen Testfälle, sondern führen dabei auch eine Menge explorativer Tests durch. Erinnern Sie sich: Sie sind neugierig. Und Sie werden sich vorstellen. Und Sie werden nicht widerstehen können, Sie werden tatsächlich tun, was Sie sich vorgestellt haben.
Das folgende Bild zeigt, wie das Schreiben von Testfällen vereinfacht wird:
Ich fülle ein Formular aus und bin mit dem Ausfüllen des ersten Feldes fertig. Ich bin zu faul, mit der Maus den Fokus auf das nächste Feld zu setzen. Ich drücke die Tabulatortaste. Ich bin auch mit dem Ausfüllen des nächsten und letzten Feldes fertig, jetzt muss ich auf die Schaltfläche „Senden“ klicken, der Fokus ist immer noch auf dem letzten Feld.
Oops, ich habe versehentlich die ‚Enter‘-Taste gedrückt. Ich schaue mal nach, was passiert ist. ODER es gibt eine Schaltfläche zum Absenden, ich werde sie doppelt anklicken. Ich bin nicht zufrieden. Ich klicke mehrmals darauf, zu schnell.
Haben Sie das bemerkt? Es gibt so viele mögliche Benutzeraktionen, sowohl beabsichtigte als auch nicht beabsichtigte.
Es wird Ihnen nicht gelingen, alle Testfälle zu schreiben, die Ihre zu testende Anwendung zu 100% abdecken. Dies muss auf explorative Weise geschehen.
Während Sie die Anwendung testen, werden Sie immer wieder neue Testfälle hinzufügen. Dies werden Testfälle für Fehler sein, auf die Sie gestoßen sind und für die es vorher keinen Testfall gab. Oder, während Sie testen, löst etwas Ihren Gedankenprozess aus und Sie haben ein paar weitere Testfälle, die Sie zu Ihrer Testfallsuite hinzufügen und ausführen möchten.
Auch nach all dem gibt es keine Garantie, dass es keine versteckten Fehler gibt. Eine Software ohne Bugs ist ein Mythos. Man kann nur darauf abzielen, es nahe an Null heranzuführen, aber das kann nicht geschehen, ohne dass ein menschlicher Verstand kontinuierlich dasselbe anstrebt, ähnlich, aber nicht beschränkt auf den Beispielprozess, den wir oben gesehen haben.
Zumindest bis heute gibt es keine Software, die wie ein menschlicher Verstand denkt, wie ein menschliches Auge beobachtet, wie ein Mensch Fragen stellt und beantwortet und dann beabsichtigte und nicht beabsichtigte Aktionen ausführt. Selbst wenn es so etwas gäbe, wessen Verstand, Gedanken und Auge würde es imitieren? Ihren oder meinen? Auch wir Menschen haben nicht dasselbe Recht. Wir sind alle verschieden. Dann…
Notwendigkeit manueller Tests, wenn es Automatisierung gibt:
Automatisiertes Testen hat heutzutage seinen eigenen Anteil am Ruhm und wird in den kommenden Jahren sogar noch mehr haben, aber es kann manuelle QA-Tests (lies: menschliches/exploratives Testen) einfach nicht ersetzen.
Sie haben sicher schon einmal gehört: „Man automatisiert nicht das Testen, man automatisiert das Prüfen“. Dieser Satz sagt viel darüber aus, wo das manuelle QA-Testen im Vergleich zum automatisierten Testen steht. Viele große Namen auf der ganzen Welt haben über dieses Thema geschrieben und gesprochen, daher werde ich nicht viel darauf eingehen.
Automatisierung kann menschliches Testen nicht ersetzen, weil:
- Sie verlangt Laufzeitbewertungen über alles, was vor Ihren Augen (während Sie testen) und in wenigen Fällen auch hinter den Kulissen passiert.
- Es verlangt klare und ständige Beobachtung.
- Es verlangt Befragung.
- Es erfordert eine Untersuchung.
- Es erfordert logisches Denken.
- Es erfordert ungeplante Aktionen, wie sie während des Testens erforderlich sind.
Das Testen kann durch ein Werkzeug/eine Maschine ersetzt werden, das/die in der Lage ist, die Details aufzunehmen, sie zu verarbeiten, Aktionen zu befehlen und sie auszuführen wie ein menschlicher Verstand und ein Mensch, und all dies zur Laufzeit und in allen möglichen Kontexten. Dieses Werkzeug muss wiederum wie alle möglichen Menschen sein.
Kurz gesagt, menschliches Testen kann nicht ersetzt werden. Vielleicht wird es in ein paar Jahren in einem Hollywood-Science-Fiction-Film so aussehen, aber im wirklichen Leben sehe ich es erst in ein paar hundert Jahren kommen, das kann ich mir vorstellen. Ich werde es nicht für immer abschreiben, denn ich glaube an unendliche Möglichkeiten.
Außerdem, selbst wenn es in ein paar hundert Jahren wirklich passieren sollte, kann ich mir das Bild einer beängstigenden Welt gut vorstellen. Zeitalter der Transformers 🙂
=>> Empfohlene Lektüre – Die besten Unternehmen für manuelle Tests
Wie Automatisierung das manuelle Testen ergänzt?
Ich habe schon einmal gesagt und ich sage es noch einmal, dass Automatisierung nicht mehr ignoriert werden kann. In einer Welt, in der Continuous Integration, Continuous Delivery und Continuous Deployment zur Pflicht werden, kann Continuous Testing nicht untätig bleiben. Wir müssen Wege finden, wie wir das schaffen können.
Meistens hilft der Einsatz von immer mehr Arbeitskräften bei dieser Aufgabe auf Dauer nicht weiter. Daher muss der Tester (Testleiter/Architekt/Manager) mit Bedacht entscheiden, was automatisiert und was noch manuell durchgeführt werden soll.
Es wird immer wichtiger, sehr präzise Tests/Prüfungen zu schreiben, damit sie ohne Abweichung von der ursprünglichen Erwartung automatisiert werden können und bei der Rückführung des Produkts als Teil des „Continuous Testing“ verwendet werden können.
Anmerkung: Das Wort „kontinuierlich“ aus dem Begriff „Continuous Testing“ unterliegt bedingten und logischen Aufrufen, ähnlich wie die anderen Begriffe, die wir oben mit dem gleichen Präfix verwendet haben. Kontinuierlich bedeutet in diesem Zusammenhang: mehr und öfter, schneller als gestern. Während es in der Bedeutung sehr wohl jede Sekunde oder Nano-Sekunde bedeuten kann.
Ohne eine perfekte Übereinstimmung von menschlichen Testern und automatisierten Prüfungen (Tests mit präzisen Schritten, erwartetem Ergebnis und dokumentierten Ausstiegskriterien des besagten Tests) ist das Erreichen von Continuous Testing sehr schwierig, was wiederum Continuous Integration, Continuous Delivery und Continuous Deployment erschwert.
Ich habe oben absichtlich den Begriff Ausstiegskriterien eines Tests verwendet. Unsere Automatisierungsanzüge können nicht mehr den traditionellen ähnlich sein. Wir müssen dafür sorgen, dass sie, wenn sie fehlschlagen, schnell fehlschlagen sollten. Und damit sie schnell scheitern, sollten auch die Ausstiegskriterien automatisiert werden.
Beispiel:
Angenommen, es gibt einen Blocker-Defekt, bei dem ich mich nicht bei Facebook anmelden kann.
Die Anmeldefunktion muss dann Ihre erste automatisierte Prüfung sein, und Ihre Automatisierungssuite sollte nicht die nächste Prüfung durchführen, bei der die Anmeldung eine Voraussetzung ist, wie das Posten eines Status. Sie wissen sehr wohl, dass dies fehlschlagen wird. Sorgen Sie also dafür, dass die Prüfung schneller fehlschlägt und veröffentlichen Sie die Ergebnisse schneller, damit der Fehler schneller behoben werden kann.
Als Nächstes kommt etwas, das Sie sicher schon einmal gehört haben – Sie können und sollten nicht versuchen, alles zu automatisieren.
Wählen Sie Testfälle aus, die, wenn sie automatisiert werden, für die menschlichen Tester von großem Nutzen sind und einen guten Return on Investment haben. Es gibt eine allgemeine Regel, die besagt, dass Sie versuchen sollten, alle Testfälle der Priorität 1 zu automatisieren, und wenn möglich auch die der Priorität 2.
Automatisierung ist nicht einfach zu implementieren und zeitaufwendig, daher ist es ratsam, die Automatisierung von Fällen mit niedriger Priorität zu vermeiden, zumindest bis Sie mit den Fällen mit hoher Priorität fertig sind. Die Auswahl der zu automatisierenden Fälle und die Konzentration darauf verbessert die Qualität der Anwendung, wenn sie kontinuierlich eingesetzt und gepflegt wird.
Abschluss
Ich hoffe, Sie haben jetzt verstanden, warum und wie dringend manuelle/menschliche Tests erforderlich sind, um Qualitätsprodukte zu liefern, und wie die Automatisierung sie ergänzt.
Die Bedeutung der manuellen QS-Tests zu erkennen und zu wissen, warum sie etwas Besonderes sind, ist der erste Schritt auf dem Weg zu einem hervorragenden manuellen Tester.
In unseren kommenden Tutorials zum manuellen Testen werden wir einen allgemeinen Ansatz für das manuelle Testen abdecken, wie es mit der Automatisierung koexistiert und viele andere wichtige Aspekte behandeln.
Ich bin sicher, dass Sie immenses Wissen über Softwaretests erlangen werden, wenn Sie die gesamte Liste der Tutorials in dieser Serie durchgehen.
Schreibe einen Kommentar