Geht das Projekt auf eine neue Ebene? Testen erforderlich

Angenommen, Sie als Produktentwickler haben die Zielgruppe untersucht, ein erfahrenes Team von Entwicklern und Analysten eingestellt, Marktanteile gewonnen, Vermarkter ziehen Partner an, Kundendienstmanager beraten Sie gründlich und führen regelmäßig Werbeaktionen durch.

Es scheint, dass Sie alles haben. Aber die Zahlungen der Benutzer und das Publikum begannen zu sinken, und die Kunden lehnten das Produkt ab.

Vielleicht ist es eine Frage der Produktion? Werfen Sie einen Blick hinein und vielleicht werden Sie sehen, wie:

  • Hotfixes werden häufiger veröffentlicht als Releases.
  • oder ein Support-Service wird mit Anfragen überschwemmt und analysiert kontinuierlich kritische Fehler;
  • oder sinnvolle Kohorten von Benutzern können die Hauptfunktionen des Dienstes nicht erhalten.

Und selbst nach dem Erkennen von Problemen in dieser Phase ist es nicht immer möglich zu verstehen, wie der gesamte Prozess reguliert werden kann, da häufig jedes Element der Kette seine Arbeit gut macht und das Endergebnis nicht zufriedenstellend ist. Denken Sie vielleicht, es ist Zeit, Tester einzustellen?



***.


Jedes Teammitglied kann testen. Nach den Prinzipien von Agile wird diese Aktivität offiziell von allen durchgeführt, nicht nur von Testern. Analysten wissen besser als jeder andere, welche Funktionen der Kunde erwartet und wie sie funktionieren sollten. Unit-Tests, Code-Reviews, Paarprogrammierung und regelmäßige Entwickler-Selbsttests stellen die Qualität des Codes sicher. Es gibt jedoch Fälle, in denen diese Prüfung für die endgültige Qualität nicht mehr ausreicht. In diesem Moment kommen unabhängige Tests in die "Szene".

Tests, die von einer unabhängigen Berufsgruppe durchgeführt werden, werden als unabhängig bezeichnet. Je weniger das Team die von den Testern durchgeführten Verfahren und Schlussfolgerungen beeinflusst, desto unabhängiger ist es. B. Beiser in der Arbeit "Testen der Black Box & Raquo;; schrieb: „Der Zweck unabhängiger Tests besteht darin, das Produkt aus einem anderen Blickwinkel zu betrachten und daher andere Tests durchzuführen. Daher werden vielseitigere Tests durchgeführt, als wenn nur die Entwickler testen würden. “
Professionelles Testen beginnt mit einer Testanalyse und einem Testdesign:

  • Auswahl eines minimalen Satzes von Überprüfungen, um das maximale Maß an Funktionalität sicherzustellen;
  • Einstellen der Reihenfolge der Testläufe in Übereinstimmung mit der Kritikalität der Funktion und den Risiken der Fehlerfreigabe.

Die Notwendigkeit professioneller unabhängiger Tests ergibt sich unter folgenden Bedingungen:

1. Schnelles Wachstum


Der Erfolg des Produkts im Wettbewerb ist eine großartige Veranstaltung sowie eine unerwartete Belastung der Produktion. Neue Benutzer, neue Anforderungen und umfangreiche Änderungen zwingen das Team, mehr Aufgaben in kürzerer Zeit auszuführen. Infolgedessen hat das Team keine Zeit zum Testen oder beim intuitiven Testen ( Ad-hoc-Test ) werden kritische Fehler übersehen.

Das Testen entwickelt sich parallel zu anderen Wissensgebieten in der Softwareproduktion.

Ansätze und Methoden sind nicht so volatil. Die neueste Innovation im Testdesign wurde 2009 von James A. Whittaker in seinem Buch „Exploratory Software Testing“ veröffentlicht . In der Zwischenzeit werden kontinuierlich neue Testwerkzeuge entwickelt, darunter:

  • Tools zur schnellen Überprüfung des Layouts in verschiedenen Browsern und Geräten, zur Abstimmung mit Layouts, Rechtschreibung, Seitenantwortzeit usw.
  • Tools zum Ausführen, Umleiten, Ändern, Dekodieren und Verfolgen von API-Anforderungen;
  • Tools zum Vorbereiten von Testdaten und -bedingungen in Web-, Desktop-, Mobil- und API-Anwendungen.

Professionelle Tester verbessern und beschleunigen das Testen mithilfe moderner Techniken und Tools. Achten Sie besonders darauf, effektive Lösungen zu finden, und ermöglichen Sie dem Team, sich auf die Modernisierung der Geschäftsprozesse zu konzentrieren.

2. Entropie


Ein langlebiges Softwareprodukt spricht von Geschäftsstabilität. Andererseits hat das an den Markt angepasste Produkt Kunden und Anwender im Laufe mehrerer Jahre eine Vielzahl von Funktionen angesammelt, darunter auch logisch widersprüchliche. Die Statistiken des HR-Portals zeigen, dass die natürliche Fluktuation in der IT 8-10% pro Jahr beträgt, was bedeutet, dass das Entwicklungsteam in 5 Jahren um fast die Hälfte aktualisiert werden kann. Während der Lebensdauer des Produkts kann das Team den Architekten und die wichtigsten Entwickler ändern, Personen, die die ursprüngliche Architektur und die Logik ihrer Skalierung kannten.

Laut F. Brooks in der Arbeit   "Mythical Man-Month",Jedes System versucht, die Struktur zu zerstören und die Entropie mit jeder neuen Korrektur zu erhöhen. Im Laufe der Zeit erwirbt das Produkt den sogenannten Legacy-Code, der von inkompatiblen Funktionen, schnellen Bugfixes und unerfahrenen Entwicklern geerbt wurde. Unter dem Druck von Fristen hat das Team jedoch nicht immer Zeit, den Code mit Unit-Tests abzudecken. Unter solchen Bedingungen ist es unmöglich vorherzusagen, welche Teile des Codes von dieser oder jener Korrektur betroffen sind und welcher Fehler dazu führen wird.

Professionelle Tester prüfen nicht nur neue Funktionen, sondern auch die Regression des gesamten Systems. Inhalt und Methode der Durchführung von Regressionstests sind Gegenstand eines gesonderten Schwerpunkts.

3. Anpassung


Es ist gut, wenn ein Produkt neue Benutzerkohorten empfängt, auf Städte und Länder skaliert, auf Funktionen für verschiedene Rollen spezialisiert ist und sich an die Lebensdauer der Benutzer im System anpasst. Aus Sicht des Systems erhöht dies die Menge an kritischen Funktionen und deren Verwendung. Dieselbe Funktion kann von Benutzerkohorten für unterschiedliche Zwecke und unter unterschiedlichen Bedingungen verwendet werden. In einem großen komplexen System gibt es so viele Rollen und Bedingungen, dass der Analyst eine davon bei der Entwicklung von Anforderungen vergessen kann. Tatsächlich kann ein Killer-Feature für eine Rolle zu einem Blockierungsfehler für eine andere werden, der nicht weniger bedeutsam ist.

Professionelle Tests überprüfen die Verwendung des Systems auf Übereinstimmung mit den Zielen der Benutzer, stellen klärende Fragen und passen den Inhalt der Regressionstests an die neuen Prioritäten und Geschäftsaufgaben des Systems an. Die Aktualisierung des Satzes und der Prioritäten der Tests ist Gegenstand besonderer Aufmerksamkeit des Testers.

4. Verteilung


Die heutige IT-Umgebung bietet endlose Auswahlmöglichkeiten, Mikrodienstarchitekturen, Cloud-Rechenzentren und verteilte Projektteams. Ganze Produkte werden aus Anwendersicht in Mikroanwendungen aufgeteilt, die in verschiedenen Entwicklungssprachen geschrieben, auf verschiedenen Kontinenten platziert und von verschiedenen Projektteams und Unternehmen erstellt wurden.

Zum Beispiel ist der Kauf eines Schmuckstücks in einem Online-Shop einerseits eine Aktion mit wenigen Klicks, andererseits die Verarbeitung und Übertragung von Daten in mindestens drei Anwendungen - auf der Website des Shops, im Zahlungsgateway und im Zahlungssystem. Jede Anwendung wird von einem Projektteam mit Zielen, Organisationsstruktur und Plänen entwickelt.

Unter diesen Bedingungen ist das wahrscheinliche Ergebnis „die Kugel ist herausgeflogen, das Problem ist auf Ihrer Seite“: Wenn jedes Team seinen Teil gemäß den Anforderungen entwickelt hat, aber zusammen ergeben sie keine Arbeitsfunktion.
Vor der Inbetriebnahme konsultieren, überwachen, konfigurieren, konfigurieren professionelle Tester Umgebungen für den Integrationstestlauf und führen Überprüfungen aus Sicht des Endbenutzers und nicht nur der Anforderungen für einzelne Komponenten durch.

Große, altersbedingte, beliebte und sich schnell ändernde Produkte verpflichten das Testen daher zu einer separaten Art von Aktivität. Effektive Tests sind mit speziellen Methoden, Tools und einem bestimmten Ziel ausgestattet, das sich von den Zielen des restlichen Teams unterscheidet. Das Ziel des Analysten ist es, die tatsächlichen Bedürfnisse des Kunden herauszufinden, das Ziel des Entwicklers ist es, die bestellten Änderungen vollständig zu liefern, das Ziel des Testers ist es, das gesamte System zu testen, den Benutzer zu untersuchen und stattdessen auf Fehler zu stoßen.

***.


Die Delegation des Testens einer separaten Rolle unter der Kontrolle eines Teams ist der zweite Schritt zum unabhängigen Testen. Tester können selbstständig eingestellt oder in einer unabhängigen Organisation ausgelagert werden.

Durch das Auslagern von Tests in diesem Schritt erhält das Unternehmen:

  • professionelles Testen Ihres Produkts mit relevanten Werkzeugen;
  • garantiert qualifiziertes Personal. Das Outsourcing ist auf die Auswahl und Entwicklung von Mitarbeiterkompetenzen spezialisiert.
  • die Möglichkeit, Tests für eine begrenzte Zeit zu verwenden, eine zusätzliche Art von Tests anzuziehen oder diese zu ersetzen;
  • transparente Arbeit der Tester.

Outsourcing-Testunternehmen arbeiten für einen guten Ruf: Je höher dieser Wert ist, desto besser wird der Service erbracht. Wie läuft es mit Tests in Ihrem Unternehmen? Teile deine Erfahrung :)

All Articles