Was gibt Testautomatisierung

Fehler sind bei der Erstellung von IT-Lösungen teuer. Dies macht sich insbesondere in der Medizin bemerkbar, wo Menschenleben von der Qualität der Software abhängen, oder im Bankwesen, wo große finanzielle Verluste möglich sind. Mit der Testautomatisierung können Sie eine ständige Überprüfung der Produktqualität durchführen. Mal sehen, in welchen Fällen es benötigt wird.

Einige Unternehmen glauben fälschlicherweise, dass Automatisierung eine Verschwendung von Zeit und Geld ist, andere, dass dies ein cooler Trend und eine „Pille“ für alle Krankheiten ist. Überlegen Sie, wo sich der Mittelweg befindet und wo der Automatisierungspunkt liegt.



Warum testen?


Der kleinste Fehler in der Software birgt enorme Kosten. Je besser die Entwicklungsprozesse aufgebaut sind, desto geringer sind die Risiken. Wenn wir uns jedoch den Fakten zuwenden, sehen wir, dass selbst Giganten wie Google, Microsoft oder führende Banken Fehler machen.

Zum Beispiel ereignete sich in den späten 90er Jahren in der First National Bank of Chicago einer der bekanntesten „Unfälle“ der Finanzwelt: Über Nacht wuchsen die Kundenkonten unvernünftigerweise um 900 Millionen US-Dollar. Dann gab der Senior Vice President der Bank, James Lancaster, zu, dass es sich um einen „Softwarefehler im Computer“ handelte, für den glücklicherweise niemand Zeit hatte.

In anderen Branchen treten kostspielige Fehler auf, die anscheinend nicht direkt mit der IT zusammenhängen. Ein bekanntes Beispiel ist der Unfall beim Start der Weltraumtechnologie, insbesondere im Jahr 2017 verlor Roscosmos einen Satelliten im Wert von 2,6 Milliarden Rubel.

Bei der Arbeit mit IT-Großlösungen, beispielsweise Remote-Banking-Systemen (RBS), ist es wichtig, nicht nur die Funktionsweise einzelner Funktionalitäten, sondern auch deren Zusammenspiel ständig zu testen. Unter den Bedingungen knapper Fristen, wenn führende Banken ihre Anträge monatlich aktualisieren, ist es unmöglich, alles manuell zu überprüfen - zumindest wird dafür nicht genügend Zeit zur Verfügung stehen.

Bei der Erstellung von IT-Produkten für Unternehmen werden normalerweise zwei Ansätze kombiniert:

  • Führen Sie die Prüfungen manuell mit Hilfe von Qualitätssicherungsspezialisten durch .
  • Kombinieren Sie manuelles Testen und Automatisieren wichtiger Testfälle mit Hilfe von Experten von SDET (Software Development Engineer in Test) .

Die Arbeit des SDET-Spezialisten erstreckt sich über drei Bereiche - Entwicklung, Qualitätssicherung und DevOps - und umfasst sowohl das direkte Schreiben von automatischen Tests als auch andere Aufgaben. Beispielsweise kann SDET CI so konfigurieren, dass Anwendungen automatisch bereitgestellt und bereitgestellt, die Dokumentation verwaltet und Prozesse organisiert werden. In diesem Artikel betrachten wir jedoch einen Aspekt - die Testautomatisierung.

Was gibt Automatisierung


Dies ist eine der relativ neuen Richtungen in der Entwicklung, umgeben von einer Vielzahl von Mythen. In den meisten Fällen wendet sich ein Unternehmen der Automatisierung zu und geht davon aus, dass:

  1. wird alle Probleme der Freigabe von Qualitätssoftware lösen;
  2. wird erlauben, manuelle Tests abzulehnen;
  3. notwendig, nur weil es ein „cooler Trend“ ist;
  4. die Veröffentlichung von Veröffentlichungen beschleunigen;
  5. erhöht die Abdeckung von Plattformen und Versionen von Betriebssystemen während des Testens.

Offensichtlich sind die ersten drei Aussagen zu kategorisch und daher häufig falsch: Um die Qualität eines IT-Produkts sicherzustellen, ist es wichtig, einen Komplex aus vielen Parametern zu berücksichtigen und nicht nur die Testautomatisierung.

Die letzten beiden Aussagen sind wiederum zutreffend: Kompetente Testautomatisierung beschleunigt die Freigabe und erhöht die Fallabdeckung. Gleichzeitig sind manuelle Qualitätssicherung und Automatisierung in der Regel gleich wichtig und werden kombiniert eingesetzt. Darüber hinaus ist jedes Projekt individuell, und manchmal ist keine Automatisierung erforderlich.

Wenn Automatisierung erforderlich ist


  • Großanwendung mit vielen Geschäftsfunktionen
  • Signifikante Lebensdauer der Anwendung (ab 1 Jahr oder mehr)
  • Implementierung von CI / CD, regelmäßige Releases + eine kleine Anzahl von QS-Spezialisten

Automatisierungsaufgaben


In der Regel beauftragen wir SDET-Experten mit der Lösung folgender Probleme:

  • Automatisierung von Routine- und häufigen Überprüfungen, um die Belastung der QS-Spezialisten zu verringern.
  • Überwachen der Hauptfunktionen der Anwendung und Verfolgen von Änderungen im Produkt.
  • Die Möglichkeit, mit einer großen Anzahl von Geräten, Browserversionen und Betriebssystemen zu testen.
  • Testen der Anwendungsleistung bei gleichzeitiger Arbeit mit einer großen Menge von Daten und Benutzern.

Ergebnisse


Automatisierung hilft beim Aufbau eines Gleichgewichts:

  • manuell prüfen, was menschliche Aufmerksamkeit erfordert (in der Regel bis zu 25% der Fälle);
  • Automatisieren Sie andere Fälle.

Gleichzeitig reduziert die Automatisierung langfristig sowohl die Testkosten als auch die mit dem menschlichen Faktor verbundenen Risiken.

Darüber hinaus können Sie bei Bedarf die Freigabe beschleunigen. Wenn Sie beispielsweise in einem Entwicklungssprint etwa 400 Fälle überprüfen müssen, dauert die manuelle Überprüfung bis zu zwei Wochen, und nachts können Autotests durchgeführt und in 4 Stunden analysiert werden.

Dank der Automatisierung hat ein Unternehmen jederzeit die Möglichkeit, sicherzustellen, dass die wichtigsten Funktionen des Systems ordnungsgemäß funktionieren, und auf Fehler zu prüfen (und falls vorhanden, welche).

Beispiel


Nehmen wir an, dass Sie in einer mobilen Bank derzeit bis zu 700 Fälle durchlaufen müssen, von denen jeder 70 bis 100 Mal im Jahr ist. Weniger als 25% der Fälle erfordern eine manuelle Überprüfung, die restlichen 75% können automatisiert werden.

Zeitaufwand für die manuelle Überprüfung:

- 30 Stunden

Automatisierungszeit:

Ein Testlauf über Nacht dauert 8 Stunden, wird jedoch ohne menschliches Eingreifen nicht berücksichtigt.

Sonstige Zeitkosten:

  • 8 Stunden für die manuelle Überprüfung von Fällen, die nicht durch Selbsttests abgedeckt werden können (25%);
  • 6 Stunden für die Analyse der Ergebnisse sowie gegebenenfalls für die Überprüfung von Fehlern (bis zu 10% der Tests).

Total: Die Testautomatisierung kann den Zeitaufwand von 30 auf 14 Stunden reduzieren .

Natürlich hat jeder Fall seine eigenen Eigenschaften, so dass die aufgewendete Zeit unterschiedlich sein kann. Wir analysieren ständig, wie lange es dauert, automatische Tests zu schreiben, zu unterstützen und die Ergebnisse zu analysieren.

Im Durchschnitt spart die Automatisierung mindestens 30 bis 50% der Zeit , sodass Sie mehr Zeit für die Entwicklung und Verbesserung des Produkts verwenden können.

So funktioniert Testautomatisierung


Jedes IT-Unternehmen hat seine eigenen Merkmale beim Testen der Automatisierung, wie auch bei anderen Arbeitsprozessen. Bei SimbirSoft halten wir uns an die folgenden Methoden, mit denen Sie schnell die Arbeit mit den Projekten unserer Kunden aufbauen können.

Der Testprozess beginnt mit der Entwicklung einer Strategie - eines Testplans, der Grundlage für die Zusammenstellung einzelner Testfälle. Um SDET zu automatisieren, wählen die Ingenieure häufig verwendete Schlüsselszenarien aus, in denen der Benutzer mit dem Produkt arbeitet. Solche Szenarien bieten etwa 80% des Unternehmenswerts.

Danach schaffen wir die Basis für weitere Autotests, richten Stände und Arbeitsabläufe für die Zusammenarbeit mit ihnen ein, um regelmäßig Tests in verschiedenen Branchen durchzuführen. Wir wählen, welche Ansätze zur Aufbereitung von Testdaten wir verwenden (API, Zugriff auf Datenbanken, Generierung synthetischer Daten, Verwendung von Daten aus dem Verkauf). SDET-Ingenieure schreiben Tests, die Schlüsselszenarien für die Arbeit mit dem Produkt abdecken, analysieren die Ergebnisse und den Bedarf an weiterer Automatisierung.

Wir entwickeln automatisierte Tests mit allen gängigen Programmiersprachen - Java, Python, Kotlin usw. Unsere wichtigsten Tools und Technologien sind Appium, TestNG | JUnit, RobotFramework | Pytest, Selen | Senenide, Allure, TeamCity, Jenkins, JMeter.

Welche Tests überhaupt automatisiert werden müssen, hängt von den Eigenschaften eines bestimmten Produkts ab. Die meisten Unternehmen automatisieren Rauchtests, Regressionstests, um vorgefertigte Funktionen zu überprüfen, und Fälle, um verschiedene Parameter zu überprüfen (z. B. gültige und ungültige Daten bei der Registrierung).

In unserer Praxis bauen wir bereits zu Beginn der Entwicklung Testautomatisierungsprozesse parallel zum manuellen Testen auf. Diese Arbeit ist nicht einmalig, sie wird gerade bei großen Projekten, einschließlich Bankgeschäften, durchgeführt.

Um es zusammenzufassen


Das Gleichgewicht zwischen manuellen und automatisierten Tests ermöglicht es Ihnen, die Qualität des IT-Produkts ständig zu überwachen. Einige Projekte werden manuell geprüft, andere Aufgaben können mit Hilfe der Automatisierung erfolgreicher gelöst werden. Manuelle Tests werden in Fällen verwendet, in denen Personen nicht zu ersetzen sind, z. B. wenn Sie eine Lokalisierung, eine Fehlerbeschreibung oder manuelle Usability-Tests benötigen. In kleinen Projekten schreiben Entwickler häufig Tests.

Manuelle Tests in Verbindung mit Automatisierung werden durchgeführt, wenn große IT-Produkte erstellt werden, in denen mehrere Teams arbeiten (z. B. in Bankanwendungen), in denen komplexe Algorithmen und Geschäftslogik vorhanden sind. Diese Methode hilft beim Aufbau von Produkttestprozessen und reduziert das Risiko kostspieliger Fehler, was besonders wichtig ist, wenn ein enger Release-Zeitplan eingehalten wird.

Vielen Dank für Ihre Aufmerksamkeit! Wir hoffen, der Artikel hat Ihnen weitergeholfen!

Source: https://habr.com/ru/post/de477670/


All Articles