Automatisiertes Testen in D365FO

Wer kennt es nicht, nach jeder Anpassung in D365FO müssen unzählige Prozesse überprüft und durchgespielt werden. Es stellen sich Fragen wie:

  • Können die einzelnen Prozesse von den Benutzern wie gewohnt ausgeführt werden?
  • Wird der erwartete Wert angezeigt / berechnet?

Niemand gibt gerne eine Release frei, ohne zu wissen ob das System im Anschluss noch funktioniert.

Dieses Thema ist seit Jahren aktuell und der Kampf gegen die Windmühlen wird an verschiedenen Stellen ausgetragen:

  • Qualitätskontrollen beim Hersteller (Microsoft)
  • Test durch den Partner vor der Übergabe einer Anpassung an den Kunden
  • Der Kunde testet mit den KeyUsern die Prozesse und nimmt diese ab

Durch die Komplexität der heutigen Systeme wird die Vorhersage, was für Nebenwirkungen mit einem Update eingehandelt werden, zudem immer schwieriger und kostenintensiver.

Wäre es da nicht schön, wenn eine «gute Fee» jeden Abend die wichtigsten Prozesse überprüfen könnte?

Vor einer solchen Überprüfung muss jedoch in einem ersten Schritt definiert werden, was überhaupt die wichtigsten Prozess sind: Jedes Unternehmen hat andere Kernprozesse, welche durch eine Anpassung auf keinen Fall tangiert werden dürfen. In einem ersten Schritt sollte daher genau definiert werden, was getestet werden soll und wie diese Tests auch reproduzierbar ausgeführt werden können. Erst wenn dies geklärt ist, kann eine technische Umsetzung gestartet werden.

In diesem Eintrag gehe ich auf die Möglichkeiten des automatisierten Testens in D365FO ein und zeige die Möglichkeiten durch die folgenden 2 Varianten auf, und stelle diese danach einander gegenüber. Die Vor- und Nachteile der 2 Varianten sind aus meiner eigenen persönlichen Sicht dargelegt.

  1. RSAT von Microsoft
  2. Executive Automats

RSAT (Regression Suite Automation Tool)

Das offizielle Test-Tool von Microsoft. Die Idee ist simpel und einfach:

  1. Ein Benutzer zeichnet mit dem Taskrecorder einen Prozess auf, welcher im Anschluss automatisiert abgespielt werden kann.
  2. Der so erstellte Task wird im Anschluss im LCS abgespeichert.
  3. DevOps (Code-Verwaltung von D365) synchronisiert sich mit dem LCS und es können hier verschiedene Tasks zu einem Prozess zusammengefügt werden.
  4. Auf einem Server/Computer muss ein Programm installiert werden, welches die einzelnen Tests im D365FO System ausführt.
  5. Das Testprogramm führt die einzelnen Prozesse in D365FO aus und speichert die Resultate in DevOps. In DevOps ist die gesamte History vorhanden. Aus fehlerhaften Tests können direkt neue Arbeitspakete für die Entwicklung erstellt werden.

Ist ein Test erfolgreich, könnte auch automatisch eine Anpassung in ein anderes System ausgerollt werden. Die Möglichkeiten und Aktionen sind gewaltig.

Blogeintrag über eine Automatisierung in DevOps

(https://blog.axperience.ch/2019/07/09/azure-devops-tasks-for-microsoft-dynamics-365-part-1/)

Weiterführende Links: https://blog.armaninollp.com/dynamics/2018/11/27/test-automation-using-the-regression-suite-automation-tool/

Executive Automats / http://www.executiveautomats.com

Die Mission des polnischen Unternehmens XPLUS für sein Tool Executive Automats ist klar: Der Kunde soll möglichst einfach seine Prozesse aufzeichnen und abspielen können. Für den Kunden ist keine Installation nötig und das Setup hatte ich in 15 Minuten abgeschlossen. SAS at it’s best.

Die Idee ist auch hier einfach und simpel. Die D365FO Instanz wird über eine Webseite von Executive Automats aufgerufen und kann so jeden Klick registrieren und aufzeichnen.

Die einzelnen Schritte können in einer Verwaltungsoberfläche nachträglich angepasst und mit Logik angereichert werden.

Als Beispiel habe ich den Prozess „Anlegen eines neuen Kunden“ mit Executive Automats aufgezeichnet.

Einen einzelnen Kunden anzulegen ist wie bei jedem Testprogramm keine Herausforderung. Schwieriger wird es, wenn die Kundennummern/Informationen aus einer Exceltabelle oder einem Nummernkreis kommen sollen. Wenn dazu noch je nach Kundengruppe noch ein anderer Prozess ausgeführt werden soll, wird es kompliziert.

Aber nicht mit Executive Automats. Die Verwaltungsoberfläche ist aufgeräumt und bietet sehr viele Möglichkeiten. Einzelne Prozesse können verkettet und parallel ausgeführt werden um Lasttests zu simulieren.

Alle Resultate sind an einem Ort gespeichert und werden übersichtlich präsentiert. So bin ich zu einem Fan dieses Tools geworden. Ich empfehle für einen schnellen Überblick das folgende Video:

https://executiveautomats.com/#knowledge-base

Für AX2012 wird ebenfalls eine Lösung angeboten, welche ich aber nicht genauer angeschaut habe.

RSAT von Microsoft vs. Executive Automats

Preis:

RSAT kann +/- mit den bestehenden Lizenzen betrieben werden. Bei Executive Automats fallen zusätzliche Kosten an.

Die Installation, Betrieb, Erstellung der Testfälle und Auswertung sind jedoch um einiges effizienter mit Executive Automats. So muss zwischen internen und externen Kosten abgewogen werden.

Setup:

Für RSTA muss auf einem Server das Test-Tool installiert werden und Zugriffe ins D365FO / DevOps / LCS gewährt werden. Bei jedem Update muss geschaut werden, ob alles noch funktioniert. Bei meinem Test hatte ich das Problem, dass durch eine automatische Installation der neuesten Chrome-Version (Browser) neue Treiber benötigt wurden für die Tests. Dies sind Dinge, um die man sich eigentlich nicht kümmern will.

Bei Executive Automats habe ich ein Webportal und nach 15 Minuten konnte ich meine ersten Tests in meiner D365FO ausführen.

Anpassen und Erstellen von Testfällen:

RSAT arbeitet mit den Task-Aufzeichnungen von D365FO. Für die einzelnen Ausführungen muss ein Excel erstellt werden, in dem der einzelne Test definiert ist. Einfügen von neuen Schritten oder sogar Loops ist sehr schwierig.

Executive Automats hat hier einen eigenen Editor, welcher sehr intuitiv bedient werden kann.

Fazit:

Mit RSAT geht Microsoft sicher in die richtige Richtung, dem Kunden ein Testtool zu Verfügung zu geben, ist jedoch noch ganz am Anfang. Executive Automats bietet aus meiner Sicht schon eine ausgereifte Lösung.

Es würde mich freuen, wenn sich unsere Kunden vermehrt mit dem Thema «Testing» auseinandersetzen und so zu stabileren Prozessen im D365FO kommen.

Share this within your company!