D'être une option, DevOps devient rapidement une nécessité pour la plupart des entreprises ces derniers temps. DevOps permet aux entreprises de collaborer de manière transparente entre diverses équipes interfonctionnelles, de fournir des fonctionnalités plus rapidement et de réduire release défaillances tout en optimisant les ressources jusqu'au cœur. Pour tirer pleinement parti de la DevOps révolution, les équipes informatiques, commerciales, de développement et de qualité doivent travailler sur la même page. 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 de logiciels pour répondre à l'évolution des demandes informatiques.
Un aperçu du développement low-code
Le développement low-code est une nouvelle approche de développement logiciel qui permet aux développeurs de créer rapidement des logiciels à l'aide d'interfaces utilisateur visuelles complétées par une logique pilotée par modèle tout en éliminant le besoin de coder manuellement des applications. Les utilisateurs peuvent simplement faire glisser et déposer du code à l'aide de modèles prédéfinis et d'extraits de code. Cette approche accélère non seulement le processus de développement, mais permet également aux personnes ayant des compétences en programmation variées de collaborer de manière transparente et de contribuer au développement du code.
L'évolution du développement low-code
Depuis l'assemblage, des langages qui traitaient des zéros et des uns jusqu'aux langages de codage actuels facilement lisibles, le développement de logiciels a parcouru un long chemin. Au début, les langages d'assemblage étaient utilisés pour écrire des programmes informatiques. Ces programmes étaient faciles à comprendre pour les ordinateurs mais étaient très complexes pour les développeurs car ils devaient faire face à des systèmes de codage binaire, impliquant des zéros et des uns.
Dans les années 1950, les langages d'assemblage tels que COBOL et FORTRAN dominaient le monde du logiciel. Ces langages travaillaient en étroite collaboration avec l'architecture et le matériel du système. Les années 1960 ont vu l'introduction de SNOBOL qui était une extension de COBOL. Plus tard dans les années 1970, le langage C a été introduit et est devenu très populaire. À la fin de cette décennie, le système de programmation orienté objet (OOPS) a été ajouté à C. SQL a également vu le jour au cours de cette période, ce qui a permis aux utilisateurs de gérer les données.
Dans les années 1980, FoxPro et MATLAB sont devenus populaires. Alors que FoxPro s'occupait du SGBD, MATLAB était utilisé pour les algorithmes et les visualisations. La période entre 1990 et 2000 a vu l'introduction de langages populaires tels que Java, Python, PHP et Ruby. JavaScript a étendu Java pour gérer les aspects de l'interface utilisateur. La nouvelle décennie a vu C # gagner en popularité pour le développement d'applications Web et de bureau. Il a été suivi par des langages tels que Go et Rush. Avec la prolifération des appareils mobiles au cours de la décennie actuelle, Kotlin est devenu populaire pour Android OS tandis que Swift dominait le segment 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 propre et d'améliorer les performances et la productivité.
Les programmes écrits en langages d'assemblage impliquaient un code complexe et étaient difficiles à comprendre pour les développeurs. Par exemple, regardez un simple programme d'addition écrit dans un langage d'assemblage :
Le même code devient plus simple en Java :
Influence des langages de programmation
Les langages de programmation actuels sont influencés par les précédents. Par exemple, le langage Java le plus populaire a été inspiré par C++ et Smalltalk. Fait intéressant, Smalltalk et C++ ont tous deux été influencés par Simula. C++ est une extension du langage C, cependant. C et Pascal ont été influencés par Algol 68 qui était en fait influencé par Algol 60. Pascal a influencé Modula et ML et ML ont influencé Haskell.
Qu'est-ce qui fait le succès des langages de programmation ?
Pour qu'un langage de programmation réussisse, l'exigence fondamentale est qu'il doit résoudre un problème. Par exemple, C est livré avec une programmation système efficace tandis que JavaScript peut résider dans un navigateur. De plus, la productivité et la performance sont des exigences clés. Il doit être accompagné d'un bon environnement avec un interpréteur et un compilateur, des concepteurs influents tout en étant sécurisé. De toute évidence, la portabilité le rend populaire.
Visualisation du code
Afin de simplifier le codage, les développeurs ont essayé des méthodes de développement sans code telles que la visualisation du code à l'aide d'organigrammes.
En 2000, Mercury a introduit le modèle d'affichage du clavier qui simplifiait la visualisation du code.
Pourquoi les "anciennes" méthodes sans code ont-elles échoué ?
Alors que les anciennes méthodes sans code rendaient le code facile à comprendre, cela ne réduisait pas la complexité. Lorsque la logique du code est devenue complexe, les présentations visuelles sont également devenues complexes. La mise à l'échelle et la refactorisation du code étaient également un défi. L'absence de bons systèmes de contrôle de version et d'autres outils de collaboration a contribué à l'é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 pour simplifier le processus de développement. Le concombre est un outil BDD populaire.
Dans cette méthode, des user stories sont créées pour chaque scénario et des extraits de code sont écrits pour ce scénario, puis chaque user story est mappée avec l'extrait de code spécifique.
Il y a trois composants principaux dans cette méthode :
- La caractéristique parle d'une fonctionnalité spécifique à l'aide d'une description de haut niveau
- Scénario convertit la spécification comportementale en exemples et étapes formelles
- Spécifications exécutables parler de la syntaxe Agile Donné, Quand et Alors
Par exemple, lorsque vous êtes tester les performances d'une fonctionnalité de connexion dans une application de démonstration : application Eribank
Les non-développeurs écriront un scénario pour la fonctionnalité comme suit :
- @AddScenario
- Scénario : connexion à l'application Eribank
- Donné : informations d'identification d'entrée
- Lorsque vous cliquez sur le bouton de connexion
- Vérifiez ensuite la connexion
Désormais, les ingénieurs en automatisation des tests créeront le code de chaque action à l'aide d'un langage de programmation et mapperont chaque action avec l'extrait de code correspondant.
Test basé sur un modèle
Pour intégrer la meilleure couverture pour vos projets d'automatisation des tests, comprendre et analyser les exigences est la clé. Sans système automatisé de collecte des exigences, votre phase initiale d'automatisation des tests devient inefficace. Les tests basés sur des modèles résolvent ces problèmes et vous permettent de tirer pleinement parti de l'automatisation des tests avec un minimum de cas de test.
Les tests basés sur des modèles constituent une partie importante du cycle de vie de votre développement logiciel. Dans cette approche, des modèles qui capturent le comportement d'un système sont créés. Ils décrivent les stratégies de test, les environnements, génèrent des cas de test et évaluent la qualité des tests.
Tout d'abord, un modèle qui capture le comportement du système testé est créé. Ensuite, l'outil basé sur un modèle analysera et interprétera ce comportement pour créer des scripts de test manuels et automatisés.
Le défi de l'approche MBT réside dans la création et la maintenance du modèle. Vous devez également créer un mappage du modèle. Par exemple, lorsque vous créez un modèle pour la fonction de connexion, vous devez créer la logique qui vous amène à l'écran suivant. De même, vous devez identifier les changements.
Digital.ai Continuous Testing intégration avec des plates-formes de développement low-code
Digital.ai Continuous Testing est une plate-forme 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. Maintenant, Digital.ai Continuous Testing vous permet d'intégrer des plates-formes de développement low-code pour exécuter des tests basés sur des modèles
Digital.ai Continuous Testing La plate-forme 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 des entrées humaines.
Voici une démo
Lorsque vous vous connectez au Digital.ai Continuous Testing compte et cliquez sur Appareils, vous pouvez voir une liste des appareils disponibles pour le test.
Maintenant, cliquez sur un appareil :
Accédez aux applications et installez une application bancaire de démonstration, ERIBANK
Une fois l'application installée, lancez l'application.
Lorsque vous cliquez sur le bouton de connexion, un message d'erreur vous invitant à saisir le nom d'utilisateur et le mot de passe s'affiche.
Si vous fournissez le nom d'utilisateur et le mot de passe, cela vous amènera à l'écran suivant.
Donc, sans le nom d'utilisateur et le mot de passe, vous n'avez pas grand-chose à tester ici. vous devez donc trouver des moyens d'effectuer plus de tests.
Digital.ai Continuous Testing L'application AI bot vous aidera à le faire.
Alors, ouvrez la page de l'application AI et cliquez sur créer un nouveau projet.
Entrez 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 choisir dans le référentiel cloud, puis cliquer sur Créer un projet.
Maintenant, cliquez sur Démarrer l'exploration. Le bot AI commencera à explorer l'application.
Sur l'écran suivant, donnez un nom à l'exploration, puis sélectionnez les appareils pour l'exploration. Pour cette démo, 4 appareils sont sélectionnés.
Maintenant, l'exploration a commencé.
Quand tu vas au Digital.ai Continuous Testing tableau de bord et cliquez sur les appareils, vous pouvez voir que 4 appareils exécutent le test.
Maintenant, allez sur la page AI bot et cliquez sur Gates. Vous pouvez voir que le bot a déjà identifié une porte.
Lorsque vous cliquez sur déverrouiller, vous pouvez vérifier les détails de la porte. Ici, il affiche l'écran de connexion et il a besoin de votre aide pour déverrouiller l'écran de connexion.
Il existe deux manières de fournir ces informations. Vous pouvez soit écrire un extrait de code en utilisant le code Appium/Selenium, soit simplement remplir ce petit formulaire avec les informations d'identification de l'utilisateur comme suit :
- Nom d'utilisateur=>entreprise
- Mot de passe=>entreprise
- Connexion=>
Maintenant, cliquez sur enregistrer.
Maintenant, vous pouvez voir que la porte est déverrouillée.
Maintenant, allez dans l'onglet Explorations et cliquez sur le nom de l'exploration. Vous pouvez voir l'activité d'exploration dans un format graphique.
Maintenant, le bot prendra les informations et poursuivra l'exploration. Lorsque les informations d'identification de l'utilisateur sont fournies, il passera par l'écran de connexion et entrera dans l'écran suivant. Les autres travailleurs prendront ces informations et effectueront diverses activités de test sur les applications, en se répartissant le temps de test entre eux.
Ici, vous pouvez voir que chaque appareil exécute un test différent en vérifiant un écran et des fonctionnalités différents.
Si vous vérifiez maintenant la vue graphique de l'exploration, vous pouvez voir un graphique plus grand avec plusieurs activités.
Si vous vérifiez l'onglet des portes maintenant, vous pouvez voir qu'il a identifié plus de portes. (par exemple : MakePaymentActivity, MortageRequestOneActivity)
Par exemple, cliquez sur Déverrouiller et fournissez des informations pour effectuer un paiement.
Téléphone=>111
Nom => mec
Montant=>100
Sélectionnez=>Inde=>
Envoyer=>
Et cliquez sur enregistrer. Maintenant, le bot utilisera ces informations pour déverrouiller la porte de paiement et effectuer plus d'explorations.
Maintenant, cliquez sur enregistrer.
Vous pouvez voir que la nouvelle porte est déverrouillée. Si vous vérifiez maintenant la vue graphique de l'exploration, vous pouvez voir que le graphique s'étend.
Vous pouvez voir toutes les connexions entre les écrans et la logique derrière la fonctionnalité de l'application dans une vue GUI. L'analyse de l'exécution est également collectée pour différents cas d'utilisation.
Tester des cas d'utilisation de robots IA
Cette approche d'automatisation des tests d'IA basée sur un modèle résout plusieurs défis. Voici les plus importants :
Aide manuelle et automatisation
La fonctionnalité d'aide à la navigation de l'application vous permet de démarrer votre application dans l'état souhaité. Cela signifie que vous commencez avec n'importe quel écran de l'application. De même, l'assistant d'automatisation vous permet de trouver l'arborescence de l'interface utilisateur (vidage) de n'importe quel écran de l'application. Par exemple, si vous êtes un développeur Appium, vous pouvez facilement trouver les éléments Xpath car le modèle entier est enregistré ici.
Identification des pannes d'application
Cette application AI est livrée avec un test d'identification de crash d'application. Lorsque vous mettez à l'échelle le modèle et exécutez le test sur des milliers d'appareils avec des versions, des fabricants, des tailles d'écran et des résolutions différents. Il identifiera les plantages et les anomalies de votre application. Vous pouvez également effectuer un test de fumée.
Aperçu des applications
Une fois l'exploration effectuée, l'outil fournira également l'analyse du test.
Ici vous pouvez voir quelques aperçus de test. Par exemple, il fournira un résumé du score UX global. De plus, il fournira des anomalies de performances.
Dans cette démo, il montre que le
- La connexion est plus lente dans la version 2.14.
- iOS 14.1 se comporte différemment dans l'écran de transfert d'argent.
Un autre aperçu est qu'une nouvelle activité est identifiée dans la version 2.34. ainsi, il identifie automatiquement les changements d'écran dans l'application testée.
Assistant d'automatisation
Si vous utilisez Appium, l'outil vous permettra de naviguer jusqu'à l'endroit souhaité dans le modèle et d'exécuter le code à partir de cette zone. Cela signifie que vous pouvez réduire considérablement le code de navigation Appium, réduire la quantité de code et, par conséquent, réduire également la complexité du code. En outre, il vous permet de gérer efficacement les fenêtres contextuelles et les événements inattendus à l'aide de la fonctionnalité XPath Listener.
Résumé
Pour tirer pleinement parti de l'approche de test basée sur des modèles tout en éliminant ses défis, Digital.ai Continuous Testing est intégré à un outil de test basé sur un modèle alimenté par l'IA. Cette approche combine le bot AI avec un être humain afin qu'ils travaillent ensemble pour construire un modèle pour les projets d'automatisation des tests. Grâce à l'exploration autonome des applications et à la création rapide de graphiques d'application, il permet aux ingénieurs de test de générer et d'exécuter rapidement des tests automatisés sur un modèle et d'analyser les résultats des tests. Alors que le bot AI effectue la plupart des explorations, il nécessite une assistance humaine pour déverrouiller certaines portes telles que les écrans de connexion.
Créez maintenant de meilleures applications plus rapidement grâce à cette approche de développement low-code !
Pour en voir plus regardez l'intégralité webémission sur le développement à faible code ici.
Êtes-vous prêt à faire évoluer votre entreprise ?
Explorer
Quoi de neuf dans le monde de Digital.ai
Menaces de sécurité pesant sur les applications fonctionnant en dehors du pare-feu : aperçus de 2024 Application Security Rapport de menace
Naviguez parmi les risques croissants de cybersécurité pour les applications exécutées à l'état sauvage – Découvrez plus d'informations sur Digital.aiRapport 2024 sur les menaces liées aux applications.
Comment Continuous Testing Favorise la collaboration en matière de développement et de sécurité : l'approche à la mode du développement sécurisé
Découvrez comment continuous testing et app sec favorisent un SDLC collaboratif, créant un labyrinthe complexe pour les attaquants tout en responsabilisant les équipes et en réduisant les coûts.
Cloud Native : découvrez l'architecture et le développement d'applications
Découvrez les principes fondamentaux du cloud natif et son impact sur l'architecture et le développement d'applications.