SOFTWARETESTS

In der heutigen Programmiertechnik spielt das Testen eine wichtigere Rolle denn je. Die Stabilität und Funktionalität von Software stehen heute mehr denn je im Mittelpunkt des Software-Produktionsprozesses. Methoden wie TDD (Test Driven Development) und BDD (Behaviour Driven Development) zeigen deutlich die Richtung, in welche die Entwicklung der Programmiertechnik geht. Wir sehen Tests in einem viel breiteren Kontext – Behaviour Driven Relation (BDR)

Tests können in viele verschiedene Typen unterteilt werden – je nach ihrem Zweck, dem Aufbau der Anwendung, der Testdauer oder der Testmethode. Folglich kann ein einzelner Test einerseits ein Funktionstest und andererseits Teil eines Akzeptanztests sein, während einige Softwareentwickler ihn auch als Element eines Regressionstests betrachten werden.

Obwohl die Nomenklatur der Tests ihre Konstruktion und Logik bestimmt, macht es keinen Sinn, sich auf weitschweifende akademische Ausführungen einzulassen. Unserer Ansicht nach sollte ein Test vor allem ein Instrument zur Entwicklung, Wartung und Nutzung eines qualitativ immer besseren Systems sein. Und in solchen Kategorien sollte auch der Testprozess betrachtet werden.

AngebotMEHR

Unser Angebot umfasst das Testen von IT-Systemen, die in Windows-, Linux-, Browser-Anwendungen sowie Anwendungen auf Autorisierungsterminals für Zahlungskarten arbeiten, auch in der Outsourcing-Variante.

Unser Ansatz besteht darin, Tests nach dem Zeitpunkt der Herstellung der getesteten Anwendungsfragmente zu unterteilen. Das bedeutet, wir unterteilen Tests in:

  • Manuelle Tests neu entwickelter Systembestandteile – einschließlich funktionaler und nicht-funktionaler Tests, Integrationstests usw. in Bezug auf aktuelle Sprints/Evolutionen/Prototypen/Iterationen
  • Automatische Regressionstests in Bezug auf in früheren Sprints/Evolutionen/Prototypen/Iterationen entwickelte Systembestandteile, die in den vorhergehenden Zyklen manuell getestet wurden

Die Verwendung solcher Tests bedeutet, dass das gesamte System, einschließlich aller seiner Bereiche, abgedeckt wird. Wir konzentrieren uns auf funktionale Blackbox-Tests, die von der Benutzerschnittstelle (WWW) aus durchgeführt werden, weil sie unserer Meinung nach der aktuellen Marktnachfrage am besten entsprechen. Wir nutzen aber auch unsere Qualifikationen als Entwickler, um strukturelle Whitebox-Tests, Integrationstests und natürlich Leistungstests durchzuführen.

TestverfahrenMEHR

Das zyklische Testverfahren sieht in der Regel folgendermaßen aus:

  • Es werden Testszenarien erstellt.
  • Während der Softwareentwicklung bieten wir den Continuous Testing Service an, der mittels automatischer Tests unter Verwendung ordnungsgemäß containerisierter Umgebungen durchgeführt wird.
  • Nach der Fertigstellung eines bestimmten Fragments der Softwareentwicklung werden die automatischen Tests erneut durchgeführt (als Regressionstests).
  • Wir führen manuelle Tests auf der Grundlage eines vordefinierten Testszenarios durch – nach erfolgreichem Abschluss der Tests ist die Anwendung qualitativ bereit für die Produktionsimplementierung, da die Tests auch als Abnahmetests dienen können.
  • In dieser Phase werden Testszenarien festgelegt, die automatisiert und implementiert werden können, so dass sie beim nächsten Durchlauf Teil der automatischen Regressionstests sind.

Dieser Zyklus wird für alle weiteren Sprints/Evolutionen/Prototypen oder Iterationen wiederholt. Im Ergebnis entsteht eine sich ständig erweiternde Datenbank mit automatischen Tests, die im kontinuierlichen Testprozess verwendet werden können. Selbstverständlich werden solche Tests durch den Wartungsdienst abgedeckt – das bedeutet, dass ihre Durchführung an Änderungen im System angepasst wird.

Outsourcing von AnwendungstestsMEHR

Wir bieten Zusammenarbeit bei der vollständigen Auslagerung des Anwendungstestprozesses durch:

  • Definition von Testszenarien unter Berücksichtigung einer angemessenen Abdeckung der Anwendung. Genauer gesagt handelt es sich dabei nicht nur um den Testablauf an sich, sondern auch um den konkreten Datensatz (oder allgemeiner gesagt – die Datenbank), der zur Durchführung des Szenarios erforderlich ist.
  • Verwaltung von Testszenarien unter Berücksichtigung der Abdeckung der Anwendung – durch die Sicherstellung ihrer Aktualität, Eignung und Konformität mit der Systemversion.
  • Entwicklung und Verwaltung der gesamten Containerisierungsinfrastruktur (Docker/Kubernetes), um eine beliebige Anzahl von Testumgebungen dynamisch zu erstellen und zu entfernen:
    • Bereitstellung der Infrastruktur für automatische Tests auf der Entwicklerebene im kontinuierlichen Testprozess
    • Bereitstellung der Infrastruktur für automatische Tests auf Kundenebene
    • Bereitstellung der Infrastruktur für manuelle Tests
  • Installation aller Komponenten, die für den Betrieb des Systems in einer solchen Umgebung erforderlich sind (zusätzliche Anwendungen, Datenbankserver, Warteschlangensysteme, Anwendungsserver usw.).
  • Entwicklung aller für die Durchführung der Tests notwendigen Integrationselemente (z. B. Simulatoren oder Mockups von Anwendungen, mit denen das System integriert wird).
  • Entwicklung, Verwaltung und Wartung automatischer Tests auf der Ebene der Benutzeroberfläche oder API des Systems zwecks:
    • Bereitstellung kontinuierlicher Tests – zusammen mit einem vollständigen Berichtsmechanismus für Entwickler von Testergebnissen
    • Durchführung automatischer Tests als Teil des Abnahmeverfahrens von Sprints/Evolutionen/Prototypen/Iterationen
  • Koordinierung aller Prozesselemente

Wir bieten also das volle Outsourcing von Anwendungstests – auch besonders komplexer Tests – in komplizierten Systemumgebungen.

Wir stützen uns bei der Zusammenarbeit auf die agile Methode, um den Kunden eine weitreichende Flexibilität in der Zusammenarbeit und die volle Anpassung an Änderungen seiner Erwartungen und der Geschäftsumgebung zu gewährleisten.

Geh hinauf