Testen von Power Apps: Best Practices & Automatisierung

Bei der App-Entwicklung sind eine reibungslose Funktionalität und die Zufriedenheit der Benutzer von größter Bedeutung. Hier kommt der Bedeutung ausführlicher Tests, insbesondere im Zusammenhang mit Power Apps, eine zentrale Rolle zu. In diesem Blogbeitrag befassen wir uns mit der Bedeutung von Tests, effektiven Teststrategien und der Nutzung von Microsoft Test Studio für optimierte Testprozesse.

Warum ist Testing für Power Apps unerlässlich?

Das Testen einer Power App ist ein essenzieller Bestandteil in der Entwicklung der App. In diesem Schritt kann sichergestellt werden, dass die die geforderten Funktionen korrekt ausgeführt werden können. Man erhält eine größere Genauigkeit, Einsparungen von Zeit und Geld. Ein kontinuierlicher Testprozess in DevOps bringt außerdem mehr Flexibilität mit sich. Besonders hervorzuheben ist die Wiederverwendbarkeit und eine gute Skalierbarkeit.

  • Identifizierung und Behebung von Fehlern: Testing hilft dabei, Fehler in der Anwendung frühzeitig aufzudecken und zu beheben, was letztendlich die Benutzererfahrung verbessert und das Vertrauen der Benutzer stärkt.
  • Gewährleistung der Funktionalität: Durch gründliches Testing können Entwickler sicherstellen, dass die Power App gemäß den Anforderungen funktioniert und die beabsichtigten Aufgaben erfolgreich erledigt werden können.
  • Optimierung der Benutzererfahrung: Tests ermöglichen es Entwicklern, potenzielle Probleme oder Hindernisse zu identifizieren, die die Benutzererfahrung beeinträchtigen könnten, und entsprechende Anpassungen vorzunehmen, um eine nahtlose Benutzererfahrung zu gewährleisten. 

Vorgehensweise beim Testing

Die Vorgehensweise beim Testing von Power Apps erfordert eine systematische Herangehensweise, um effektive Ergebnisse zu erzielen. 

  1. Bei der Planung und dem Entwurf von Test-Plänen sollten klare Testfälle definiert werden, basierend auf den Anforderungen der Power App. Dabei sollten verschiedene Szenarien und Benutzerinteraktionen berücksichtigt werden, um eine umfassende Abdeckung zu gewährleisten. 
  2. Die Durchführung von manuellen Tests ermöglicht es, die Benutzererfahrung unter realen Bedingungen zu bewerten. Dabei werden die Benutzeroberfläche, die Navigation und die Funktionalität der App gründlich überprüft. 
  3. Durch die Automatisierung von Testszenarien mithilfe von Tools wie dem Microsoft Test Studio kann eine effizientere Testausführung und eine schnellere Fehlererkennung erreicht werden. 
  4. Die Überwachung der Leistung der Power App während des Tests ist entscheidend, um Engpässe oder Leistungsprobleme frühzeitig zu identifizieren und zu beheben.

Auf diese Aspekte sollten Sie beim Testing von Power Apps achten

  • Laufen alle Funktionen ordnungsgemäß und entsprechen den Anforderungen? 
  • Sind alle Elemente (Benutzeroberfläche, die Navigation und die Interaktionselemente) benutzerfreundlich und konsistent? 
  • Sind die Sicherheitsmechanismen der App ausreichend, oder können potenzielle Schwachstellen oder Sicherheitslücken identifiziert werden?
  • Funktioniert die Power App auf allen Geräten, Betriebssystemen und Browsern reibungslos? 

Manuelles Testen von Power Apps 

Simulieren von Nutzerinteraktionen

Es gibt bei Power Apps eine Reihe von Funktionen, mit denen Nutzerinteraktionen simuliert werden können. 

Mithilfe der Select()-Funktion lässt sich der Klick eines Nutzers simulieren. Somit führt die Funktion den Code des OnSelect Teils eines Controls aus. Außerdem lassen sich Zeilen oder Spalten einer Gallery oder die Child/Parent-Beziehungen auswählen. 

Die SetProperty()-Funktion steht exklusiv der Power Apps Test Studio-Umgebung zur Verfügung. Die Funktion ermöglicht die Simulation einer Eingabe von Werten in bestimmten Controls. Beispiele hierfür sind: TextInput, Checkbox, DatePicker oder Radio-Control. 

Die Wait()-Funktion stellt eine weitere Möglichkeit der Nutzerinteraktion dar. Hierbei wird gewartet, bis das angegebene Attribut eines Controls den gewünschten Wert erreicht. 

Die Validierung von Ergebnissen und Werten innerhalb der App ist ein wichtiger Teil der Testphase. Dabei stellt die Assert()-Funktion eine Möglichkeit dar, dass die Validierung eine gewünschte Nachricht erscheinen lässt. 

Es gibt noch eine Vielzahl weiterer Möglichkeiten, um das Nutzerverhalten zu simulieren. Die Test Studio Dokumentation gibt dafür einen guten Überblick. 

Power Apps Monitor 

Der Power Apps Monitor bietet die Möglichkeit die zu testende App in Echtzeit zu debuggen. Das ermöglicht einen tiefen Einblick in die Abläufe der App und deren Verhalten. Dadurch können sowohl Performanceprobleme als auch Bugs erkannt werden. 

Der Power Apps Monitor lässt sich über die „advanced tools“ öffnen. Danach kann über das Menüband die App gestartet werden. Im Hintergrund werden alle Vorgänge in der App geloggt. 

Ein großer Vorteil ist die Möglichkeit zur Zusammenarbeit mit anderen Nutzern, wodurch Probleme anderer Nutzer untersucht werden können oder ein gemeinsames Suchen nach Fehlerquellen ermöglicht wird. 

Eine einzelne Session kann maximal 60 Minuten lang sein. Die gesammelten Daten können danach heruntergeladen werden. Das bietet den Vorteil, dass diese in ein Tabellenprogramm geladen werden können und weiter untersucht werden können. Dabei besteht die Möglichkeit, die geloggten Einträge in Diagrammen zu visualisieren, um einen besseren Überblick über die Vorgänge in der App zu erhalten. 

Power Apps Analytics

Die Power Apps Analytics Seite bietet nicht nur einen Überblick über die Nutzung der App, sondern bietet auch einen Einblick in die Performance der App. Hierzu zählt beispielsweise die „Setup Time“, also die Zeit vom Öffnen der App bis zum ersten Screen der App oder die Nutzungszeit der App. Dadurch kann geprüft werden, ob Ladezeiten und weitere Performance-Metriken annehmbar sind.

Automatisiertes Testing von Power Apps

Warum sollte man Power Apps automatisiert testen?

Das automatisierte Testing von Power Apps bietet eine Vielzahl von Vorteilen für Entwickler und Unternehmen. Durch die Automatisierung wiederholbarer Testfälle können Zeit und Ressourcen eingespart werden, während gleichzeitig eine hohe Konsistenz und Genauigkeit bei der Testausführung gewährleistet wird. Darüber hinaus ermöglicht es die frühzeitige Erkennung von Fehlern und eine nahtlose Integration in kontinuierliche Integrations- und Bereitstellungsworkflows. Insgesamt trägt das automatisierte Testing dazu bei, die Qualität, Effizienz und Zuverlässigkeit von Power Apps zu verbessern, was zu einer besseren Benutzererfahrung und einer verkürzten Time-to-Market führt.

So sollten Test-Cases geprüft und definiert werden

Abhängig von der App kann manuelles Testing ausreichen, um diese über den gesamten Lebenszyklus zu betreuen. In manchen Fällen ist eine Automatisierung des Tests zudem nicht möglich oder nicht sinnvoll umsetzbar, beispielsweise bei extremen Randfällen oder sehr individuellen Nutzerinteraktionen, die sich von Durchgang zu Durchgang ändern. Um eine Validierung von Test-Cases vornehmen zu können, muss zudem mindestens ein zu erwartendes Ergebnis existieren. Im ersten Schritt sollte daher untersucht werden, welcher Test-Case automatisiert werden soll und ob dies sinnvoll umsetzbar ist. 

Test-Cases sollten zudem klein gehalten werden, um einzelne Funktionalitäten zu testen. Das ermöglicht ein einfacheres Management der Test-Cases und erleichtert den Überblick nach Änderungen in der App. Kleinere Test-Cases sind außerdem einfacher zu verstehen und zu debuggen. Allerdings können mehrere zusammengehörige Test-Cases in eine sogenannte Testsuite zusammengeführt werden, um eine bessere Übersicht zu erhalten. 

Werkzeuge für automatisiertes Testen von Power Apps 

Test Studio

Eine Möglichkeit zum automatisierten Testing bietet Test Studio, mit dem eine Reihe von Tests  Nutzerinteraktionen simulieren können, wie zum Beispiel das Ausfüllen von Formularen, das Klicken von Knöpfen oder das Navigieren zwischen Bildschirmen. Das Aufsetzen der Tests erfolgt über Power FX-Ausdrücke oder über das Aufzeichnen eines einmalig ausgeführten Testdurchlaufs.  

Test Studio kann direkt über den Power Apps Editor aufgerufen werden. Dazu wird in der Toolleiste auf der linken Seite „Advanced Tools” und dann “Open Tests” ausgewählt. Alle erstellten Test-Cases werden in der Solution gespeichert. Beim Exportieren werden die Test-Cases in das neue Environment übernommen. 

Im Test Studio sind links die einzelnen Tests Suites aufgelistet, die in einzelne Tests untergliedert werden. Innerhalb eines Test-Cases stehen die folgenden vier Funktionen zur Auswahl: 

  • Assert 
  • SetProperty 
  • Select 
  • Trace 

Neben der manuellen Eingabe aller Funktionen, die für den Test-Case benötigt werden, besteht die Möglichkeit, über die Aufnahmefunktion den gewünschten Ablauf einmalig durchzugehen. Alle getätigten Nutzerinteraktionen werden aufgezeichnet und in Codezeilen umgeschrieben. 

Einige Funktionalitäten werden in Power Apps Test Studio nicht unterstützt. Dazu zählen unter anderem Komponenten, verschachtelte Galleries oder Medien Controls.

Test Engine

Die Test Engine ist eine weitere Plattform, um Power Apps testen zu können. Dabei handelt es sich um eine Open Source Lösung auf GitHub, die von Microsoft unterstützt wird. Aufgrund des jungen Alters der App ist aktuell nur das Testen von Canvas Apps möglich. In Zukunft sollen jedoch Model-driven Apps und DevOps folgen. 

Neben der Test Engine selbst muss das .NET Core 6.0x SDK installiert werden und zu den Environment Variablen hinzugefügt werden. Zusätzlich muss PowerShell installiert sein. Außerdem bietet sich die Installation einer IDE an, um im weiteren Verlauf bei der Begutachtung der YAML-Dateien. 

Für die Tests bedient sich die Test Engine aller dokumentierten Power FX-Funktionen. Ein Beispiel kann dem folgenden Bild entnommen werden. 

Hilfreich für die Dokumentation von Testergebnissen ist die Screenshot([Dateiname])-Funktion. Hierbei wird der Stand der App zum Zeitpunkt der Code-Zeile aufgenommen und unter dem definierten Dateinamen gespeichert. 

Für das YAML-Schema werden einige Attribute benötigt, wie zum Beispiel: 

  • testSuiteName 
  • persona 
  • appLogicalName 
  • testCases 

Ein großer Vorteil von Test Engine ist die Möglichkeit der Nutzung von Test Studio Cases. Weitere Vorteile sind die Erstellung von Mock Antworten für Konnektoren und das Video Recording-Feature. Dies bietet die Möglichkeit, eine Power App isoliert von etwaigen externen APIs zu testen. 

Zum jetzigen Zeitpunkt stellt die Test Engine eine Erweiterung des Test Studios dar und befindet sich in der experimentellen Phase, in der der Anspruch einer Low-Code Umgebung nicht vollständig erfüllt werden kann. Allerdings werden einige Testmöglichkeiten zur Verfügung gestellt, die Microsoft Test Studio nicht abdeckt. Dazu zählen beispielsweise: 

  • Testen von Komponenten 
  • Nested Galleries 
  • Mock Antworten für Konnektoren 
  • Screenshot-Funktion 

Power Apps mit Power Automate Desktop testen 

Eine weitere Methode zum automatisierten Testen von Power Apps ist die „Robotic Process Automation“ (RPA) mittels Power Automate. Diese Methode bietet einige Vorteile bei Model-driven Apps, Power Pages oder Power Virtual Agents. Dabei dient Power Automate Desktop zur Ausführung von Ausgaben und zur Validierung des Nutzerinterfaces. Dadurch können Webapplikationen gestartet werden, mit UI-Elementen interagiert werden oder Daten erhalten und validiert werden. Zusätzlich besteht die Möglichkeit des Error Handlings. Ein weiterer Vorteil ist die Möglichkeit zur Interaktion mit verschiedenen Programmen. Hierbei können beispielsweise auch Daten von SAP validiert werden. Somit kann die gesamte Bandbreite eines Projekts getestet werden. 

Eine nützliche Funktion stellt dabei das Subflow-Feature dar. Dabei können einzelnen Unterschritte erstellt werden und per Drag-and-Drop in den übergeordneten Flow gezogen werden. Auch hier stellt die Aufnahme-Funktion zur Verfügung, bei der einzelne Nutzerinteraktionen aufgezeichnet und gespeichert werden können. 

Zusätzlich können zufällige Texte erzeugt werden. Es besteht die Möglichkeit einige Bedingungen für den Text festzulegen, wie beispielsweise eine maximale oder minimale Zeichenanzahl oder die Bestimmung, welche Symbolarten genutzt werden dürfen. 

Fazit

Je nach Anwendungsfall gibt es Lösungen, deren Aufwand für die Implementierung eines automatischen Tests trotzdem sinnvoll erscheint. Dabei handelt es sich meist um einfache Abläufe in einer App, die während eines Testablaufs immer wieder getestet werden müssen. 

Die automatisierten Lösungen weisen allerdings einige Einschränkungen auf, sodass spezielle Abläufe mit bestimmten Controls nicht automatisiert getestet werden können. Außerdem bedarf es bei Lösungen mit Test Engine erweiterte Programmierkenntnisse, da dort der Low-Code Rahmen verlassen wird. Auch der Einsatz von Drittsoftware sollte gewissenhaft geprüft werden, bevor diese in der Unternehmensumgebung zum Einsatz kommt.  

Sollte ein Prozess alle Anforderungen an automatisiertes Testing erfüllen, ergeben sich allerdings einige Vorteile. Der Testablauf muss lediglich einmal durchgeführt werden, um später immer wieder wiederholt werden zu können. Das kann dann auch von weniger gut geschulten Personal durchgeführt werden. Ein weiterer Vorteil besteht in der Quasi-Dokumentation einiger Prozessabläufe. 

Sie benötigen Support beim Testing Ihrer Power Apps?

Für eine nahtlose und effektive Teststrategie Ihrer Power Apps stehen wir Ihnen zur Seite. Kontaktieren Sie uns noch heute, um professionellen Support für Ihr Testing zu erhalten und die Qualität Ihrer Anwendungen zu maximieren.

Diese Artikel könnten Sie auch interessieren

  1. Entdecken Sie die umfangreichen Funktionen von Power Apps.
  2. Haben Sie bereits Vorlagen bei der Erstellung von Power Apps genutzt? Power Apps Templates können Ihre Arbeit erleichtern.
  3. Bei der Nutzung von Power Apps besonders wichtig: Data Loss Prevention zum Schutz wichtiger Daten