Automatisation des tests logiciels et IA
Par Chris Colosimo
23 août 2013
7 min lire
Chez Parasoft, nous continuons à repousser les limites de l'automatisation des tests. Découvrez comment nous combinons l'automatisation des tests logiciels et l'IA pour accélérer les tests logiciels dans l'environnement de développement moderne.
Aller à la section
Nous avons ce petit slogan amusant sur la façon dont nous repoussons les limites de l'automatisation des tests. C'est assez simple quand vous le dites, mais qu'entend-on vraiment par là?
Repousser les limites de ce que nous pouvons automatiser dans les tests de logiciels
Récemment, nous avons été reconnus par plusieurs analystes de l'industrie pour le travail que nous avons accompli pour repousser ces limites. À voke, ils ont dit: «Parasoft est une entreprise née de l'innovation avec un souci constant de la qualité des logiciels,»Et Forrester a déclaré:«En ce qui concerne l'IA, Parasoft dispose d'une feuille de route impressionnante et concrète pour augmenter l'automatisation des tests de la conception à l'exécution, en poussant les tests autonomes. »
Mais qu'est-ce que cela signifie concrètement? Cool, les analystes parlent de notre feuille de route innovante, mais comment quelqu'un profite-t-il réellement de toute cette innovation? (En plus de lire ci-dessous, vous pouvez également regarder notre webinaire récent pour certains exemples de vrais clients.)
Les limites de l'automatisation des tests
Commençons par ce que nous entendons par «automatisation des tests». Habituellement, lorsque les gens parlent d'automatisation des tests, ils font référence à exécution de test, où vous prenez quelque chose comme un test manuel, l'enregistrez d'une manière ou d'une autre, le lisez et le mettez dans un script de test qu'un outil peut exécuter à la demande (c.-à-d. test d'enregistrement et de relecture, ce qui est cool et tout, mais c'est définitivement dans les «limites»). D'autres entreprises fournissent l'automatisation sur le création de test side - aider à automatiser la création du script de test en premier lieu.
Et bien que ces deux techniques soient intéressantes et utiles, elles s'inscrivent définitivement dans le cadre des efforts normaux d'automatisation des tests aujourd'hui.
Chez Parasoft, lorsque nous examinons comment repousser les limites, nous ne regardons pas une seule étape de test - nous examinons l'ensemble de la pratique des tests. Nous ne voulons pas déplacer un seul processus vers la gauche, nous voulons TOUT déplacer vers la gauche. Et oui, mon titre l'a révélé - une grande partie de cela revient à l'intelligence artificielle. Lorsque nous associons la technologie de l'IA et l'automatisation des tests, les capacités de test deviennent infiniment plus grandes.

Nous ne faisons pas que repousser les limites - nous ne pouvons même pas voir où SONT les limites.
(L'esprit explose.)
Bien sûr, j'ai promis de parler de ce que cela signifie de manière pratique. Pas d'une manière grandiose, où nous n'avons pas besoin de frontières, ni de voitures, ni d'humains, ou ……
Alors allons droit au but.
Innover dans les tests de logiciels en traitant les principaux points douloureux
Alors, qu'avons-nous innové exactement et comment pouvez-vous en bénéficier? Le récent rapport Forrester a noté que tous nos clients de référence réalisaient une automatisation des tests de plus de 50%, ce qui est bien plus du double de la moyenne du secteur. Pour y parvenir - pour vraiment repousser les limites de l'automatisation des tests d'une manière pratique qui augmente votre niveau d'automatisation des tests - nous avons identifié trois défis clés des tests logiciels et créé des technologies pour les résoudre. Ceux-ci sont tous disponibles pour que vous les utilisiez aujourd'hui.
1. Gérer (et comprendre) l'impact du changement
Les organisations de test passent un temps excessif à maintenir leurs cas de test au fur et à mesure que l'application change. Le changement prend de nombreuses formes différentes, y compris une nouvelle fonctionnalité introduite dans l'application ou une réarchitecture de la fonctionnalité d'application existante. Dans tous les cas, l'équipe de test doit identifier ce qui a changé, mapper ces changements à sa stratégie de test actuelle pour découvrir le delta et concevoir une stratégie pour créer de nouveaux cas de test pour combler les lacunes tout en mettant à jour les cas de test existants pour continuer à travailler.
Cela semble simple, peut-être. Et cela peut être le cas si votre application a un petit nombre d'API. Mais c'est un processus très difficile en réalité car la plupart des équipes de test n'ont pas une connaissance intime des interfaces d'une application pour commencer. Lorsque le changement se produit, il y a inévitablement une bousculade rapide pour identifier quelles sont les nouvelles capacités et construire des scénarios de test significatifs par rapport à cela. Comprendre l'impact des changements dans le système est essentiellement impossible pour un humain.
Exécutez Change Advisor de Parasoft pour identifier les changements dans les interfaces d'application et créer un modèle de changement pratique qui mappe différentes versions du service les unes aux autres. Il peut ensuite être utilisé pour refactoriser en bloc tous les cas de test qui pourraient être affectés par ce changement.
Grâce à cette technologie, les équipes peuvent réduire les coûts de maintenance associés aux cas de test et aux services virtuels, tout en donnant aux testeurs le confort de savoir que les artefacts qu'ils créent aujourd'hui continueront de fonctionner demain. Et avec ce flux de travail d'atténuation des changements, nous permettons une adoption et une mise à l'échelle beaucoup plus larges de l'automatisation des tests.
2. Obtenir des connaissances adéquates sur le fonctionnement des API
"Est-ce que je construis mes tests API correctement?"
C'est une question que j'entends tout le temps lorsque je travaille avec des clients pour élaborer une stratégie de test d'API. C'est fondamentalement la même chose que de demander: "Combien de temps dure un morceau de ficelle?"
La seule façon de savoir si vous créez vraiment le «bon» test d'API est de savoir que vous comprenez vraiment l'API. Les testeurs peuvent être créatifs s'ils ont des connaissances. Une fois que vous savez comment une chose fonctionne, vous pouvez créer toutes sortes de tests significatifs contre elle - mais obtenir cette connaissance initiale n'est pas facile. Comment un testeur est-il censé comprendre le fonctionnement de toutes les API? Je suppose que vous pourriez vous asseoir avec tous les développeurs pendant votre temps libre et leur poser des questions sur les subtilités des interfaces d'application qu'ils ont créées. Que sont-ils, à quoi servent-ils, comment sont-ils utilisés, comment les testeriez-vous? Les questions sont sans fin, et le problème, bien sûr, c'est que vous n'allez pas faire cela, et elles ne le sont pas non plus.
Pour relever ce défi, nous avons créé le générateur de test Parasoft SOAtest Smart API. Emballé dans un simple plugin pour Chrome, il utilise la technologie AI pour aider à combler le manque de connaissances associé à la découverte d'appels d'API pertinents et à la compréhension des associations entre les appels d'API pour créer une séquence significative d'étapes requises pour les tests.
Avec le Smart API Test Generator, vous pouvez surveiller et extraire les appels d'API d'une application vers une API backend REST. L'intelligence artificielle recherche des modèles et des relations dans les données, forme un scénario de test d'API qui modélise l'interaction entre le front-end et les API, et aide les organisations à comprendre non seulement quelles API sont disponibles, mais enfin comment tester ces API à l'aide de scénarios réalistes. .
3. Gérer efficacement (et ne pas perdre) son temps
Si vous parvenez à surmonter le manque de connaissances et à créer une bibliothèque géante de scénarios de test significatifs, vous devez toujours savoir quand pour exécuter ces tests. Les testeurs sont soumis à une pression énorme pour atteindre une couverture de test adéquate compte tenu de leur temps disponible, mais vous ne pouvez pas simplement exécuter tous vos tests tout le temps. Vous avez besoin d'une méthode fiable pour exécuter les tests exacts dont vous avez besoin, compte tenu du changement qui s'est produit.
Bien sûr, tout se résume au temps. Il est temps de faire face au changement, il est temps d'apprendre les API. Avez-vous mis en place l'utilisation la plus efficace de votre automatisation de test compte tenu du temps dont vous disposez pour l'exécution? C'est un gros problème. Je travaillais récemment avec une organisation qui avait amassé 18,000 XNUMX tests. Bien que cela sonne bien en surface, ils n'ont pas eu assez de temps le soir pour tous les exécuter. De plus, si tous s'exécutaient, il y avait de fortes chances que certains d'entre eux échouent, et il n'était pas immédiatement évident de savoir comment couper le bruit et comprendre exactement ce qui s'était passé. L'automatisation des tests peut vous aider à surmonter de nombreux défis, mais vous pouvez accidentellement ajouter beaucoup de temps de test, au lieu de le réduire, si vous ne gérez pas efficacement le changement.
Et c'est ici que tous ces défis se rencontrent. Pour atteindre la qualité à vitesse, vous devez faire plus de tests efficace, qui est tout au sujet mieux comprendre le changement - il ne s'agit pas de créer PLUS tests, il s'agit de créer moins de tests avec une couverture plus élevée. Alors, comment pouvons-nous accroître nos connaissances sur les tests à créer et à exécuter, pour gagner du temps et accélérer la livraison?
Ici, cela commence dans l'IDE du développeur. Nous avons également beaucoup innové ici, et maintenant, les développeurs peuvent utiliser la technologie de test basé sur le changement de Parasoft pour identifier et exécuter automatiquement uniquement les tests affectés par les modifications de code. La technologie va au-delà des tests basés sur le changement ordinaires pour permettre aux organisations de développement d'adopter une approche chirurgicale de l'exécution des tests, plutôt que d'avoir à exécuter chaque test à chaque fois qu'il y a un enregistrement. La technologie comprend comment les différentes zones du code affectent les unes les autres, puis utilise ces informations pour exécuter uniquement les tests qui sont affectés par le changement de code à partir d'un enregistrement donné.
Mais j'ai promis de repousser les limites !! Bien sûr. Cela se passe d'une manière réelle ici. Parce que notre technologie comprend l'impact spécifique sur l'application et peut utiliser ces informations pour exécuter les bons cas de test sur le bon code, le tout à partir de l'EDI, avant même que le code ne soit intégré dans l'application, nous aidons les développeurs à comprendre (au niveau local niveau, avant de s'engager) quel sera l'impact de leurs changements sur l'application plus large. Cela réduit considérablement le temps que l'organisation passe à réagir en cas de défaillance d'une application et met davantage l'accent sur la fiabilité et la stabilité de l'ensemble de l'application.
L'innovation comme catalyseur d'action
Ces trois grands défis, peut-être même nébuleux, peuvent certainement être relevés de haut en bas et tout autour, mais nous constatons, de plus en plus, que si vous tirez parti des machines pour travailler pour vous, concentrez-vous sur la réalisation de niveaux élevés d'automatisation des tests. de toutes les manières possibles, vous pouvez réaliser des tests d'application complets et de bout en bout. (Pour quelques exemples concrets de nos clients qui utilisent ces technologies pour ce faire, vous pouvez consulter un webinaire récent que j'ai organisé avec notre directeur du développement qui est disponible pour regarder ici: L'avenir de l'automatisation des tests: technologies de nouvelle génération à utiliser aujourd'hui).
À présent. Si vous avez fait défiler jusqu'en bas après avoir lu le titre, et que vous voulez juste comprendre les plats à emporter (Test Automation + AI = ??), laissez-moi essayer de vous donner une bonne petite pépite. Pour repousser les limites de l'automatisation des tests logiciels, vous pouvez tirer parti de l'intelligence artificielle dans de nombreux endroits, notamment en comprenant le fonctionnement des API, en créant des scénarios de test d'API efficaces, en identifiant les changements qui se sont produits et en exécutant les bons tests au bon moment. Et puis, vous pouvez appliquer l'apprentissage automatique pour faire passer tout cela au niveau supérieur. Mais c'est le sujet suivant, pour le prochain jour de pluie.
Commencer, tirer parti de toutes ces innovations d'automatisation des tests pour relever les défis spécifiques des tests logiciels auxquels votre organisation est confrontée. En tirant parti de ces technologies de nouvelle génération issues des laboratoires de test Parasoft, vous pouvez vous concentrer sur le changement en tant que catalyseur de l'action, au lieu de vous soucier du changement qui menace votre innovation.