5 Vorteile der Testautomatisierung in PL/SQL

Ein Artikel von Jasmin Fluri, Consultant, Diso AG

In meinem letzten Artikel wurde beschrieben wie Diso DevOps Teams Geschwindigkeit und Qualität in Entwicklungsprojekten erreichen. Eine zentrale Rolle spielt die Testautomatisierung bei der Qualitätssicherung ihrer Softwareprodukte. Ein verbreiteter Mythos ist, dass Datenbanken nicht getestet werden können. Generell gilt aber bei der Implementierung von PL/SQL-Funktionalitäten der Clean-Code-Ansatz genauso wie für alle anderen Programmiersprachen. Das heisst, dass Funktionen atomar sind, Prozeduren kurz und die Funktionalität automatisiert getestet wird.

Bei der Implementierung von Datenbanklogik mit PL/SQL ist ein durchgängiges Testing die Grundlage dafür, eine hohe Qualität der Datenbank-Applikationen zu erreichen. Ein etabliertes und handliches Testwerkzeug dafür ist für uns der Toad Code Tester von Oracle. Er ermöglicht eine simple Erstellung von Testfällen inklusive Testdaten für einzelne Funktionen, Prozeduren und Objekten. Die Vorteile eines solchen Tooleinsatzes sind:

  1. Effiziente Entwicklung

    Aufgrund des Ansatzes von Test-Driven-Development, bei dem vor der Funktionalität immer der Funktionstest implementiert wird, ist hier der entwickelte Code in seiner Struktur klarer und die geschriebenen Funktionen kleiner. Die Funktionalitäten können so laufend getestet werden. Durch die vorab beschriebenen Tests und die Einhaltung von Namenskonventionen und Coding-Standards ist der Code leicht zu lesen. Man spricht von selbst-dokumentierendem Code. Zusätzlich ist es erwiesen, dass sich mit vorab erstellten Unit-Tests weniger Fehler ins System einschleichen.

  2. Einsatz von Testdaten

    Der Toad Code Tester ermöglicht das Hinterlegen von Testdaten, mit welchen die automatisierten Tests durchgeführt werden. Diese werden unabhängig von den bestehenden Daten in der (unter Umständen) produktiven Datenbank verwaltet, von den Tests verwendet und nach dem Testing wieder entfernt.

  3. Regression / Wiederholbarkeit

    Wie stellen wir sicher, dass bei einer Anpassung oder Weiterentwicklung das ganze System noch so funktioniert wie zuvor? Dies manuell sicherzustellen stellt eine schier unmögliche Aufgabe dar. Mit automatisierten Tests können Regressionstests nach einer Anpassung innert kürzester Zeit durchgeführt werden. So wird sichergestellt, dass durch die Weiterentwicklung der Software keine Fehler in anderen Modulen entstehen. Die Tests werden nach der Implementierung jeder neuen Funktionalität wiederholt.

  4. Exaktheit / Dokumentation

    Um zu verstehen, wie eine Komponente funktioniert, kann ein Entwickler den Code lesen oder die dazu geschriebene Dokumentation konsultieren. Der Entwickler hat aber auch die Möglichkeit, den Test zu lesen und damit die Funktionalität zu verstehen. Der Test beinhaltet jeweils die exakte und umfassende Dokumentation der implementierten Komponente.

  5. Besseres, sauberes Software-Design

    Um eine neue Funktionalität vor der Implementierung zu testen, muss man sich genau überlegen, wie sie aufgebaut ist und was ihre Aufgabe sein wird. Wenn diese Zuständigkeit einer Methode klar ist, spricht man von einer hohen Kohäsion. Kohäsion ist ein Mass für den logischen Zusammenhang der Methoden in einer Klasse. Eine Klasse sollte nicht mehrere Verantwortlichkeiten vermischt beinhalten, damit sie einem eindeutigen Nutzen zugeordnet werden kann. Eine hohe Kohäsion trägt zu einem besseren Design der Software bei.

Der gesamte Testprozess ist in unserem DevOps-Entwicklungsprozess eingebettet. Der Einsatz der richtigen und geeigneten Werkzeuge ist auch hier die Grundlage für die erfolgreiche Umsetzung und für die Erstellung von Datenbank-Applikationen mit hoher Qualität.

Diso AG – Der Daten- und Cloud-Experte

Die Diso AG ist ein renommierter IT-Dienstleister und langjähriger Oracle-Vertriebspartner in der Schweiz mit Schwerpunkten in den Bereichen Datenbanken und Cloud-Lösungen. Diso bietet ihren Kunden beispielsweise die Oracle Plattform as a Service-Lösung und die dazugehörige Datenmigration an. Kunden profitieren des Weiteren vom Komplettlösungsangebot im Sinne von Planung, Integration, Support inklusive Betrieb und Überwachung von IT-Infrastrukturen und Datenbanksystemen.
Im Bereich Software-Engineering entwickelt Diso massgeschneiderte IT und Software-Lösungen für unternehmensspezifische Anwendungen, wann immer sinnvoll mit einem mobile-first Ansatz. Zudem ist Diso Spezialist wenn es um die Software-basierte Optimierung von Performance geht. Auf die Kompetenz des traditionsreichen IT-Dienstleisters und Mittelständlers vertrauen bereits namhafte Kunden aus den Schwerpunktbranchen Banken, Versicherungen Detailhandel und öffentliche Verwaltung.
Die Diso designt wandlungsfähige IT-Systeme, entwickelt massgeschneiderte Software und ermöglicht die performante Verwendung und Auswertung von Informationen.