Publié: Octobre 13, 2022
Créez de meilleures applications grâce à une approche de développement low-code
D'être une option, DevOps est rapidement devenue une nécessité pour la plupart des entreprises ces derniers temps. DevOps permet aux entreprises de collaborer facilement entre différentes équipes transversales, de livrer des fonctionnalités plus rapidement et de réduire les échecs de mise en production tout en optimisant les ressources essentielles. Pour tirer pleinement parti de DevOps Les équipes en charge de la révolution, de l'informatique, du commerce, du développement et de la qualité doivent collaborer étroitement. Le développement low-code est une nouvelle approche qui permet aux membres techniques et non techniques de travailler ensemble sur des projets de développement logiciel afin de répondre à l'évolution des besoins informatiques.
Aperçu du développement low-code
Le développement low-code est une nouvelle approche logicielle qui permet aux développeurs de créer rapidement des logiciels grâce à des interfaces utilisateur visuelles enrichies par une logique pilotée par les modèles, tout en éliminant la nécessité de coder manuellement les applications. Les utilisateurs peuvent simplement glisser-déposer du code à l'aide de modèles et d'extraits de code prédéfinis. Cette approche accélère non seulement le processus de développement, mais permet également à des personnes ayant des compétences en programmation variées de collaborer et de contribuer facilement au développement du code.
L'évolution du développement low-code
Du langage assembleur, qui traitait de zéros et de uns, aux langages de programmation actuels, facilement lisibles, le développement logiciel a parcouru un long chemin. À l'origine, on utilisait les langages assembleur pour écrire les programmes informatiques. Ces programmes étaient faciles à comprendre pour les ordinateurs, mais extrêmement complexes pour les développeurs, car ils devaient manipuler des systèmes de codage binaire, basés sur des zéros et des uns.
Dans les années 1950, les langages assembleur tels que COBOL et FORTRAN dominaient le monde du logiciel. Ces langages interagissaient étroitement avec l'architecture et le matériel du système. Les années 1960 ont vu l'introduction de SNOBOL, une extension de COBOL. Plus tard, dans les années 1970, le langage C a été introduit et a rapidement gagné en popularité. À la fin de cette décennie, la programmation orientée objet (POO) a été intégrée au C. SQL a également fait son apparition durant cette période, permettant aux utilisateurs de gérer des données.
Dans les années 1980, FoxPro et MATLAB ont connu un essor considérable. FoxPro était dédié aux SGBD, tandis que MATLAB était utilisé pour les algorithmes et la visualisation. Entre 1990 et 2000, des langages populaires tels que Java, Python, PHP et Ruby ont fait leur apparition. JavaScript a étendu les capacités de Java pour la gestion des interfaces utilisateur. Au cours des années 1990, C# s'est imposé comme un langage incontournable pour le développement d'applications web et de bureau. Il a été suivi par des langages comme Go et Rush. Avec la prolifération des appareils mobiles au cours des années 1990, Kotlin est devenu un langage de prédilection pour Android, tandis que Swift a dominé le marché iOS.
La raison de cette transition des langages d'assemblage associés au matériel vers des langages de programmation centrés sur l'utilisateur est de réduire la complexité du codage, de rendre le code plus propre et d'améliorer les performances et la productivité.
Les programmes écrits en langage assembleur comportaient un code complexe et étaient difficiles à comprendre pour les développeurs. Prenons par exemple un simple programme d'addition écrit en langage assembleur :
Le même code devient plus simple en Java :
Influence des langages de programmation
Les langages de programmation actuels sont influencés par leurs prédécesseurs. Par exemple, Java, le langage le plus populaire, s'inspire de C++ et de Smalltalk. Fait intéressant, Smalltalk et C++ ont tous deux été influencés par Simula. C++ est cependant une extension du langage C. C et Pascal ont été influencés par Algol 68, lui-même influencé par Algol 60. Pascal a influencé Modula et ML, et ML a influencé Haskell.
Qu'est-ce qui fait le succès des langages de programmation ?
Pour qu'un langage de programmation rencontre le succès, il doit impérativement résoudre un problème. Par exemple, le C est idéal pour la programmation système, tandis que JavaScript s'exécute dans un navigateur. De plus, la productivité et la performance sont des critères essentiels. Un langage sécurisé doit offrir un environnement de développement performant avec un interpréteur et un compilateur, bénéficier de développeurs influents et être sécurisé. Enfin, la portabilité est un facteur de popularité majeur.
Visualisation du code
Afin de simplifier le codage, les développeurs ont essayé des méthodes de développement sans code, comme la visualisation du code à l'aide d'organigrammes.
En 2000, Mercury a introduit le modèle de vue Keyboard qui simplifiait la visualisation du code.
Pourquoi les « anciennes » méthodes sans code ont-elles échoué ?
Si les anciennes méthodes sans code facilitaient la compréhension du code, elles n'en réduisaient pas pour autant la complexité. À mesure que la logique du code se complexifiait, les présentations visuelles devenaient elles aussi complexes. La mise à l'échelle et la refactorisation du code représentaient également un défi. L'absence de systèmes de contrôle de version performants et d'outils de collaboration a contribué à cet échec.
Développement axé sur le comportement
Le développement piloté par le comportement (BDD) est une autre approche alternative qui combine des méthodes avec et sans code afin de simplifier le processus de développement. Cucumber est un outil BDD populaire.
Dans cette méthode, des récits utilisateurs sont créés pour chaque scénario, des extraits de code sont écrits pour ce scénario, puis chaque récit utilisateur est associé à l'extrait de code spécifique.
Cette méthode comporte trois composantes principales :
- La caractéristique décrit une fonctionnalité spécifique à l'aide d'une description générale.
- Scénario convertit la spécification comportementale en exemples et en étapes formelles
- Spécifications exécutables Parlons de la syntaxe agile « Given, When, Then ».
Par exemple, lorsque vous êtes tester les performances d'une fonctionnalité de connexion dans une application de démonstration : application Eribank
Les personnes non-développeuses rédigeront un scénario pour cette fonctionnalité comme suit :
- @AjouterScénario
- Scénario : Se connecter à l'application Eribank
- Données fournies : Identifiants de saisie
- Lorsque vous cliquez sur le bouton de connexion
- Vérifiez ensuite la connexion.
Les ingénieurs en automatisation des tests vont maintenant créer le code de chaque action à l'aide d'un langage de programmation et associer chaque action à l'extrait de code correspondant.
Test basé sur un modèle
Pour une couverture optimale de vos projets d'automatisation des tests, la compréhension et l'analyse des exigences sont essentielles. Sans système automatisé de collecte des exigences, la phase initiale d'automatisation des tests s'avère inefficace. Les tests basés sur des modèles permettent de surmonter ces difficultés et d'exploiter pleinement l'automatisation des tests avec un minimum de cas de test.
Les tests basés sur des modèles constituent une étape importante du cycle de vie du développement logiciel. Cette approche consiste à créer des modèles qui décrivent le comportement d'un système. Ces modèles définissent les stratégies et les environnements de test, génèrent des cas de test et évaluent la qualité des tests.
Tout d'abord, un modèle décrivant le comportement du système testé est créé. Ensuite, l'outil basé sur ce modèle analyse et interprète ce comportement afin de générer des scripts de test manuels et automatisés.
La difficulté de l'approche MBT réside dans la création et la maintenance du modèle. Il est également nécessaire d'établir une correspondance entre le modèle et ses applications. Par exemple, lors de la création d'un modèle pour la fonction de connexion, il faut définir la logique permettant d'accéder à l'écran suivant. De même, il est indispensable d'identifier les modifications.
Digital.ai Continuous Testing intégration avec les plateformes de développement low-code
Digital.ai Continuous Testing est une plateforme complète d'automatisation des tests dans le cloud qui vous permet d'exécuter une variété de cas de test sur une gamme d'appareils et de navigateurs situés dans différentes régions. Digital.ai Continuous Testing permet d'intégrer des plateformes de développement low-code pour exécuter des tests basés sur des modèles
Digital.ai Continuous Testing La plateforme cloud d'automatisation des tests propose un bot d'intelligence artificielle (IA) qui résout les défis des tests basés sur des modèles en combinant la puissance de l'IA avec les entrées humaines.
Voici une démo
Lorsque vous vous connectez au Digital.ai Continuous Testing Connectez-vous à votre compte et cliquez sur Appareils ; vous verrez alors la liste des appareils disponibles pour le test.
Maintenant, cliquez sur un appareil :
Rendez-vous dans la section Applications et installez une application bancaire de démonstration, ERIBANK.
Une fois l'application installée, lancez-la.
Lorsque vous cliquez sur le bouton de connexion, un message d'erreur vous demande un nom d'utilisateur et un mot de passe.
Si vous fournissez le nom d'utilisateur et le mot de passe, vous serez redirigé vers l'écran suivant.
Sans nom d'utilisateur ni mot de passe, il est difficile de réaliser des tests. Il vous faut donc trouver d'autres moyens d'effectuer des tests supplémentaires.
Digital.ai Continuous Testing Une application de chatbot IA vous aidera à le faire.
Ouvrez donc la page de l'application IA et cliquez sur « Créer un nouveau projet ».
Saisissez un nom de projet et cliquez sur Suivant.
Sur l'écran suivant, vous devez sélectionner l'application.
Vous pouvez soit télécharger l'application, soit la choisir dans le référentiel cloud, puis cliquer sur Créer un projet.
Cliquez maintenant sur « Démarrer l’exploration ». Le bot IA commencera alors à explorer l’application.
Sur l'écran suivant, donnez un nom à l'exploration, puis sélectionnez les appareils concernés. Pour cette démonstration, quatre appareils sont sélectionnés.
L'exploration a maintenant commencé.
Quand tu vas au Digital.ai Continuous Testing Sur le tableau de bord, cliquez sur « Appareils », vous pourrez voir que 4 appareils exécutent le test.
Maintenant, rendez-vous sur la page du bot IA et cliquez sur « Portails ». Vous constaterez que le bot a déjà identifié un portail.
Lorsque vous cliquez sur « Déverrouiller », vous pouvez consulter les détails du portail. Ici, l'écran de connexion s'affiche et vous avez besoin de votre aide pour le déverrouiller.
Il existe deux façons de fournir ces informations. Vous pouvez soit écrire un extrait de code utilisant Appium/Selenium, soit simplement remplir ce court formulaire avec les identifiants de l'utilisateur, comme suit :
- Nom d'utilisateur => entreprise
- Mot de passe => entreprise
- Connexion =>
Maintenant, cliquez sur Enregistrer.
Vous pouvez maintenant constater que le portail est déverrouillé.
Maintenant, rendez-vous dans l'onglet Explorations et cliquez sur le nom de l'exploration. Vous pourrez alors visualiser l'activité d'exploration sous forme graphique.
Le bot va maintenant exploiter les informations et poursuivre l'exploration. Une fois les identifiants de l'utilisateur fournis, il passera l'écran de connexion et accédera à l'écran suivant. Les autres utilisateurs utiliseront ces informations pour effectuer divers tests sur les applications, en se répartissant le temps de test.
Ici, vous pouvez constater que chaque appareil exécute un test différent, vérifiant un écran et des fonctionnalités différents.
Si vous consultez maintenant la vue graphique de l'exploration, vous pouvez voir un graphique plus grand avec plusieurs activités.
Si vous consultez l'onglet « Portes » maintenant, vous constaterez que des portes supplémentaires ont été identifiées (par exemple : MakePaymentActivity, MortageRequestOneActivity).
Par exemple, cliquez sur Déverrouiller et fournissez les informations nécessaires au paiement.
Téléphone => 111
Nom => gars
Montant => 100
Sélectionner => Inde =>
Envoyer =>
Cliquez ensuite sur « Enregistrer ». Le bot utilisera alors ces informations pour déverrouiller le système de paiement et effectuer des explorations supplémentaires.
Maintenant, cliquez sur Enregistrer.
Vous pouvez constater que la nouvelle porte est déverrouillée. Si vous consultez maintenant la vue graphique de l'exploration, vous verrez que le graphique s'étend.
L'interface graphique permet de visualiser l'ensemble des liens entre les écrans et la logique de fonctionnement de l'application. Une analyse de l'exécution est également disponible pour différents cas d'utilisation.
Cas d'utilisation des bots d'IA de test
Cette approche d'automatisation des tests d'IA basée sur un modèle résout plusieurs problèmes. En voici les principaux :
Assistant manuel et d'automatisation
La fonctionnalité d'assistance à la navigation d'application vous permet de démarrer votre application dans l'état souhaité, c'est-à-dire directement depuis n'importe quel écran. De même, l'assistant d'automatisation vous permet de retrouver l'arborescence de l'interface utilisateur (dump) de n'importe quel écran de l'application. Par exemple, si vous êtes développeur Appium, vous pouvez facilement retrouver les éléments XPath, car le modèle complet est enregistré ici.
Identification des plantages d'applications
Cette application d'IA inclut un test d'identification des plantages d'applications. En simulant le plantage et en exécutant le test sur des milliers d'appareils (versions, fabricants, tailles d'écran et résolutions différentes), vous identifierez les plantages et anomalies de votre application. Vous pouvez également effectuer un test de fumée.
Aperçu de l'application
Une fois l'exploration terminée, l'outil fournira également l'analyse des tests.
Vous trouverez ici des informations sur les tests. Par exemple, un résumé du score UX global sera fourni. De plus, les anomalies de performance seront signalées.
Cette démo montre que
- La connexion est plus lente dans la version 2.14.
- iOS 14.1 se comporte différemment sur l'écran de transfert d'argent.
Autre constat : une nouvelle fonctionnalité a été identifiée dans la version 2.34. Celle-ci détecte automatiquement les changements d'écran dans l'application testée.
Assistant d'automatisation
Si vous utilisez Appium, cet outil vous permettra de naviguer jusqu'à l'emplacement souhaité dans le modèle et d'exécuter le code à partir de cette zone. Vous pourrez ainsi réduire considérablement le code de navigation Appium, la quantité de code et, par conséquent, sa complexité. De plus, grâce à la fonctionnalité d'écoute XPath, vous pourrez gérer efficacement les fenêtres contextuelles et les événements inattendus.
Résumé
Pour tirer pleinement parti de l'approche de test basée sur un modèle tout en éliminant ses difficultés, Digital.ai Continuous Testing Ce système intègre un outil de test basé sur un modèle et alimenté par l'IA. Cette approche combine un bot IA et un humain pour construire ensemble un modèle destiné aux projets d'automatisation des tests. Grâce à l'exploration autonome des applications et à la création rapide de graphes d'application, les ingénieurs de test peuvent générer et exécuter rapidement des tests automatisés sur un modèle et analyser les résultats. Si le bot IA effectue la majeure partie des explorations, l'intervention humaine est nécessaire pour déverrouiller certaines interfaces, comme les écrans de connexion.
Créez maintenant des applications de meilleure qualité plus rapidement grâce à cette approche de développement low-code !
Pour en savoir plus, regardez la vidéo complète. Webinaire sur le développement low-code disponible ici.
Vous aimerez aussi
RAPIDE ET FURIEUX Pourquoi l'IA hybride surpasse la combustion de jetons
Nous vivons assurément une époque intéressante et en constante évolution. J'ai récemment…
Les nouvelles tentatives sont faciles. Savoir ce qu'on vous a dit, c'est une autre histoire.
Si vous exécutez des tests Appium, vous pouvez déjà réessayer…
Les nouvelles tentatives ne corrigeront pas un mauvais localisateur
Un test de connexion réussit le lundi, échoue le mardi, et…