Eingesetzte Technologien

Um die Effektivität und Effizienz Ihrer Softwareentwicklung zu gewährleisten, verwenden wir Technologien und Methoden, die unternehmens- und lösungsspezifisch ausgewählt werden sowie aktuellen Anforderungen entsprechen.

Java und Oracle 

Java ermöglicht eine plattformunabhängige Programmierung, das heißt, Java-Applikationen laufen ohne weitere Anpassungen auf verschiedenen Rechnerarchitekturen und Betriebssystemen. Zur Java-Entwicklungsumgebung gehört eine Vielzahl von Komponenten, die eine methodisch moderne, effektive, gut getestete und dokumentierte Softwareentwicklung ermöglichen. Durch leistungsfähige Klassen- und Komponentenbibliotheken sowie Werkzeuge für die Gestaltung der Benutzeroberflächen können Entwickler auf standardisierte Lösungsmuster zurückgreifen.

Mit Hilfe der MiddleWare-Komponenten Oracle Application Server, Oracle WebLogic, JBOSS AS lassen sich unternehmensweite, auf modulare Komponenten verteilte, mehrschichtige Anwendungen entwickeln, die besonders gut skalierbar sind.

Die Datenverwaltung erfolgt vornehmlich mit Hilfe der Datenbankmanagementsystem-Software von Oracle, die sowohl relationale Daten als auch objektrelationale Daten speichern und verwalten kann.

.Net: Software-Plattform 

Diese Software-Plattform von Microsoft dient der Entwicklung und Ausführung von Applikationen, die vorrangig unter Windows laufen. Aber auch webbasierte Lösungen lassen sich mit .NET entwickeln. .Net bietet zahlreiche Lösungen für Standardaufgaben an, womit eine hohe Effizienz der Softwareentwicklung sichergestellt wird. Wichtiger Bestandteil des .NET-Frameworks ist sein integriertes Sicherheitssystem.

Mobile: Aktuelle Applikationen 

Mobile Applikationen werden modernen Geschäftsprozessen gerecht. Wir entwickeln Software für mobile Geräte für alle gängigen Smartphone-Betriebssysteme: Symbian, Android, iOS, BlackBerry und Windows Mobile.

Testautomatisierung 

Je komplexer eine individuell entwickelte Softwarelösung wird, desto mehr stellt sich die Frage, wie sichergestellt werden kann, dass das Verhalten der Lösung tatsächlich und nachweisbar den Anforderungen an das System entspricht.

Individualprogramme unterliegen prinzipbedingt einer hohen Änderungsdynamik, da sie in der Regel individuelle Geschäftsprozesse abbilden.

Auf Grund der inneren Komplexität vom Programmcode haben Entwickler selten die gesamte Reichweite ihrer Änderungen am Programmcode im Blick. So können Seiteneffekte auftreten durch die sich Abweichungen vom geforderten Verhalten einschleichen.

Die Lösung, diesen Problemen zu begegnen, liegt darin, die eigentliche Programmentwicklung durch automatisierte Test zu begleiten. Zu jeder Programmfunktion und jeder Programmverzweigung wird parallel Programmcode geschrieben, der den eigentlichen Funktionscode testet. So ein Test beschreibt einen Sollzustand, den das zu testende Programmfragment liefern soll: Von einer Funktion, die die Summe zweier Zahlen liefert, wird man erwarten, dass sie bei Eingabe von 2 und 2 das Ergebnis 4 liefert.

Diese Tests bauen aufeinander auf und werden untereinander verkettet. Vor jeder Auslieferung einer Programmänderung werden alle Tests abgearbeitet und somit alle definierten Ist- und Soll-Zustände automatisiert verglichen.

Wenngleich der Entwicklungsaufwand zunächst etwas höher wird, wenn man parallel zum eigentlichen  Programmcode auch Tests programmiert, amortisiert sich dieser Mehraufwand schnell durch eine höhere Codequalität und risikoärmere Pfleg- und Erweiterbarkeit des Programmcodes.

Automatisierbare Testszenarien auf Basis von Java / XML

Ist Testautomatisierung erst einmal gewünscht, stellt sich die Frage wie sich diese umsetzen lässt.

Die global eingesetzte Programmiersprache Nummer 1 Java bietet eine hervorragende Grundlage hierfür. (Quelle: https://www.tiobe.com/tiobe-index/)

Entwicklern stehen die aktuellsten Frameworks und Tools namhafter Organisationen wie z. B. Oracle und Apache und die Erfahrungen einer weltweit agierenden Community zur Verfügung.

Ein spezieller XML-Dialekt erlaubt zusätzlich auch Nicht-Entwicklern den Ablauf automatisierbarer Tests zu verstehen. Das ist besonders wichtig, da es sich bei den formulierten Testbedingungen meist um Geschäftsregeln eines durch die zu programmierende Software abgebildeten Geschäftsprozesses handelt, die die Spezialisten für den Geschäftsprozess am besten kennen.

Eingesetzte Frameworks und Tools: JUnit, Selenium, Maven und Jenkins

Für die Erstellung, Verwaltung und Durchführung automatisierbarer Tests können sich Softwarenentwickler auf die Robustheit weltweit eingesetzter und langjährig bewährter Werkzeuge verlassen.

So haben sich im Umfeld von Java Frameworks zum Aufbau automatischer Tests wie JUnit und Selenium bewährt. Diese werden durch Werkzeuge ergänzt,  die das Zusammenführen verschiedener Module zu einem Gesamtprogramm unterstützen, die so genannte Build-Automation- und Continuous-Integration-Werkzeuge. Die beiden bekanntesten Werkzeuge dafür im Java-Umfeld sind Maven und Jenkins.

Diese Tools bieten zudem eine ausgezeichnete Unterstützung für die Auswertung von Teststats.

Eigenes Testframework

Aufbauend auf diese Werkzeuge und langjährige Projekterfahrung ist im ITZ ein firmeneigenes Testframework entstanden. Das hilft uns, automatisierbare Tests schnell und unkompliziert umzusetzen.

Die Gliederung von Testszenarien in Testschritte und Aktionen hilft die Benutzung von Browsern abzubilden.

Dadurch sind wir in der Lage auf Kundenwünsche zu reagieren und schnell individuelle Lösungen zu schaffen.