Nous assistons actuellement à des changements structurels de l’économie dans son ensemble et des entreprises en particulier. Le rôle de l’informatique comme support de l’activité métier est encore plus important.
En conséquence, l’informatique et le contrôle qualité ne sont plus considérés comme des éléments séparés mais complémentaires pour obtenir un avantage concurrentiel. Dès lors, le test de logiciels n’est plus perçu comme un « mal nécessaire » mais comme un gage de « valeur ajoutée ».
L’importance croissante des tests
L’évolution des tests d’une gestion internalisée vers une activité externalisée résulte principalement de cinq facteurs.
– Face au grand nombre d’applications disponibles en ligne, il est essentiel de disposer d’une solide infrastructure de test pour gérer en temps réel un grand nombre de transactions.
– Les applications critiques sont désormais répandues et doivent apporter des performances et une disponibilité élevées. Beaucoup sont aujourd’hui accessibles en self-service, il est donc essentiel de tester en continu leurs performances et leur fiabilité.
– La disponibilité immédiate de plusieurs outils de testing permet de proposer des services de tests pleinement intégrés, pour des environnements hétérogènes.
– De nombreuses entreprises font appel à des services indépendants de tests, de vérification et de validation pour accélérer le déploiement de leurs produits. Le lancement plus rapide d’un produit bien testé apporte un avantage indéniable en termes de présence et de parts de marché.
– La maturité croissante du secteur des services offshore de logiciels a contribué à l’éclosion des services de tests, tout comme le manque en local de professionnels et d’experts dédiés à cette activité.
Ainsi, en même temps qu’elles comprenaient l’importance des tests, les entreprises ont découvert les avantages de leur externalisation.
Pourquoi externaliser les tests ?
Le test d’un logiciel consiste à valider que son utilisation est conforme aux spécifications. Les tests structurels, qui représentent la majeure partie des tests externalisés, se font du point de vue de l’utilisateur, pas du programmeur.
Classiquement, les services de test étaient présentés en intégration avec les services de développement et de maintenance de l’application. Aujourd’hui, les sociétés d’externalisation les proposent de manière séparée, afin de répondre aux besoins via des offres d’IVV (Independent Verification and Validation) des logiciels.
Dans ce cas précis, l’équipe qui conduit les tests est physiquement séparée du client, et bénéficie d’une indépendance totale pour présenter les résultats des tests. Ce système est soutenu par un modèle efficace de mission, où l’équipe de test collabore étroitement avec le service d’assurance qualité du client.
Plus important encore, cette équipe est en relation directe avec le Directeur Général ou le Président Directeur Général, pas avec les chefs de projet ni Directeur de division, ce qui lui confère l’indépendance et l’objectivité indispensables.
La décision d’externaliser les tests s’appuie sur plusieurs raisons. Elle permet de bénéficier d’une vaste équipe mondiale expérimentée pour renforcer les capacités de l’équipe informatique interne, au meilleur coût. Elle facilite également la gestion des ressources en fonction des besoins, ce qui est crucial lorsque l’on prévoit une évolution soudaine de la demande.
En outre, les fournisseurs de services de tests investissent considérablement dans divers domaines comme l’infrastructure, les processus, le personnel, les outils, la recherche, la formation et le développement. Ils aident ainsi les clients à optimiser la valeur de leur contrat d’externalisation, en termes de réduction de coûts, d’amélioration de la qualité et d’accélération des tests.
Les prestataires d’externalisation peuvent aussi continuer d’améliorer leurs processus, l’entreprise pouvant se concentrer sur sa productivité et son activité. De plus, la validation par un tiers indépendant donne davantage de confiance lorsqu’il s’agit de décider de la date de mise en service d’une nouvelle application.
Enfin, les mesures détaillées que recueillent les partenaires peuvent aider une entreprise à évaluer plus efficacement le coût total de l’activité de tests.
Finalement, l’externalisation des tests apporte les mêmes avantages que toute mission d’externalisation de l’informatique, comme l’accès à des professionnels dédiés bénéficiant d’une large gamme de compétences, ou encore l’efficacité accrue qui résulte de leur expertise et de leur expérience.
Qui doit externaliser ?
L’externalisation des tests des logiciels trouve de nombreuses justifications, les plus évidentes étant le coût et la qualité. C’est par exemple le cas des entreprises qui rencontrent des problèmes de qualité à cause de tests insuffisants ou inefficaces, ou dont le coût de cette activité explose (souvent pour avoir fait appel à des sous-traitants, des analystes ou des PME).
Viennent ensuite les entreprises qui souhaitent expérimenter l’externalisation, car les tests sont généralement considérés comme une première étape intéressante grâce aux économies potentielles générées et des risques relativement réduits qu’ils engendrent.
Citons aussi celles dont les clients ont d’importants environnements intégrés d’applications qu’il faut régulièrement maintenir en termes de correctifs et d’améliorations, ou dont les implémentations exigent un soutien après la mise en œuvre initiale et la stabilisation. Ici, un fournisseur de services externalisés peut apporter une assistance continue, rapide et au meilleur coût.
Sont également concernées les entreprises qui comptent modifier leurs technologies ou leurs processus. Dans ce contexte, l’externalisation d’activités courantes comme les tests libère les ressources critiques et les experts nécessaires pour s’aligner avec les nouveaux processus et systèmes.
Enfin, les entreprises qui cherchent à réduire leurs coûts et à améliorer leur couverture via l’automatisation. Pour elles, il reviendrait plus cher de monter une équipe interne que de faire appel à un partenaire externe.
L’avenir des tests
Aujourd’hui, les équipes informatiques commencent à étudier comment optimiser le coût des tests. Les grandes entreprises créent des centres d’excellence pour consolider les équipes et optimiser le coût de cette activité. De leur côté, les entreprises de moindre taille découvrent de nouvelles méthodes pour réduire les coûts, accélérer les processus et améliorer la qualité.
Certaines d’entre elles adoptent la méthodologie agile par opposition au modèle séquentiel classique. Les équipes d’assurance qualité ont commencé à effectuer des recherches sur ces techniques, comme les tests basés sur des modèles ou encore le développement et la virtualisation en fonction des tests.
Et dans un contexte où davantage d’entreprises cherchent à élargir la clientèle de leurs logiciels via le e-commerce et le commerce mobile, nous constatons une tendance vers des offres de tests mobiles et de tests d’infrastructure (avec des sous-domaines de test des applications mobiles, de la compatibilité, de la sécurité et de la facilité d’utilisation).
Nous constatons également une tendance à l’automatisation croissante et à la réduction des interventions manuelles. Les équipes de tests autrefois garantes de la qualité en deviennent les responsables, passant de la fonction de contrôle au rôle de gestionnaire.
De récents développements, comme la SOA et la virtualisation, devraient également avoir un impact significatif sur les tests (notamment en matière de méthodologie) et se traduire par une évolution fondamentale de l’état d’esprit de la profession. C’est ainsi que la SOA permet de répondre aux exigences avec davantage de souplesse, en alignant les technologies aux besoins métier.
Ce modèle rend cependant les logiciels encore plus complexes et interconnectés, et donc plus difficiles à tester. Pour renforcer la réactivité de l’entreprise tout en réduisant les risques de changement et de complexité des logiciels, l’équipe de test devra travailler de concert avec les équipes métier et développement, afin d’assurer la qualité tout au long du cycle de vie des logiciels de SOA : conception, développement et changements.
Face au manque actuel d’outils ou de cadres éprouvés, les équipes d’assurance qualité continuent d’expérimenter les méthodes pour s’accommoder de la difficulté des tests en SOA. De son côté, la virtualisation promet d’accélérer les tests et de réduire notablement les coûts opérationnels, mais son adoption est contrariée par un faible pourcentage de réussite et par l’investissement financier initial nécessaire.
Répondre aux besoins métiers
Les logiciels doivent répondre à la croissance des besoins métier. Les utilisateurs professionnels sont de plus en plus exigeants vis à vis d’une informatique qui ne résout pas vraiment leur problèmes et ne répond pas à leurs besoins. La compétition entre les éditeurs s’accroît, et les applications deviennent toujours plus complexes notamment en termes de la gestion des données.
Cette situation est bénéfique pour le marché de l’externalisation des tests car elle réduit les coûts du processus tout en augmentant son efficacité, en s’appuyant sur une équipe internationale de talents, une expertise supérieure et un investissement continu dans de nouvelles méthodologies et processus.
À terme, les entreprises pourront améliorer la qualité de leurs logiciels, accélérer leur mise sur le marché et améliorer leur image de marque.
Cet article a été écrit par Manish Kulkarni, Responsable du Département Testing pour l’Europe continentale de Cognizant.