Kalicrunch la newsletter, je m'abonne
Actualités
gestion tests à distance télétravail
Expertise

Comment gérer les tests à distance ? Les 6 clés permettant une bonne gestion du processus de test délocalisé ou test distribué, et notre sélection d’outils.

11 novembre 2020

Tribune de Lahossaine EL KHALOUI, Directeur Régional Hauts-de-France, QA Practice Manager

En cette période de crise sanitaire où les périodes de confinement se succèdent, j’ai l’impression que le monde découvre qu’il est possible d’être efficace, tout en travaillant à distance. S’il est vrai que l’exercice d’un certain nombre d’activités ne permet pas le travail à distance comme les métiers de la santé – et j’en profite pour rendre hommage aux infirmiers, médecins, urgentistes, pharmaciens, (…) qui luttent contre ce virus au quotidien –  mais également de nombreux métiers dans le domaine de l’industrie ; il existe bien un secteur pour lequel le télétravail est facile à mettre en œuvre, celui des Technologies de l’Information (IT). Cela suppose bien entendu que son organisation soit mature et les processus bien établis pour en garantir l’efficacité. Dans cet article, je vais me concentrer sur le sujet que je maîtrise le mieux, le monde du test logiciel, et je vais tenter de vous donner quelques clés permettant une bonne gestion du processus de test délocalisé ou, comme indiqué dans le syllabus ISTQB niveau Avancé, le test distribué.

La pandémie du Covid-19 a (re)mis au goût du jour le télétravail. Je n’aborderais pas ici les spécificités liées au contexte international qui pourraient faire l’objet d’un autre article, mais je resterais concentré sur les tests distribués (si vous souhaitez plus d’information sur les tests distribués 🎯) effectués par des équipes situées en France ou par des consultants confinés chez eux sur l’ensemble du territoire. Car s’il est bien une constante qui n’a pas changé dans le métier du test, c’est que la plupart des organisations déploient de nouvelles fonctionnalités ou des mises à jour à des rythmes de plus en plus soutenus, en flux quasiment continu. Et cette pandémie a eu également comme effet direct à court terme d’accélérer encore la transformation numérique des entreprises.

Conséquences ? Crise ou pas, les testeurs doivent sans cesse trouver de nouveaux moyens pour tester plus rapidement et plus efficacement.

Quelles sont les contraintes d’un effort de test distribué ? Je ne reviendrais pas dans le détail sur l’ensemble des bases qui sont encore plus vitales lorsqu’on est amené à travailler à distance comme un accès sécurisé aux environnements et aux appareils que vos équipes sont amenées à tester de manière approfondie, une relation basée sur la confiance, des attendus clairement exprimés et partagés, des outils de communication et de collaboration pour avoir des retours fréquents (cas de tests, nouveaux résultats, mises à jour, etc.). Pour reprendre les basiques, que l’on peut trouver dans le syllabus avancé Test Manager[1] sur le sujet, on peut retenir :

  • Les problématiques de communication
  • Des objectifs mal définis
  • La synchronisation avec les équipes de développement et intégration
  • Un environnement de travail non accessible
  • Des outils non adaptés

A cette liste j’ajouterai deux questions : comment gérez-vous les tests aujourd’hui ? Avez-vous un leader, une tête de pont ou, oserais-je avancer, un Test Manager ?

En effet, la première étape permettant de lever une bonne partie des contraintes liées aux tests distribués et de disposer d’une bonne gestion de votre processus de test, réside dans les missions même du Test Manager. Ce dernier a notamment pour responsabilités de définir des processus qui optimiseront les tests mais qui permettront également de faciliter le travail à distance.

Dans l’ordre, il convient de définir le terrain et les règles de jeu de l’équipe de test avec le reste du monde, c’est à dire :

  1. Cadrer le périmètre de test avec l’équipe projet (MOA/MOE). Il s’agit ici de préciser les parties du système qui seront testées, dans quel ordre et sous quel délai. Il s’agira également de planifier les priorités qui faciliteront la prise de décision par la suite.
  2. Définir le mode d’alimentation de l’équipe de test. Que l’on soit sur une gestion de projet en cycle en V où les spécifications sont formalisées à l’avance et où il parait facile d’alimenter l’équipe de test à distance (que ce soit pour l’analyse ou la conception des tests) ; ou dans le cadre d’une gestion en mode Agile (cet article 🎯 mettait déjà en avant il y a plus de 10 ans la possibilité d’être aussi performant avec des équipes de développement distribués qu’en local), l’alimentation des équipes de tests doit être réfléchie. Cela implique de définir un processus de validation des spécifications ou autre User Stories, avant envoi à l’équipe de test. Ce processus permettra de rassurer chacun de vos analystes de tests sur la réduction du nombre d’aller/retour lié aux changements de spécifications.
  3. Le Test Manager devra également penser à un mode de communication qui permet d’être efficace quel que soit le mode d’organisation, que ce soit par visio-conférence, téléphone, chat, mail ou encore sms, la façon de communiquer pour chacune des étapes du processus de test doit être formalisée. Personnellement, je recommande encore plus dans ce contexte de confinement l’usage de la vidéo qui recréait une collaboration « face-à-face », ramène du lien et de l’engagement en cette période où nous en avons particulièrement besoin … mais qui est également nécessaire au travail en équipe. Beaucoup de nos communications sont non-verbales, la communication vidéo, même si elle consiste à partager un rapport ou un écran, permet de les incarner et de préserver le contact. Avec Hangouts par exemple, on peut sans difficultés organiser des visio-conférences efficaces jusqu’à 10 personnes. De nos jours, la multiplicité des outils du numérique facilite grandement cette gestion des échanges (je vous propose une sélection à la fin de cet article)
  4. L’objectif d’une équipe de test étant d’améliorer la qualité du système sous test et de réduire les risques associés. Il est nécessaire d’anticiper quand et comment seront communiqués les indicateurs de suivi (KPI), si une présence de l’équipe de test sur site est nécessaire et de faciliter des échanges rapides sur l’état d’avancement. Il est important de définir un processus de communication qui permettra de tenir informées les parties prenantes régulièrement. Cela peut de façon traditionnelle passer par l’envoi quotidien ou hebdomadaire d’un rapport (type PPT) sur l’état d’avancement. Aujourd’hui, on utilise un tableau de bord dynamique qui, mis à jour par le Test Manager et/ou par chaque Testeur, permet ainsi de pouvoir disposer à l’instant T de l’information sans attendre le reporting. Un tableau de bord dynamique permet également de challenger ses équipes sur les objectifs à atteindre et de s’assurer de la vélocité sans devoir solliciter systématiquement ses consultants.
  5. Si l’écriture des tests peut se faire indépendamment de l’environnement de test, l’exécution quant à elle impose d’avoir un environnement opérationnel. Là encore, il est important que très tôt dans le processus de test, le Test Manager s’assure d’avoir clairement identifié tous les éléments de configuration de son environnement de test mais également qui sera chargé d’installer et de paramétrer l’environnement de test avant de procéder à la validation de l’environnement. C’est un préalable obligatoire à l’exécution des campagnes de tests. Sur ce point précisément la distance ajoute de la complexité, notamment si dans votre organisation, il est courant de solliciter l’administrateur de BDD / système ou encore l’intégrateur en physique pour lui demander de traiter en urgence telle ou telle demande. Pour une organisation distribuée, vous devez être capable de formaliser et d’anticiper au plus tôt vos demandes d’environnement afin de permettre aux équipes d’intégration de répondre dans les meilleures conditions à vos demandes.
  6. Même si beaucoup de ces règles, processus et rituels sont rarement écrits… En ces temps de crise, et alors que le remote-work devrait désormais s’inscrire dans la durée, je vous conseille de les formaliser. Sauvegardes régulières des livrables logiciels aux clients, organisation et rythme des réunions, outils utilisés, canaux choisis pour tel ou tel type de communication, etc. Il s’agit en en effet maintenant de planifier une situation, qu’on pensait jusqu’alors exceptionnelle, pour faciliter l’onboarding de nouveaux membres de l’équipe. On estime aujourd’hui que c’est 1/5ème de la population qui est susceptible de s’absenter de son poste de travail en raison du covid-19 et ce pour une durée plus ou moins longue. Vous devez plus que jamais suivre qui teste quoi et quand … si vous êtes amené à redistribuer des tâches du jour au lendemain pour respecter les délais.

La seconde étape, et que l’on a tendance à sous-estimer, est de tout mettre en œuvre pour garder du lien social, car une équipe de test performante est une équipe de test qui vit et collabore dans une ambiance conviviale et professionnelle. Voici 3 conseils pour préserver cet esprit collégial, bien que chacun travaille à distance :

  1. Organisez régulièrement des sessions « Teams Coffee » afin que ceux qui avaient l’habitude de se retrouver autour d’un café ou de respirer le grand air (avec les smartphones c’est possible !) puissent continuer à le faire par écran interposé. En remote-work, on ne sur-communique jamais assez !
  2. Organisez des temps d’échanges où, au-delà des objectifs de la journée, chacun peut faire part de ses problématiques pour que le collectif essaye d’y apporter des solutions
  3. Tenez informé votre équipe de l’évolution du projet et de l’actualité de votre entreprise/client afin de les impliquer encore plus dans la réussite du projet

Pour finir, les nouvelles technologies nous permettent aujourd’hui de travailler aussi efficacement à domicile qu’au bureau. Voici une sélection d’outils sous licence ou gratuite, non exhaustive qui peuvent s’avérer utile pour une équipe distribuée :

La gestion des documents 

  • La suite Office 365
  • La suite Google WorkSpace

La gestion des réunions d’équipes [1]

  • Google Hangouts
  • Zoom
  • Skype

La gestion de vos projets

  • Trello
  • Asana
  • Toggl Plan

La gestion des échanges

  • Slack
  • Teams

La gestion des transferts de données 

  • Google Drive
  • OneDrive
  • SwissTransfer
  • WeTransfer
  • TransferNow

[1] Une liste plus exhaustive est disponible ici https://www.codeur.com/blog/outils-videoconference-reunion-distance-teletravail/


[1] Chapitre 2.8 Tests Distribués, Externalisés et Internalisés (syllabus Version 2012)

[2] Une liste plus exhaustive est disponible ici https://www.codeur.com/blog/outils-videoconference-reunion-distance-teletravail/

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
testeur organisation agile
Actualité Expertise

Test Manager, une espèce en voie d’extinction dans un monde Agile ?

3 novembre 2020

Par Rim Mediaf, QA Practice Manager

Vous êtes un Test Manager et votre organisation bascule en agile : vous paniquez, ce rôle n’existe pas dans le jargon Agile ! Pourtant, votre rôle ne fait que de se transformer. Il ne disparait pas bien au contraire, il prend une nouvelle dimension.

Revenons à cette époque où vous étiez dans votre zone de confort en cycle en V comment se déroulait votre quotidien ? Vous le savez certainement mais pour ceux qui l’ignorent, un Test Manager s’occupait traditionnellement de :

  • Affecter les testeurs dans la liste de courses de projet
  • Suivre quotidiennement les petits pas des testeurs
  • Évaluer le rendement des testeurs et coacher ceux qui ont en besoin
  • Assurer la formation et la gestion de carrière de ses testeurs
  • … et toutes les autres actions super essentielles qui pourraient faire l’objet d’un autre article

Bref c’est le chef d’orchestre de la Team test ! Une équipe qui historiquement vérifiait et validait les systèmes développés au travers des tests unitaires, d’intégration et d’acceptation à postériori, après que le code ait été déjà développé. Le test logiciel entrait en jeu dans la phase ascendante du cycle en V, modèle de développement dominant pour les productions de systèmes complexes depuis des années. L’objectif était d’assurer la qualité du produit finale. Et c’est ici que le principe même qui oppose les méthodes Cycle en V et agile vient impacter votre métier.

Alors que s’est-il passé avec Agile ?

Pour rappel, les méthodes agiles sont basées sur les quatre valeurs fondamentales du Manifeste Agiles :

  1. Les individus et leurs interactions plutôt que les processus et les outils,
  2. Des logiciels opérationnels plutôt qu’une documentation exhaustive,
  3. La collaboration avec les clients plutôt que la négociation contractuelle,
  4. L’adaptation au changement plutôt que le suivi d’un plan

C’est une tout autre vision du développement car cela suppose une réorganisation de toutes les parties prenantes d’un projet, re centrées en permanence sur la valeur métier apportée avec des livraisons très fréquentes de versions immédiatement opérationnelles. Le développement classique et le développement agile ont une vision différente du rôle et de la place du test dans le processus de développement. Agile a bouleversé les mœurs des projets et intègre le testeur avec tout l’équipage projet sans se soucier d’une entité spécifique pour le test ! Mais la petite faille dans tout cela est claire : nous aurons plein de testeurs partout dans les projets sans une quelconque appartenance !

C’est par cette voie que tout va commencer… Cher Test Manager, oublie l’aspect management et pense plutôt à tes nouveaux rôles ! Il s’agit désormais de tester de continu, de détecter les erreurs au plus tôt en ayant confiance dans le code (contrairement au développement classique où on devait être sûr de son code), de guider le développement, de spécifier incrémentalement et de partager la responsabilité du code. Les activités de test sont désormais réparties tout au long du développement. Les testeurs, les développeurs et les métiers étaient auparavant isolés les uns des autres, ils collaborent au quotidien désormais tout au long du processus projet.

Rim Mediaf, QA Practice Manager
Test manager agile
Portrait du Test Manager

TEST MANAGER AGILE, LE PORTRAIT

  1. Tu es désormais coach des testeurs de ton organisation. C’est vers toi que se dirigent les testeurs quand ils ont besoin de conseil sur un outil, une approche de test, un aspect particulier de test ou une formation ! Et en plus, tu seras amené à organiser des sessions de partage pour le transfert de compétences entre les différents testeurs. Il est désormais de ta responsabilité de participer de manière continue à l’amélioration du développement et de partager ton savoir-faire.
  2. Tu deviens le big Brother : c’est vers toi que s’orientent les testeurs, non pas par ce que tu sais mais parce que tu connais qui contacter quand il le faut, tu es là pour les guider dans leur carrière et de les aider à mieux gérer leur temps ! Instaurer une vraie relation de confiance est ta mission dorénavant !
  3. Tu deviens le chasseur de têtes des activités de test  : tu connais parfaitement ton équipe de test, tu centralises les compétences , leur niveau d’expertise ; tu peux donc affecter le bon testeur au bon projet et tu peux remplacer un testeur quand il le faut par le plus utile au  projet !
  4. Tu es l’expert : c’est vers toi que l’on s’oriente pour le choix des outils, la méthodologie de test, les solutions envisagées (besoin de licences /Besoin d’un nouveau testeur ,….) .

Ton expertise de gestion de projet classique te permet clairement de t’orienter en mode gestion d’équipe et compétences, tu es entre autres le scrum master pour les testeurs.

Alors, chers test managers pas d’inquiétude, votre rôle en agile ne s’éteint pas bien au contraire. Il s’est étendu à travers l’organisation complète pour aider les testeurs à travailler sans stress en mode rapproché, avec les autres profils dans une même équipe. Vous devez accompagner les testeurs dans la transformation de leur métier car la méthodologie agile a changé la vision du rôle des testeurs dans les projets. En organisation agile, le développeur code avec le testeur plutôt que d’attendre son contrôle. On a moins d’attentes vis-à-vis des testeurs en termes de rédactions de rapports d’erreurs et autres documents, on attend de lui plus d’actions : tests automatisés, tests en continu. On ne produit plus des indicateurs d’avancement mais des résultats de tests à la demande. On est passé d’un monde fait de cahiers des charges à un environnement en mouvement basés sur des scénarios de tests avec le client.

Et vous, comment voyez-vous évoluer le métier de test manager dans votre organisation en mode agile? N’hésitez pas à partager vos retours d’expérience ! Nous les publierons à la suite de cet avis d’expert.

Pour aller plus loin :

Test Driven Developement : https://www.cftl.fr/livre-les-tests-logiciels-en-agile-cftl/ et

https://fr.wikipedia.org/wiki/Test_driven_development

Bonnes pratiques test first : https://openclassrooms.com/fr/courses/6100311-testez-votre-code-java-pour-realiser-des-applications-de-qualite/6440801-appliquez-le-principe-first-pour-ecrire-de-bons-tests

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
bonnes pratiques code proptre
Expertise

Code propre ? Les 3 principes incontournables.

14 octobre 2020

Le saviez-vous ? Un code passe la plus grande partie de sa vie à être lu, c’est pourquoi son écriture est essentielle.

Quel que soit le langage de programmation, avoir un code propre est un principe fondamental de l’ingénierie pourtant le code est trop souvent mal écrit, mal lu, mal compris. C’est souvent le résultat de mauvaises habitudes ou de mauvaises pratiques de développeurs pourtant bien intentionnés. Résultats ? Votre développement logiciel est instable et enchaine les dysfonctionnements. Une fois produite, votre application sera difficile à maintenir et à faire évoluer. Elle consommera plus de ressources que prévu, humaines comme financières.

À quelles caractéristiques reconnait-on un code propre ?

  • Un code propre est un code qui a été réfléchi pour être compréhensible et lisible par tous ceux qui seront amenés à le « consommer » : autres développeurs, chef du projet, la prochaine personne qui interviendra, etc.
  • Un code propre est un code fonctionnel qui a été testé car même s’il est de qualité aujourd’hui, rien de garanti qu’il ne se casse pas du tard ou qu’il rencontre des défaillances. Conserver les tests permet aussi de sauvegarder votre code et de le remanier sans le compromettre.
  • Un code propre, c’est une pratique qui s’entretient. C’est comme un instrument de musique, s’il veut conserver ses compétences en codage, le développeur doit pratiquer régulièrement. Donc, même si vous avez envie de coder par plaisir pour un projet personnel que personne d’autres que vous ne verra jamais, codez propre !
  • Un code propre doit être flexible, maintenable et durable. Il doit être immédiatement compréhensible, lisible et modifiable par des tiers.
  • Une code propre peut s’appuyer sur les principes du S.O.L.I.D

Clean Code, les trois principes de base

  1. Le code parfait n’existe pas mais il doit bien être bien conçu (Craftmanship*). Contrainte financière, externalisation auprès de tiers, time-to-market ; on a rarement le temps et les moyens de peaufiner chaque ligne de code pour qu’elle soit parfaite. Il est rare également que tout code soit exempt de bug du premier coup. Cependant, un bon développeur doit mettre à profit ses compétences pour tendre vers le « bon code », il a la main sur la qualité de ce qu’il produit. Certes, l’objectif est évidemment de répondre aux besoins exprimés dans le cahier des charges en fournissant un code « fonctionnel » mais cela ne suffit pas, il doit être bien fait, efficace et utile. Car si sa seule vocation est de répondre à des problématiques à court terme, un code mal conçu n’aboutira jamais à de bons résultats à moyen terme. Une application avec un code de mauvaise qualité sera difficilement débuggable et quasiment impossible à maintenir et à faire évoluer dans le temps.
  2. Ce qui est fait n’est plus à faire. Autrement dit, l’effort de conception et la petite perte de temps passés à produire un code propre seront largement rentabilisés, et bien plus rapidement qu’on ne le pense. Toute qualité injectée dans le code participe à sa longévité, son usabilité et sa maintenabilité dans le temps. Comme en beaucoup de choses, il vaut mieux parfois payer un peu plus cher un objet de qualité et le conserver longtemps ; que de chercher à faire une affaire sur une « contrefaçon » qui sera jetable et qu’il faudra racheter. Un code de qualité, produit méticuleusement et testé, est une source d’économies à moyen terme et réduit la dette technologique. « Petit » est également une règle incontournable. Les gros blocs de code de centaines de lignes sont à bannir, ils sont toujours illisibles et beaucoup trop complexes. Vous devez les remanier dans une longueur acceptable. Il en est de même pour les fonctions et les méthodes. Une fonction ne devrait pas comporter plus de 20 lignes et horizontalement, chaque ligne pas plus de 80 caractères.
  3. Votre code ne vous appartient pas ! Tout bon développeur est fier de son travail… mais il doit néanmoins avoir conscience que le code qu’il est en train d’écrire n’est pas le sien ! Il est destiné à être vu, lu, remanié et consommé par d’autres. Il doit être écrit pour être compris. Nul ne doit avoir besoin de le déchiffrer. Ainsi, si vous éprouvez le besoin d’expliquer votre code avec du texte, c’est que vous pouvez encore l’améliorer. Les commentaires doivent être utilisés uniquement pour expliquer des règles particulières, un bon code se passe de commentaires. Il est également important de nommer de manière explicite vos variables, fonctions ou classes afin que l’on comprenne de quoi il s’agit et l’usage qui en est fait.

Sources :

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
automatisation tests top outils
Actualité Expertise

Automatisation des tests, quel outil choisir ? Notre TOP 12

3 septembre 2020

Par Lahossaine El Khaloui, Directeur Régional Haut-de-France et Tests Tech Leader, Kalisoft

Le time to market vous impose de livrer toujours plus rapidement de nouvelles applications ou de nouvelles fonctionnalités. Et aujourd’hui, plus que jamais, vous n’avez pas le droit à l’erreur. La qualité délivrée doit être irréprochable et l’expérience client sans aucune faille. Chez Kalisoft, l’agilité, le DevOps et le développement continu font partie de notre ADN tout comme les solutions d’automatisation des tests. Nos consultants constatent en effet tous les jours que les tests restent bien souvent le parent pauvre des projets IT et que cette phase des projets subit tous les retards accumulés en amont.

Riche des d’expériences projets chez nos clients, notre Practice Test a mis en œuvre des actions de rationalisation des processus afin d’anticiper au mieux les revues de la documentation (Spécifications fonctionnelles et technique, dossier d’architecture, …), la rédaction de la stratégie de test et du plan de test ainsi que la réflexion au plus tôt d’une stratégie d’automatisation.

Bien que l’automatisation et l’ensemble des outils associés ne permettent pas de remplacer totalement les tests manuels, il n’échappe à personne aujourd’hui que ces derniers peuvent être beaucoup plus efficients à travers leur automatisation. Indispensable à toute démarche DevOps, l’automatisation permet de libérer le testeur d’une charge redondante mais surtout de fiabiliser les étapes de tests répétitives et chronophages (par exemple les tests de non-régression (TNR) et Sanity Check) tout en offrant la possibilité d’étendre par la suite la couverture globale des tests. Ils permettent également d’optimiser le processus de développement en introduisant des outils de détection des défauts au plus tôt (lors des Test Unitaires par exemple) ainsi que lors de la saisie des cas de tests et de leurs résultats.

En effet, pour que l’automatisation des tests soit réellement efficace, il est impératif de définir une stratégie de tests adaptée à votre organisation et surtout réaliste. Cette stratégie de tests vous permettra de définir le ou les outils les mieux adaptés au succès d’une démarche d’automatisation.

Pourtant, bien que les objectifs de l’automatisation soient clairs dans la plupart des cas, beaucoup de nos clients éprouvent des difficultés pour choisir l’outil le plus approprié parmi tous les différents outils présents sur le marché du test automatisé. Un choix d’autant plus difficile que les nouvelles versions d’outils d’automatisation vont jusqu’à intégrer des fonctionnalités d’intelligence artificielle, de machine learning, d’analytique avancé ainsi que le support d’un vaste nombre d’API. Ils peuvent paraître difficile d’accès…

Afin de vous aider à y voir un peu plus clair, nos experts Kalisoft ont réalisé une sélection des outils parmi les plus populaires et que nous avons l’occasion d’expérimenter lors de projets chez nos clients. Voici le classement Kalisoft des outils d’automatisation des tests, basé sur les critères de prix, de facilité d’utilisation (incluant l’aide d’une communauté, forum, hotline, …), de catégorie (Cloud Testing, Cross-browser & Cross-platform Tools / Services, Performance Testing Tools, Web Services, …) et de langages de développement supportées. Nos avis détaillés sur chacun de ces outils sont disponibles sur simple demande https://kalisoft.fr/contact/

N°1 pour Kalisoft ? Selenium

C’est LE grand classique et clairement l’outil référent pour toutes les applications web et mobile … et c’est sûrement le plus populaire aujourd’hui. Déjà, il est open-source donc gratuit, et il bénéficie d’une large communauté particulièrement active. Il permet de réaliser des scripts de tests dans les principaux langages de programmation tels que Java, JavaScript, Ruby, C#, PHP, Python, Ruby et Perl il fonctionne sur tous les navigateurs web et les environnements système (Windows, Mac et Linux). Par contre, il nécessite des compétences avancées en programming car il comporte sur une phase importante de conception des frameworks d’automatisation des tests et des librairies associées. Chez Kalisoft, nous avons une Practice éprouvée sur Selenium avec de nombreux projets à notre actif, pensez à nous consulter !

Katalon Studio

C’est également une solution intéressante pour tester les API / Web services. Il prend en charge les tests web et mobile, fonctionne sur Windows et Mac ODS et s’adresse plus particulièrement aux testeurs qui éprouvent des difficultés à intégrer et à déployer différents frameworks et bibliothèques. Construit sur Selenium WebDriver, c’est clairement la suite logique améliorée de Selenium. Il dispose d’une communauté active et bien documentée bien qu’encore faible en termes de volume. Il permet une prise en charge de SOAP et RESTful pour les tests d’API et de services. Il intègre une forte volumétrie de mots-clés pour créer différents scénarios de test et il supporte la BDD Cucumber pour générer des scénarios de tests en langage naturel. Son point faible ? Il ne supporte que les scripts en Java et Groovy à date… Notre avis ? C’est une solution très prometteuse … mais pas encore adaptée pour les projets d’envergure.

UFT (Microfocus)

Historiquement appelé QuickTest Professional (QTP), UFT est également très populaire dans les tests API, web et mobile ; il offre des fonctionnalités intéressantes dans la détection intelligente des objets (smart objet detection) dont ceux basés sur des images. Depuis sa dernière version, son interface utilisateur est bien plus intuitive pour la création, l’exécution et le reporting des tests API. Les différentes activités de tests et les différents paramètres sont visualisables sous forme de diagrammes. Pour Kalisoft, c’est l’outil qui fait le mieux la jonction entre les univers du test manuel et du test automatisé. Il permet notamment aux développeurs d’enregistrer les tests manuels réalisés (rapports d’exécution) et de les exporter sous forme automatisée. Il a également des capacités collaboratives très intéressantes dans le cas de projets d’envergure avec un référentiel partagé. Son inconvénient ? UFT ne support à date que VBScript … mais c’est un des langages parmi les plus faciles à utiliser et à apprendre en termes de code. A noter que c’est également un des outils les plus chers du marché.

TestComplete (SmartBear)

Outil propriétaire « sans code » puissant pour le testing des applications Web, mobile ou desktop, il supporte les langages JavaScript, Python, Angular, Ruby, VBScript, Delphi, C#, ou C++ pour écrire les scripts de test. Il est particulièrement approprié si vos interfaces utilisateurs comportent des éléments dynamiques amenés à changer régulièrement car il dispose d’un moteur de reconnaissance d’objets qui permet de détecter avec précision les éléments dynamiques présents sur les interfaces utilisateur. A noter, Test Complete ne supporte pas les environnements Mac. TestComplete dispose d’une intégration native avec Jenkins ce qui permet d’accélérer la prise en charge des composants de test Web et la prise en charge de toutes les versions récentes de navigateurs et plates-formes mobiles. Certes c’est un logiciel payant avec des frais de maintenance associé mais l’intérêt est que vous disposez d’un support client de haut niveau et des mises à jour régulière. Chez Kalisoft, nous avons une large part de nos équipes testings certifiées sur cet outil.

SoapUI (suite Ready API de SmartBear)

Cet outil est uniquement dédié au testing d’API et services. SoapUI supporte REST et SOAP services et est disponible en version open source ou propriétaire. Cette dernière propose une interface plus conviviale et des fonctionnalités avancées telles que l’assistant d’assertion, l’éditeur de formulaires et le générateur de requêtes SQL. Il permet de générer facilement des tests par simple glisser déposer.

IBM Rational Functional Tester

Spécialement conçu pour l’automatisation de tests d’applications développées avec différents langages et technologies tels que Web, .net, Java, Visual Basic, Siebel, SAP, PowerBuilder, Adobe Flex et Dojo Toolkit. Il a notamment une fonctionnalité de « storyboard testing » qui permet de visualiser et d’éditer les tests à l’aide du langage naturel et de captures d’écran des applications. Il s’intègre aux autres outils de gestion du cycle de vie des applications d’IBM.

Tricentis (Tosca)

C’est l’outil le plus complet et le plus DevOps « compliant » de notre comparatif car sa conception même repose sur les principes de l’agilité et de l’intégration continue. Tricentis a l’intérêt d’être l’une des rares plateformes qui supporte la plupart des activités de testing, du design à l’automatisation jusqu’au reporting et à l’analyse. Son interface user-friendly propose des fonctionnalités riches pour concevoir, configurer facilement, implémenter, exécuter, gérer et optimiser les tests API. Il ne nécessite pas d’écriture de script mais permet tout de même l’écriture manuelle de code si cela est nécessaire. Il supporte notamment HTTP(s) JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST et IBM MQ. Et selon, le discours produit, il permettrait de réduire drastiquement les délais de tests de régression, ce que nous sommes d’ailleurs en train de tester chez Kalisoft et cela fera l’objet d’un prochain avis d’expert… Le point négatif ? La communauté est encore un peu faible sur le produit. Notre conseil ? faites-vous accompagner par des sachants de la solution, et de la Practice Test Kalisoft en particulier, avant de vous engager.

Ranorex

Raborex est un outil de testing parmi les plus complets du marché (API, Web, Mobile et Desktop) … mais aussi un des plus chers. Il supporte un large éventail de langages et de technologies. Il offre des fonctionnalités avancées pour l’identification, l’édition et la gestion des éléments d’interface utilisateur. Ranorex a en effet pour avantage d’être parmi les seuls outils à tendre vers l’automatisation des tests UI/UX en utilisant la reconnaissance d’objets et en suivant différents scénarios utilisateur, tests particulièrement complexes jusqu’alors exclusivement manuels. Ranorex a une interface graphique conviviale et intuitive qui facilite les tests via notamment la fonctionnalité d’enregistrement/lecture et de génération de scripts. Il s’intègre avec Selenium Grid pour permettre des tests distribués ainsi que des exécutions de tests parallèles. Il est particulièrement adapté à toute démarche d’intégration continue et il s’interface nativement avec Jira, Jenkins, TeamCity ou Bamboo entre autres.

Watir (Web Application Testing in Ruby)

Nous avons décidé de faire figurer Watir dans notre sélection d’outils de testing car, bien que rudimentaire en terme de fonctionnalité, limité aux applications web et fonctionnant que sous windows … En effet, il reste un incontournable pour tous les développeurs Ruby car c’est l’un des rares qui permet d’écrire des scripts dans ce langage de programmation et chez Kalisoft nous aimons bien Ruby !

Postman

Postman est dédié aux tests API. Les utilisateurs peuvent installer cet outil comme une extension de navigateur ou une application de bureau sur Mac, Linux, Windows.

Apache JMeter

JMeter est surtout connu pour les loading tests et les tests de performance mais il aujourd’hui également utilisé pour les tests d’API et de services. On le retrouve régulièrement dans les chaines CI (intégration continue) et DevOps)

ARA

Pour finir, je vous présente ARA qui n’est pas un outil d’automatisation, mais un outil de pilotage simple et rapide. ARA est pour moi indispensable car il permet de réduire le temps passé à la création des anomalies de 80% et de réduire le temps passé à l’analyse à 15 minutes par jour. Il permet de définir des objectifs à atteindre par les tests automatisés. ARA s’interface via des API tests avec Cucumber, Postman ou Karate; et pour les sites Internet sur Desktop ou Mobile avec Cucumber.

PRIXTYPES DE TESTS
SELENIUMGratuitTests fonctionnels
Web & Mobile
KATALONGratuitTests fonctionnels
Web & Mobile
Tests de webservices
(Soap & REST)
UFTEntre 2500 et 3500$Tests fonctionnels Web, Mobile et Desktop
TEST COMPLETEEntre 4600 et 9000$Tests fonctionnels Web, Mobile et Desktop
SOAP UIGratuitTests de webservices
(Soap & REST)
IBM RATIONALTests fonctionnels Web, Mobile et Desktop
TRICENTIS (TOSCA)Sur devis (coût élevé)Tests fonctionnels Web, Mobile et Desktop
RANOREXEntre 2800 et 8500$Tests fonctionnels Web, Mobile et Desktop
Tests de webservices
WATIRGratuitTests fonctionnels Web
POSTMANGratuitTests de webservices
(Soap & REST)
JMETERGratuitTests de charge pour les applications web
ARAGratuitOutil de pilotage des tests automatisés
Tableau comparatifs outils d’automatisation des tests
KALISOFT 2020

Pour aller plus loin :

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
tests de performance dans le cloud
Actualité Expertise

Tests de performance dans le cloud

6 juillet 2020

Disponibilité dynamique de l’environnement de tests, coûts, évolutivité, nombreux sont les avantages du Performance Cloud Testing mais comment ça marche ? Quels types de tests effectuer dans le cloud ? Mode d’emploi avant de se lancer.

Besoins de davantage de scalabilité et pressions budgétaires accrues, la plupart d’entre vous faites le choix d’adopter le cloud pour vos nouvelles applications web et mobile. Le cloud a notamment l’intérêt de vous offrir un modèle « pay per use » que vous pouvez ajuster, en termes d’allocations de ressources par l’opérateur, selon la manière dont votre application est consommée. « Moving to the cloud » vous demande de mettre en place au préalable des tests de performance approfondis car l’expérience utilisateur (UX) est centrale pour vos applications web et elle repose pour beaucoup sur le facteur performance. Les tests de performance permettent de mesurer les temps de latence et la manière dont votre système se comporte lorsqu’il est sollicité par divers utilisateurs plus ou moins nombreux, en provenance de différents endroits à travers le monde et qui se connectent en simultané sur des périodes plus ou moins longues.

Ainsi, ils vous permettent d’évaluer votre application en termes de terme de vitesse de temps de réponse, de stabilité, d’évolutivité dans des conditions variables de montée en charge, de disponibilité, d’accessibilité et d’anticiper toutes défaillance système avant sa mise en production. Votre application doit être également testée en terme de sécurité d’autant plus qu’elle est hébergée dans les nuages.

Faire appel à un opérateur de services cloud n’est pas un choix neutre. Vous devez mesurer la sécurité, la fiabilité, la qualité, la bande passante, la latente, etc. Une fois votre configuration terminée, voici le temps venu de la stratégie de tests et du cloud testing.

Le cloud testing repose sur une infrastructure elle-même basée dans le cloud pour mener vos tests, qui vous offre des capacités de tests de vos applications à l’échelle particulièrement réalistes, jusqu’alors difficilement réalisables à des coûts accessibles.

En effet, contrairement aux tests de performance traditionnels « sur sites » qui nécessitent d’installer et de reproduire (et de maintenir…) le même environnement en termes d’infrastructures, de serveurs, de composants, de matériels, de logiciels (…) ; le cloud testing vous permet de tester les infrastructures cloud en créant facilement des environnement de tests, de déployer vos scripts sur des générateurs de charges déjà préfigurés et de simuler des usages, des charges et des pics de trafic à l’échelle.

Voici les différents types de tests de performance que vous pouvez mener en cloud testing :

  • Test de charges et de performance pour mesurer les temps de réponse
  • Stress test pour simuler le comportement de votre application selon différents scénarios dits de « rupture »
  • Tests de scalabilité et d’élasticité qui permettent notamment de vérifier le respect des SLA selon les variations de montée en charge
  • Test de performance des différents navigateurs
  • Test de latence
  • Test de capacité
  • Test de sauvegarde ou Failover Testing pour vérifier comment les fonctions de votre application se comportent lors d’une panne réseau, d’une interruption serveur, base de données, processeur (…)
  • Test de dimensionnement de l’infrastructure cible
  • Test de comportement système ou Soak Testing

Pour aller plus loin :

https://medium.com/qa-out-of-box/performance-testing-in-cloud-2335651186f9

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
frameworks javascript top 2020
Actualité Expertise

Frameworks JavaScript, Les incontournables de 2020

17 avril 2020

JavaScript est le langage de programmation le plus populaire actuellement avec Python. Pour le développement d’une application web front-end ou back-end, il est partout. Voici les frameworks de développement qui perdurent avec avec une communauté active … contrairement à JQuery ou AngularJS qui ont tendance à passer de mode.

REACT

Créée en 2013 par des ingénieurs de chez Facebook, il a clairement disrupté le développement web, il y a un avant et un après React. Il a introduit entre autres le développement orienté composants, le DOM virtuel et le concept de programmation fonctionnelle. Meilleure expérience utilisateurs, gains de performance, c’est clairement le framework de développement web qui domine aujourd’hui avec le plus de téléchargement par semaine et le deuxième plus grand nombre de contributeurs. Il bénéficie en effet entre autres de près de 3 milliards d’utilisateurs Facebook qui testent en continu les nouvelles fonctionnalités qui sont développées en permanence et qui ne cessent d’améliorer ce framework.

React, c’est du développement d’applications web, mobiles (React Native), des app Desktop (Electron), et du développement back-end avec Node JS. C’est également une multitude de bibliothèques de composants dont voici un excellent article pour aller plus loin : https://www.codeinwp.com/blog/react-ui-component-libraries-frameworks/

NODE JS

Créé en 2009, est le premier runtime Javascript server-side asynchrone qui utilise la machine virtuelle V8 et C++ pour le développement back-end. En raison de son fonctionnement asynchrone piloté par événements et sa légèreté, Node JS est plébiscité pour toutes les applications web gourmandes en entrées/sorties mais aussi l’IoT et le Serverless.

Il permet de créer des applications cross-plateforme, il fonctionne sous iOS, macOS, Android,  Windows, Linux, etc. C’est un framework open-source soutenu par tous les géants de la Tech tels que Microsoft, Netflix, IBM. Celui-ci compte le plus grand nombre de contributeurs dans GitHub. Il supporte nativement Javascript mais également tous les autres langages « compile to JS » comme TypeScript, Dart, etc. Il supporte également le phénomène à suivre de près, WebAssembly.

EXPRESS JS

Hébergé dans un environnement d’exécution Node JS, Express est basé sur un Framework web minimaliste inspiré de Sinatra. C’est devenu un incontournable.

C’est souvent l’API par défaut pour développer rapidement des applications Node JS car il fournit un ensemble d’outils qui permettent par exemple d’utiliser des templates (vues) ou de gérer des routes (URL demandées par Node JS).  Ses avantages ? Hautes performances, routage robuste et livraison avec une quinzaine de middlewares de bases qui vous offrent l’essentiel des micro-fonctionnalités. D’après GitHub, c’est de loin le framework le plus téléchargé par semaine !

VUE JS

Créé en 2014 par un ancien ingénieur de Google, Evan You, dont l’objectif était de faciliter la prise en main de développement front-end depuis Javascript, Vue.JS est né d’un mixte du meilleur de AngularJS (View Layer) et de React (DOM virtuel) qui en font aujourd’hui un des frameworks les plus faciles à utiliser rapidement pour des applications web monopages ou des interfaces utilisateurs légères via des templates HTML.

ANGULAR

Créée par Google en 2016, AngularJS est un framework end-to-end complet qui permet de développer de bout en bout toutes applications web. C’est le premier framework a avoir adopté TypeScript, ce qui a notamment contribué à rendre populaire ce langage. Même si Angular semble aujourd’hui passer un peu de mode face au succès grandissant de React, il n’en reste pas moins un incontournable par sa grande fiabilité et robustesse éprouvées notamment lorsqu’on doit gérer de grandes bases de données. Certes, la syntaxe reste complexe et le langage lourd avec une courbe d’apprentissage relativement longue mais Il bénéficie d’améliorations régulières dont le moteur Ivy dans Angular 9 qui permet d’optimiser notamment les temps de démarrage et de réponse ; ou encore Lazy Loading qui améliore le temps de chargement de modules.

NEXT JS

Next.JS a été construit depuis les deux frameworks Javascript les plus populaires, React et Node, et propose une couche supérieure qui permet un meilleur rendu côté serveur pour les applications React. Il propose également une fonction intéressante de «Build once, runs everywhere » qui permet de développer une seule fois une application qui fonctionne sur le web, mobile ou desktop. C’est aujourd’hui le deuxième Framework javascript back-end le plus populaire.

Pour aller plus loin / sources :

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
Top fonctionnalités Java 14
Expertise

Top fonctionnalités de Java 14

12 janvier 2020

Une nouvelle version du JDK est prévue pour mars 2020. Voici les principales fonctionnalités attendues. En effet, Le Pattern Matching d’inteanceof, déjà présent dans d’autres langages, permet d’exprimer la logique d’un programme de manière plus sure et plus précise. Le Record Type, comme une énumération, il est une forme restreinte d’une classe. Un Record déclare donc sa représentation couplée à l’API qui correspond à cette représentation. Le Packaging Tool permet

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualités
react vs angular
Expertise

React vs Angular, leurs différences

22 novembre 2019

React VS Angular : leurs différences. React est développé et maintenu par Facebook alors qu’Angular l’est par Google. Ils n’utilisent pas le même langage. Pour React, vous devez apprendre le JSK, un dérivé XML/HTML qui s’ajoute à JavaScript, qui vous permettra notamment d’identifier immédiatement toute erreur au niveau du balisage. Angular a lui aussi sa propre syntaxe avec le TypeScript qui rend le code plus facile à déboguer. Autre différence, le Data Binding. React utilise du databiding unidirectionnelle

À lire également
Actualité Non classé
9 juin 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
12 mai 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.
Actualité Non classé
28 avril 2022
Interview de Amel, Ingénieur d'affaires chez Kalisoft depuis quelques mois. Elle nous explique le process de formation Kalisoft.