Von einer Option, DevOps ist in letzter Zeit für die meisten Unternehmen schnell zu einer Notwendigkeit geworden. DevOps ermöglicht es Unternehmen, nahtlos zwischen verschiedenen funktionsübergreifenden Teams zusammenzuarbeiten, Funktionen schneller bereitzustellen und zu reduzieren release Ausfälle bei gleichzeitiger Optimierung der Ressourcen bis ins Mark. Um das voll auszunutzen DevOps Revolution, IT-, Geschäfts-, Entwicklungs- und Qualitätsteams sollten an einem Strang ziehen. Low-Code-Entwicklung ist ein neuer Ansatz, der es technischen und nichttechnischen Mitgliedern ermöglicht, gemeinsam an Softwareentwicklungsprojekten zu arbeiten, um den sich ändernden IT-Anforderungen gerecht zu werden.

Ein Überblick über die Low-Code-Entwicklung

Low-Code-Entwicklung ist ein neuer Softwareentwicklungsansatz, der es Entwicklern ermöglicht, mithilfe visueller Benutzeroberflächen, die durch modellgesteuerte Logik ergänzt werden, schnell Software zu erstellen und gleichzeitig die Notwendigkeit, Apps manuell zu programmieren, zu eliminieren. Benutzer können Code mithilfe vorgefertigter Vorlagen und Codefragmente einfach per Drag-and-Drop verschieben. Dieser Ansatz beschleunigt nicht nur den Entwicklungsprozess, sondern ermöglicht auch Menschen mit unterschiedlichen Programmierkenntnissen, nahtlos zusammenzuarbeiten und zur Codeentwicklung beizutragen.

Die Entwicklung der Low-Code-Entwicklung

Von der Assemblierung über Sprachen, die sich mit Nullen und Einsen befassten, bis hin zu den aktuellen, leicht lesbaren Programmiersprachen hat die Softwareentwicklung einen langen Weg zurückgelegt. Ursprünglich wurden Assemblersprachen zum Schreiben von Computerprogrammen verwendet. Diese Programme waren für Computer leicht zu verstehen, für Entwickler jedoch sehr komplex, da sie mit binären Kodierungssystemen aus Nullen und Einsen arbeiten mussten.

In den 1950er Jahren beherrschten Assemblersprachen wie COBOL und FORTRAN die Softwarewelt. Diese Sprachen arbeiteten eng mit der Architektur und Hardware des Systems zusammen. In den 1960er Jahren wurde SNOBOL eingeführt, eine Erweiterung von COBOL. Später in den 1970er Jahren wurde die Sprache C eingeführt, die sich großer Beliebtheit erfreute. Am Ende dieses Jahrzehnts wurde C um das objektorientierte Programmiersystem (OOPS) erweitert. In dieser Zeit entstand auch SQL, das Benutzern die Verwaltung von Daten ermöglichte.

In den 1980er Jahren wurden FoxPro und MATLAB populär. Während sich FoxPro mit DBMS befasste, wurde MATLAB für Algorithmen und Visualisierungen verwendet. In der Zeit zwischen 1990 und 2000 wurden populäre Sprachen wie Java, Python, PHP und Ruby eingeführt. JavaScript hat Java erweitert, um UI-Aspekte zu verwalten. Im neuen Jahrzehnt erfreute sich C# zunehmender Beliebtheit bei der Entwicklung von Web- und Desktop-Apps. Es folgten Sprachen wie Go und Rush. Mit der Verbreitung mobiler Geräte im laufenden Jahrzehnt wurde Kotlin für Android-Betriebssysteme populär, während Swift das iOS-Segment dominierte.

Der Grund für diesen Übergang von hardwarebezogenen Assemblersprachen zu benutzerzentrierten Programmiersprachen besteht darin, die Komplexität beim Codieren zu reduzieren, den Code sauber zu machen und Leistung und Produktivität zu verbessern.

In Assemblersprachen geschriebene Programme enthielten komplexen Code und waren für die Entwickler schwer zu verstehen. Schauen Sie sich zum Beispiel ein einfaches Additionsprogramm an, das in einer Assemblersprache geschrieben ist:

Der gleiche Code wird in Java einfacher:

Einfluss von Programmiersprachen

Aktuelle Programmiersprachen werden von früheren beeinflusst. Beispielsweise wurde die beliebteste Sprache Java von C++ und Smalltalk inspiriert. Interessanterweise wurden sowohl Smalltalk als auch C++ von Simula beeinflusst. C++ ist jedoch eine Erweiterung der C-Sprache. C und Pascal wurden von Algol 68 beeinflusst, der tatsächlich von Algol 60 beeinflusst wurde. Pascal beeinflusste Modula und ML und ML beeinflussten Haskell.

Was macht Programmiersprachen erfolgreich?

Damit eine Programmiersprache erfolgreich sein kann, ist die Kernanforderung, dass sie ein Problem löst. C verfügt beispielsweise über eine effiziente Systemprogrammierung, während JavaScript in einem Browser gespeichert werden kann. Darüber hinaus sind Produktivität und Leistung zentrale Anforderungen. Es sollte über eine gute Umgebung mit einem Interpreter und Compiler sowie einflussreichen Designern verfügen und gleichzeitig sicher sein. Offensichtlich ist es wegen seiner Tragbarkeit beliebt.

Visualisierung von Code

Um die Codierung zu vereinfachen, versuchten Entwickler codelose Entwicklungsmethoden wie die Visualisierung des Codes mithilfe von Flussdiagrammen.

Im Jahr 2000 führte Mercury das Keyboard-Ansichtsmodell ein, das die Codevisualisierung vereinfachte.

Warum sind die „alten“ codelosen Methoden fehlgeschlagen?

Während die alten codelosen Methoden den Code leicht verständlich machten, verringerten sie nicht die Komplexität. Als die Codelogik komplexer wurde, wurden auch visuelle Präsentationen komplex. Auch die Skalierung und Umgestaltung des Codes war eine Herausforderung. Das Fehlen guter Versionskontrollsysteme und anderer Tools für die Zusammenarbeit trug zum Scheitern bei.

Verhaltensgesteuerte Entwicklung

Verhaltensgesteuerte Entwicklung (BDD) ist ein weiterer alternativer Ansatz, der Code- und codelose Methoden kombiniert, um den Entwicklungsprozess zu vereinfachen. Gurke ist ein beliebtes BDD-Tool.

Bei dieser Methode werden User Storys für jedes Szenario erstellt und Codeausschnitte für dieses Szenario geschrieben. Anschließend wird jede User Story dem spezifischen Codeausschnitt zugeordnet.

Diese Methode besteht aus drei Hauptkomponenten:

  • Das Merkmal spricht über eine bestimmte Funktionalität unter Verwendung einer allgemeinen Beschreibung des Produkts
  • Szenario setzt die Verhaltensvorgabe in Beispiele und formale Schritte um
  • Ausführbare Spezifikationen Sprechen Sie über die Agile-Syntax „Gegeben“, „Wann“ und „Dann“.

Wenn Sie zum Beispiel Testen der Leistung einer Login-Funktion in einer Demo-App: Eribank-Anwendung

Die Nicht-Entwickler werden ein Szenario für die Funktion wie folgt schreiben:

  1. @AddScenario
  2. Szenario: Melden Sie sich bei der Eribank-Anwendung an
  3. Gegeben: Anmeldeinformationen eingeben
  4. Klicken Sie auf die Schaltfläche „Anmelden“.
  5. Überprüfen Sie dann die Anmeldung

Jetzt erstellen die Testautomatisierungsingenieure den Code für jede Aktion mithilfe einer Programmiersprache und ordnen jede Aktion dem entsprechenden Codeausschnitt zu.

Modellbasiertes Testen

Um die beste Abdeckung für Ihre Testautomatisierungsprojekte zu integrieren, ist das Verständnis und die Analyse der Anforderungen der Schlüssel. Ohne ein automatisiertes System zur Anforderungserfassung wird Ihre anfängliche Testautomatisierungsphase ineffizient. Modellbasiertes Testen löst diese Herausforderungen und ermöglicht Ihnen die volle Nutzung der Testautomatisierung mit minimalen Testfällen.

Modellbasiertes Testen ist ein wichtiger Teil Ihres Softwareentwicklungslebenszyklus. Bei diesem Ansatz werden Modelle erstellt, die das Verhalten eines Systems erfassen. Sie beschreiben Teststrategien und -umgebungen, generieren Testfälle und bewerten die Qualität von Tests.

Zunächst wird ein Modell erstellt, das das zu testende Systemverhalten erfasst. Anschließend analysiert und interpretiert das modellbasierte Tool dieses Verhalten, um manuelle und automatisierte Testskripte zu erstellen.

Die Herausforderung beim MBT-Ansatz liegt in der Erstellung und Pflege des Modells. Sie müssen auch eine Zuordnung des Modells erstellen. Wenn Sie beispielsweise ein Modell für die Anmeldefunktion erstellen, müssen Sie die Logik erstellen, die Sie zum nächsten Bildschirm führt. Ebenso müssen Sie Änderungen identifizieren.

Digital.ai Continuous Testing Integration mit Low-Code-Entwicklungsplattformen

Digital.ai Continuous Testing ist eine umfassende Cloud-Testautomatisierungsplattform, die es Ihnen ermöglicht, eine Vielzahl von Testfällen auf einer Reihe von Geräten und Browsern in verschiedenen Regionen auszuführen. Jetzt, Digital.ai Continuous Testing ermöglicht Ihnen die Integration von Low-Code-Entwicklungsplattformen zur Durchführung modellbasierter Tests

Digital.ai Continuous Testing Die Testautomatisierungs-Cloud-Plattform bietet einen Bot mit künstlicher Intelligenz (KI), der die modellbasierten Testherausforderungen löst, indem er die KI-Leistung mit menschlichen Eingaben kombiniert.

Hier ist eine Demo

Wenn Sie sich beim anmelden Digital.ai Continuous Testing Wenn Sie ein Konto erstellen und auf Geräte klicken, wird eine Liste der für den Test verfügbaren Geräte angezeigt.

Klicken Sie nun auf ein Gerät:

Gehen Sie zu Apps und installieren Sie eine Demo-Banking-Anwendung, ERIBANK

Nachdem die App installiert ist, starten Sie die Anwendung.

Wenn Sie auf die Schaltfläche „Anmelden“ klicken, wird eine Fehlermeldung angezeigt, in der Sie zur Eingabe von Benutzername und Passwort aufgefordert werden.

Wenn Sie den Benutzernamen und das Passwort angeben, gelangen Sie zum nächsten Bildschirm.


Ohne Benutzernamen und Passwort gibt es hier also nicht viel zu testen. Daher müssen Sie Möglichkeiten finden, mehr Tests durchzuführen.

Digital.ai Continuous Testing Die KI-Bot-Anwendung wird Ihnen dabei helfen.

Öffnen Sie also die AI-Anwendungsseite und klicken Sie auf „Neues Projekt erstellen“.

Geben Sie einen Projektnamen ein und klicken Sie auf Weiter.

Auf dem nächsten Bildschirm müssen Sie die Anwendung auswählen.

Sie können entweder die App hochladen oder aus dem Cloud-Repository auswählen und dann auf Projekt erstellen klicken.

Klicken Sie nun auf Erkundung starten. Der KI-Bot beginnt mit der Erkundung der Anwendung.

Geben Sie im nächsten Bildschirm einen Namen für die Erkundung ein und wählen Sie dann die Geräte für die Erkundung aus. Für diese Demo werden 4 Geräte ausgewählt.

Jetzt hat die Erkundung begonnen.

Wenn Sie in die gehen Digital.ai Continuous Testing Dashboard und klicken Sie auf Geräte. Sie können sehen, dass 4 Geräte den Test ausführen.

Gehen Sie nun zur AI-Bot-Seite und klicken Sie auf Gates. Sie können sehen, dass der Bot bereits ein Tor identifiziert hat.

Wenn Sie auf „Entsperren“ klicken, können Sie die Details des Tors überprüfen. Hier wird der Anmeldebildschirm angezeigt und Sie benötigen Ihre Hilfe, um den Anmeldebildschirm zu entsperren.

Es gibt zwei Möglichkeiten, diese Informationen bereitzustellen. Sie können entweder einen Codeausschnitt mit Appium/Selenium-Code schreiben oder einfach dieses kleine Formular mit den Benutzeranmeldeinformationen wie folgt ausfüllen:

  • Benutzername=>Firma
  • Passwort=>Firma
  • Anmelden=>

Klicken Sie nun auf Speichern.

Jetzt können Sie sehen, dass das Tor entriegelt ist.

Gehen Sie nun zur Registerkarte „Erkundungen“ und klicken Sie auf den Namen der Erkundung. Sie können die Explorationsaktivität in einem grafischen Format sehen.

Jetzt nimmt der Bot die Informationen entgegen und setzt die Erkundung fort. Wenn die Benutzeranmeldeinformationen angegeben sind, wird der Anmeldebildschirm durchlaufen und zum nächsten Bildschirm weitergeleitet. Die anderen Mitarbeiter nehmen diese Informationen auf und führen verschiedene Testaktivitäten an den Anwendungen durch, wobei sie die Testzeit untereinander aufteilen.

Hier können Sie sehen, dass jedes Gerät einen anderen Test durchführt, bei dem ein anderer Bildschirm und eine andere Funktionalität überprüft wird.

Wenn Sie sich jetzt die grafische Ansicht der Erkundung ansehen, sehen Sie ein größeres Diagramm mit mehreren Aktivitäten.


Wenn Sie jetzt die Registerkarte „Gates“ überprüfen, können Sie sehen, dass dort weitere Gates identifiziert wurden. (z. B. MakePaymentActivity, MortageRequestOneActivity)

Klicken Sie beispielsweise auf „Entsperren“ und geben Sie Informationen für die Zahlung ein.
Telefon=>111
Name=>Typ
Betrag=>100
Wählen Sie=>Indien=>
Senden=>

Und klicken Sie auf Speichern. Nun nutzt der Bot diese Informationen, um das Zahlungstor zu entsperren und weitere Erkundungen durchzuführen.

Klicken Sie nun auf Speichern.

Sie können sehen, dass das neue Tor entriegelt ist. Wenn Sie nun die grafische Ansicht der Exploration überprüfen, können Sie erkennen, dass sich der Graph ausdehnt.

In einer GUI-Ansicht können Sie alle Verbindungen zwischen den Bildschirmen und die Logik hinter der Anwendungsfunktionalität sehen. Für verschiedene Anwendungsfälle werden auch Ausführungsanalysen erfasst.

Testen Sie Anwendungsfälle für KI-Bots 

Dieser modellbasierte KI-Testautomatisierungsansatz löst mehrere Herausforderungen. Hier sind die wichtigsten:

Handbuch- und Automatisierungshelfer 
Mit der Anwendungsnavigationshilfsfunktion können Sie Ihre Anwendung im gewünschten Zustand starten. Das bedeutet, dass Sie mit einem beliebigen Bildschirm der Anwendung beginnen. Ebenso ermöglicht Ihnen der Automatisierungshelfer, die UI-Baumansicht (Dump) eines beliebigen Bildschirms der App zu finden. Wenn Sie beispielsweise Appium-Entwickler sind, können Sie die Xpath-Elemente leicht finden, da das gesamte Modell hier gespeichert ist.

Identifizierung von App-Abstürzen 
Diese KI-Anwendung verfügt über einen App-Crash-Identifikationstest. Wenn Sie das Modell skalieren und den Test auf Tausenden von Geräten mit unterschiedlichen Versionen, Herstellern, Bildschirmgrößen und Auflösungen durchführen. Es erkennt App-Abstürze und Anomalien Ihrer App. Sie können auch einen Rauchtest durchführen.

Einblick in die Anwendung 
Nach Abschluss einer Erkundung stellt das Tool auch die Testanalyse bereit.

Hier sehen Sie einige Testeinblicke. Beispielsweise wird eine Zusammenfassung des gesamten UX-Scores bereitgestellt. Darüber hinaus kommt es zu Leistungsanomalien.

In dieser Demo wird gezeigt, dass die

  • Die Anmeldung ist in Version 2.14 langsamer.
  • iOS 14.1 verhält sich im Geldtransferbildschirm anders.

Eine weitere Erkenntnis ist, dass in Version 2.34 eine neue Aktivität identifiziert wird. Daher werden Bildschirmänderungen in der getesteten App automatisch erkannt.

Automatisierungshelfer 
Wenn Sie Appium verwenden, ermöglicht Ihnen das Tool, zur gewünschten Stelle im Modell zu navigieren und den Code von diesem Bereich aus auszuführen. Dies bedeutet, dass Sie den Appium-Navigationscode erheblich reduzieren, die Codemenge reduzieren und damit auch die Komplexität des Codes verringern können. Darüber hinaus können Sie mithilfe der XPath-Listener-Funktion unerwartete Popups und Ereignisse effizient verarbeiten.

Zusammenfassung

Um den modellbasierten Testansatz voll auszunutzen und gleichzeitig seine Herausforderungen zu beseitigen, Digital.ai Continuous Testing ist in ein KI-gestütztes, modellbasiertes Testtool integriert. Dieser Ansatz kombiniert den KI-Bot mit einem Menschen, sodass diese gemeinsam ein Modell für Testautomatisierungsprojekte erstellen. Durch die anwendungsautonome Erkundung und die schnelle Erstellung von Anwendungsdiagrammen können Testingenieure schnell automatisierte Tests für ein Modell erstellen und ausführen sowie Testergebnisse analysieren. Während der KI-Bot die meisten Erkundungen durchführt, benötigt er menschliche Hilfe, um bestimmte Tore wie Anmeldebildschirme zu öffnen.

Erstellen Sie jetzt schneller bessere Anwendungen mit diesem Low-Code-Entwicklungsansatz!

Um mehr zu sehen, schauen Sie sich die vollständige Version an Webcast zur Low-Code-Entwicklung hier.

Sind Sie bereit, Ihr Unternehmen zu skalieren?

Entdecken

Was gibt es Neues in der Welt von Digital.ai

21. Juni 2024

Sicherheitsbedrohungen für Apps, die außerhalb der Firewall betrieben werden: Erkenntnisse aus dem Jahr 2024 Application Security Bedrohungsbericht

Navigieren Sie durch die steigenden Cybersicherheitsrisiken für Apps im freien Einsatz – Entdecken Sie weitere Einblicke von Digital.ai's Anwendungsbedrohungsbericht 2024.

Mehr erfahren
18. Juni 2024

Wie Continuous Testing Fördert die Zusammenarbeit zwischen Entwicklern und Sicherheitsexperten: Der moderne Ansatz für sichere Entwicklung

Entdecken Sie continuous testing und App Sec fördern einen kollaborativen SDLC, wodurch ein komplexes Labyrinth für Angreifer entsteht, während gleichzeitig die Teams gestärkt und die Kosten gesenkt werden.

Mehr erfahren
14. Juni 2024

Cloud Native: Erfahren Sie mehr über Architektur und App-Entwicklung

Lernen Sie die Grundlagen von Cloud Native und seine Auswirkungen auf die Anwendungsarchitektur und -entwicklung kennen.

Mehr erfahren