Das Testen einer Anwendung - sei es eine Web-Anwendung, eine App oder eine Software - ist unumgänglich, um ihre Funktionalität zu prüfen. Die Qualität der Software steht dabei im Vordergrund. Deshalb werden nicht nur die funktionalen und nichtfunktionalen Anforderungen geprüft, sondern auch Fehler frühzeitig festgestellt und beseitigt.

SE-icon

Sprechen Sie mich an für ein individuelles Angebot

Jörg Meier

Dipl. Informatiker, Vorstand, CEO, Certified Scrum Product Owner

Projektmanagement

Kontaktieren Sie mich

Warum überhaupt testen?

Das Testen ist ein fester Bestandteil der Softwarequalitätssicherung. Je größer und komplexer Ihre Anforderungen an die Anwendung sind, desto unumgänglicher werden kontinuierliche Tests.

Bereits während der Entwicklung erleichtern sich unsere Entwickler ihren Alltag, indem sie die einzelnen Funktionalitäten durch dafür vorgesehene Tests parallel prüfen. Dadurch können frühzeitig Fehler erkannt werden, die im weiteren Fortlaufen des Entwicklungsprozesses vermieden werden können. Schreitet die Software weiter voran und nähert sich dem Releasegang, ändert sich der Fokus der Tests von der Qualität des Codes auf das Zusammenspiel verschiedener Funktionen untereinander. Die Anforderungen an die Anwendung, die Sie zuvor oder während des Entwicklungsprozesses mit uns gemeinsam erarbeiten, können durch geeignete Tests geprüft werden.

Dadurch erkennen Sie als unser Kunde den Unterschied zwischen dem tatsächlichen und Ihrem erwarteten Zustand der Software. Durch eine ganzheitliche Teststrecke sorgen Sie mit uns dafür, dass Ihre Software zu jeder Zeit die Qualitätsstandards erfüllt und möglichst fehlerfrei auslieferbar ist.

Wie misst man Qualität?

Bestimmte Parameter geben vor, ob eine gewisse Qualität erreicht werden kann. Diese sind laut ISO-Norm ISO/IEC 9126 Änderbarkeit, Effizienz, Übertragbarkeit, Zuverlässigkeit, Funktionalität und Benutzbarkeit. Die genaue Beschreibung zu jedem Qualitätsparameter können in der ISO-Norm ISO/IEC 9126 nachgelesen werden.

Unit-Tests

Mithilfe der Unit-Tests werden die kleinsten Einheiten einer Anwendung, bzw. die Komponenten, auf funktionierenden Code geprüft.

Dabei werden sie völlig unabhängig voneinander und abgegrenzt vom gesamten System betrachtet. Dies kann beispielsweise die Überprüfung einer korrekten Berechnung von Beträgen oder die richtige Darstellung eines Datums sein. Durch umfangreiche Unit-Tests kann eine hohe Code-Abdeckung erreicht werden, die ein Indiz für eine gute Funktionalität der Software liefert.
Dabei liegt es im Ermessen der Entwickler, bis zu welchem Feinheitsgrad getestet werden soll, damit sich Aufwand und Zeit zum Schreiben der Testfälle nicht überproportional auswirken.

Integrationstests

Im Gegensatz zu Unit-Tests prüfen Integrationstests das Zusammenspiel zwischen einzelnen Komponenten und damit zusammenhängende Prozesse innerhalb der Software.

Dabei kann die Menge der Tests je nach Komplexität der Anwendung einen sehr hohen Aufwand erfordern. Deshalb werden Komponenten zu einem Subsystem zusammengefasst und als unabhängige Einheit betrachtet. Meist werden für diese Tests Dummy-Daten (Mock-Daten) genutzt, um eine möglichst hohe Varietät an Testfällen im Vorfeld abzudecken.

Systemtests

Um alle funktionalen und nichtfunktionalen Anforderungen zu prüfen, werden Systemtests auf Testumgebungen ausgeführt.

Diese sollen das Produktivsystem möglichst genau simulieren. Dabei wird das gesamte System auf Herz und Nieren getestet, wobei auch hier ausreichend viele Testdaten verwendet werden, um jeden möglichen Sonderfall mit kleinstmöglichem Aufwand abdecken zu können.
Die Durchführung der Tests übernimmt in der Regel ein Qualitätssicherungsteam, das sich aus unseren Experten zusammensetzt. 

Acceptance-Tests 

Sobald ein Teilbereich (Subsystem) der gesamten Anwendung fertig entwickelt wurde, kann diese einen Acceptance-Test durchlaufen und damit den finalen Schritt vor dem Produktivgang bestreiten.

Dabei werden alle das Subsystem betreffende Anforderungen geprüft und das erwartete Verhalten der Anwendung bestätigt und abgenommen. Diese Tests finden ebenfalls auf einer bereitgestellten Testumgebung statt und werden von Ihnen und/oder Ihren Kunden durchgeführt. Die Testdaten müssen dabei nicht unbedingt Dummy-Daten sein, sondern können einen Teil oder eine ganze Kopie realer Daten enthalten.

Wir unterstützen Sie selbstverständlich dabei, möglichst genaue Testfälle für die finale Abnahme zu erstellen und durchzuführen, damit Ihre Software im Idealfall fehlerfrei und von bester Qualität auf die Reise gehen kann.

Für jeden Test das passende Werkzeug

Je nach Testart wählen wir die passenden Werkzeuge für Sie aus. Die Auswahl stützt sich dabei auf die in der Anwendung verwendeten Technologien, ihrem Umfang und natürlich Ihren Anforderungen und Wünschen.

Um die Codequalität während der Entwicklung zu überprüfen verwenden wir SonarQube. Dieses Tool ermöglicht es unseren Entwicklern unter anderem die Einhaltung von Code-Richtlinien, duplizierten Code und die Testabdeckung zu erkennen. Diese Prüfung erfolgt für Uni-Tests und Integrationstests, welche die technische Funktionalität und das korrekte Zusammenspiel einzelner Komponenten untereinander prüft.

Für unsere Angular-Anwendungen nutzen wir beispielsweise Jasmine als Testframework und Karma als Testrunner. Dieses Vorgehen ist standardmäßig in der Angular CLI verankert und erleichtert das Erstellen, Ausführen und Auswerten der Tests.

Ergänzend dazu bietet Cypress sowohl die Möglichkeit Komponenten einzeln zu testen als auch ganze Subsysteme bis hin zum kompletten System für die Abnahme der Anwendung. Dieses Tool ist ebenfalls ein OpenSource-Produkt und enthält eine praktische grafische Oberfläche. Durchlaufene Tests werden in einem Testreport festgehalten und mit Screenshots ergänzt. In Sachen Testautomatisierung für JavaScript-basierte Webanwendungen bietet Cypress ebenfalls die passende Funktionalität. Ähnlich wie Selenium, welches über JavaScript hinaus Testautomatisierung möglich macht, werden die meist auf fachlichen Anforderungen beruhenden Tests im Browser ausgeführt.

Gemeinsam besser.

Softwaretests erfordern in der Tat einen gewissen Mehraufwand, der mit der Komplexität der Anwendung zunehmen kann. Doch nur so lassen sich Fehler während der Entwicklung oder der Weiterentwicklung, im System und im gegenseitigem Verständnis bezüglich der Anforderungen an die Software frühzeitig erkennen und vermeiden.

Wir versichern Ihnen, dass Tests ein unumgänglicher und wertvoller Teil des Qualitätssicherungsprozesses ist, den wir gerne mit Ihnen zusammen planen und erarbeiten.

Get in Touch

Ihr Ansprechpartner