accélérer les tests et la validation de logiciels

10
WHITE PAPER Radiographier une application pour « Tester Juste ». Un nouveau regard pour la validation Copyright Kalistick 2010 Tous droits réservés.

Upload: kalistick

Post on 26-Dec-2014

1.194 views

Category:

Technology


3 download

DESCRIPTION

Analyse d'une solution permettant d'accélérer les phases de test et de validation de logiciels et de diminuer leurs coûts

TRANSCRIPT

Page 1: Accélérer les tests et la validation de logiciels

WHITE PAPER

Radiographier une application

pour « Tester Juste ».

Un nouveau regard pour la validation

Copyright Kalistick 2010

Tous droits réservés.

Page 2: Accélérer les tests et la validation de logiciels

WHITE PAPER

2

Afin de satisfaire les besoins de l’entreprise, tout système d’information

doit s’aligner sans cesse avec des exigences de plus en plus fluctuantes et à

un rythme toujours plus rapide. Cela influe sur les processus de

développement mais exige également une gestion plus efficiente des phases

de qualification et de recette, soumises à des fortes pressions et à des

risques croissants.

Adopter une approche basée sur la connaissance d’informations précises sur

la version à valider permet de franchir une nouvelle étape dans

l’amélioration économique des activités de qualification et de recette, avec

comme bénéfices potentiels une amélioration de 32% de l’efficacité de la

validation et une réduction de 45% de sa durée1

Cette approche « boite grise » passe par une « radiographie » des

applications à valider pour obtenir une nouvelle visibilité sur les risques à

couvrir et ainsi :

Anticiper les problèmes.

Augmenter l’efficacité des tests.

Assurer la stabilité de la qualité de version en version.

Maitriser les risques de déploiement d’un correctif.

Agir sur la qualité en amont.

1 Capers Jones, Software Quality in 2010: “A Survey of the state of the art”, basée sur

13500 projets, 675 sociétés (150 Fortune 500) + 35 acteurs publics dans 24 pays, et

confirmés par 15 conflits juridiques.

Page 3: Accélérer les tests et la validation de logiciels

WHITE PAPER

3

CCOONNTTEEXXTTEE

Avant de rendre un système opérationnel, il faut toujours s’assurer de sa

conformité à un niveau de qualité qui dépend des risques à prévenir

(dysfonctionnements, mauvaises performances, failles de sécurité, …). Différentes

méthodes sont disponibles à cet effet, toutes basées sur des activités formelles de

revues ou sur le déroulement de campagnes de test. Force est de constater

qu’aucune ne permet de répondre de manière satisfaisante à tous les enjeux aussi

bien du monde de l’IT que de celui des métiers, comme le démontrent les

problèmes soulevés par les acteurs impliqués :

L’IT se plaint des délais de qualification trop courts, des équipes sous-

dimensionnées, des budgets prévisionnels insuffisants, …

Les métiers constatent que la recette dure trop longtemps, que les tests

mobilisent trop de ressources non-informatiques, que des

dysfonctionnements restent et coûtent chers, …

Une première tentative de solution est venue de la standardisation des processus

(modèle V&V, méthodologie TMap, …). Cette standardisation a ensuite permis

d’automatiser certaines activités. Dernièrement, une amélioration importante est

venue de l’apport du pilotage des tests par les risques (RBT – Risk-Based

Testing), qui constate qu’une couverture à 100% des exigences fonctionnelles et

non-fonctionnelles relève de la théorie, et recommande de mieux cibler ses efforts.

Cependant l’accélération des fréquences d’évolution, la complexité des systèmes,

leurs interconnexions via les architectures SOA, mais aussi l’adoption des

méthodologies agiles nécessitent des stratégies complémentaires. Il est

primordial de rendre les activités de tests non seulement plus efficaces

(découverte des défauts les plus critiques) mais également plus efficientes

(couverture optimale avec le moins de cas de test). En effet, ces activités

représentent encore 30% à 50% des budgets et malgré cela, des défauts « latents »

génèrent des anomalies qui coûtent très cher.

UUNNEE NNOOUU VVEELL LL EE VV II SSIIBB IILL IITT EE SSUU RR LL ’’AA PP PPLL IICC AATTIIOONN AA VV AALL II DDEERR

Les phases de qualification et recette impliquent différents acteurs et structures

organisationnelles de l’entreprise avec des rôles et responsabilités

complémentaires.

Le diagramme suivant représente une organisation articulée autour de trois

entités : les études et projets (département qui a en charge la partie amont d’un

projet de développement ainsi que la relation avec les entités métiers y compris

Page 4: Accélérer les tests et la validation de logiciels

WHITE PAPER

4

l’accompagnement à la recette), le développement (département interne ou

externe qui effectue les développements), et la production (exploitation de

l’infrastructure technologique et services y afférant).

FIGURE 1 : ORGANISATION « VIRTUELLE » POUR LA VALIDATION

Au centre, nous avons représenté une organisation « virtuelle » chargée de la

qualification et de la recette. Certains l’incluront dans le département études et

projets, d’autres pourront considérer cette entité comme un prestataire de TRA

(Tierce Recette Applicative).

L’objectif principal de cette organisation est d’optimiser en temps et ressources

toutes les activités d’assurance qualité liées à une livraison planifiée2 de version

d’un système d’information, quel que soit le type d’évolution.

Pour atteindre cet objectif, son rôle est double : l’un est d’accompagner le pilotage

de la qualité globale du projet depuis les spécifications jusqu’à la mise en

production, l’autre est de certifier à tout moment la conformité d’une livraison

afin de garantir la fiabilité opérationnelle requise.

A chaque livraison, les responsables de qualification ou de recette doivent

s’appuyer sur des stratégies qui leur permettent d’évaluer, piloter et gérer leurs

activités de test efficacement tout en s’inscrivant dans un cadre de gestion des

risques opérationnels.

2 Mais aussi dans le cas d’un correctif à déployer rapidement (rarement planifié).

Page 5: Accélérer les tests et la validation de logiciels

WHITE PAPER

5

QQUUEELL SS SSOONNTT LL EESS PP RROOBBLL EEMM EESS ??

Commençons par regrouper quelques situations rencontrées couramment :

1) A la fin des tests, seule 50% de la couverture fonctionnelle est testée et les

mêmes tests sont sans cesse répétés (inefficience des tests).

2) Malgré des campagnes de test menées jusqu’au bout, la fiabilité du

système s’avère insuffisante au vu des incidents rencontrés en production

(inefficacité des tests).

3) Après des évolutions mineures exigées par les entités métiers et testées

normalement, le système s’est dégradé (non pertinence des tests).

Tout comme une énumération de symptômes ne suffit pas, il nous faut analyser

les causes des problèmes rencontrés lors des phases de qualification et de recette

pour identifier des solutions. Des études empiriques3 publiées après des

recherches scientifiques listent des causes originelles parmi lesquelles :

La qualité structurelle du code n’est pas au niveau requis. Dans ce cas, la

phase de validation se confronte à des problèmes qui auraient dû être

éliminés en amont car liés à un déficit dans les pratiques de développement

qui engendrent des défauts fonctionnels.

La maintenabilité et l’évolutivité du code ne sont pas suffisantes. Chaque

modification exige plus d’effort et a des impacts plus larges sur

l’application ; cela augmente d’autant le risque de régressions. En

conséquence, l’effort de test sera très important à chaque version, même

mineure.

Les impacts des modifications réalisées ne sont pas correctement perçus, ou

alors de manière trop tardive, et les campagnes de test ne s’appuient pas sur

les risques réels de régressions selon les fonctionnalités impactées par le code

modifié. Il est par exemple fréquent que des bugs soient créés lors des

dernières corrections livrées en fin de validation pour lesquelles il est

impossible de rejouer l’ensemble des tests.

Le manque de visibilité sur le contenu du livrable reçu rend difficile la mise

en place d’une stratégie de tests basée sur une collaboration efficace entre

tous les acteurs. Les testeurs ne peuvent pas optimiser leurs efforts, les

entités métiers ne reçoivent pas les informations nécessaires à l’évaluation

des risques métiers, et l’exploitation n’a pas de visibilité précise sur les

versions.

3 Empirical Studies from Software Quality Group of ATI (at.es).

“Empirical Studies of a Prediction Model for Regression Test Selection”, Harrold,

Rosenblum, Rothermel, Weyuker, IEEE.

Page 6: Accélérer les tests et la validation de logiciels

WHITE PAPER

6

La conséquence fréquente de ces différents points : un nombre de livraisons trop

important pour une même phase de validation. Chaque livraison supplémentaire

augmente les coûts et la durée des tests, les risques de régressions non détectées,

et retarde la mise en production.

LL ’’EEXXAAMMEENN RRAADDIIOO GGRRAAPPHH IIQQUUEE

Evaluer ces risques en amont de la réception de chaque livraison, en disposant

d’une vision précise de la qualité du produit, de ses risques structurels, des

modifications et de leurs impacts renforce les processus de « validation qualité »,

« validation produit » et « validation version » avec des indicateurs clairs pour :

Evaluer l’effort de test nécessaire à la validation4 de cette version,

Orienter les efforts de test sur les bons composants et fonctionnalités au

moment opportun,

Réduire le nombre d’itérations nécessaires à la validation d’une version5.

La clé réside dans une radiographie des livraisons qui apporte à chacun une

information objective :

Evaluer la densité potentielle de défauts en effectuant une « validation

qualité » basée sur des techniques d’analyse du code source.

Restituer les risques projets et métier au travers d’une « validation

produit » avec une vision rapide sur les impacts directs et indirects

(régressions) des évolutions réalisées.

Donner aux entités de production une vision instantanée sur les

changements à déployer et les éventuels problèmes d’intégration grâce à

une « validation version ».

Pour satisfaire à ces trois validations et donner une visibilité complète sur

l’application (360°), la radiographie doit analyser des domaines complémentaires

et agréger les résultats pour fournir une synthèse pertinente et exploitable. En

couvrant les 8 domaines présentés ci-après, une plateforme de radiographie

devient une source d’informations riche pour planifier, piloter et gérer les

activités de validation. En disposer à chaque livraison évite de se lancer à

« l’aveugle » dans une phase de qualification ou de recette.

4 Validation s’entend au sens du modèle V&V, à savoir toutes les activités de test en

qualification et recette

5 Chaque itération correspond à une livraison et apporte de nouveaux risques de

régressions. Le nombre de bugs introduits lors de modifications pendant la

validation est estimé à 8%.

Page 7: Accélérer les tests et la validation de logiciels

WHITE PAPER

7

FIGURE 2 : PERIMETRE D’UNE RADIOGRAPHIE 360°

L’agrégation et la restitution des informations doivent se faire en utilisant un

prisme adapté aux besoins de chaque acteur. Ainsi, une restitution basée sur

l’architecture fonctionnelle, comme illustrée sur la figure ci-dessous, montre plus

clairement les zones de risques à couvrir lors des tests.

FIGURE 3 : RESTITUTION DES RISQUES FONCTIONNELS ET REGRESSIONS

(risques : vert -> rouge, zones modifiées & risques régressions)

CCOOMMMMEENNTT PPRROODDUU IIRREE CCEETTTT EE RRAADD IIOO GGRRAAPPHH IIEE

Pour réaliser cette radiographie, la plateforme Kalistick conjugue plusieurs

techniques d’analyse de l’application6 afin d’obtenir des informations pertinentes

et complémentaires, et les restitue de manière adaptée aux besoins des différents

acteurs de la validation.

FIGURE 4 : PROCESSUS DE RADIOGRAPHIE

6 Ces techniques sont issues des recherches menées en collaboration avec les

laboratoires de l’Insa de Lyon et du CETIC, et ont été primées par le Ministère de la

Recherche en 2008.

Page 8: Accélérer les tests et la validation de logiciels

WHITE PAPER

8

Les techniques appliquées sont :

Analyse statique du code, il s’agit d’une technique qui se rapproche de la

boite blanche pour détecter les potentiels problèmes techniques et

structurels.

Analyse des architectures technique et fonctionnelle pour recomposer son

organisation interne, pouvoir en vérifier la cohérence et restituer les

informations sur un angle fonctionnel.

Analyse des variations entre chaque livraison avec la version en production,

pour retrouver les modifications réalisées, évaluer les risques associés et

ainsi pouvoir affecter les bonnes priorités aux tests à réaliser.

Analyse des tests réalisés par les équipes de développement avant la

livraison, de leur couverture des modifications réalisées, pour détecter les

points insuffisamment testés ou éviter de focaliser tous les efforts de tests

sur les mêmes éléments.

La combinaison de ces différents axes d’analyse et la visibilité qu’elle donne des

applications forme une approche que nous qualifions de « boite grise » pour sa

capacité à restituer sur le plan fonctionnel une analyse interne de l’application, de

ses variations et de ses risques.

CCAARRAACC TTEERR IISSTT IIQQUU EESS SSUUPP PPLL EEMMEENN TTAA IIRREESS DD EE LL AA PPLL AA TTEEFF OO RRMMEE DD EE

RRAADDIIOOGGRR AAPPHH IIEE

Pour maximiser l’efficacité de la démarche, cette radiographie doit se faire à

chaque livraison et s’intégrer de manière fluide dans les processus existants.

Pour cela, il est important qu’elle soit automatisée, que ses résultats soient

disponibles en quelques heures et accessibles facilement à l’ensemble des acteurs

internes ou externes pour disposer d’un référentiel commun Pour les projets

offshore, il est important d’avoir une plateforme multilingue accessible par

Internet de manière sécurisée pour partager la visibilité acquise sur l’application.

En outre, permettre un accès à l’équipe de développement est primordial car

l’expérience montre qu’il est également souhaitable de disposer d’une

radiographie anticipée, en amont de la livraison officielle (quelques semaines) afin

de disposer de plus de temps pour adapter sa stratégie de validation aux risques

détectés.

En complément, il faut bien sûr que la solution ne soit pas structurante et qu’elle

ne génère pas une charge d’exploitation qui la rendrait trop coûteuse notamment

durant les phases de maintenance corrective de l’application à radiographier.

Enfin, si elle s’appuie sur une base de connaissance pour d’étudier la corrélation

réelle entre les résultats de la radiographie et les taux de panne réellement

observés en production, cela permet l’amélioration continue de la radiographie et

donc des validations.

Page 9: Accélérer les tests et la validation de logiciels

WHITE PAPER

9

La plateforme Kalistick offre ces caractéristiques notamment grâce au mode SaaS

(Software as a Service), c'est-à-dire accessible par Internet par tous les acteurs du

projet, dans différentes langues, et intégrées avec les plateformes de

développement et de test (ALM - Application Life-Cycle Management).

LLEESS BBEE NNEEFF II CCEESS DDEE CC EETTTTEE VV IISS IIBB IILL IITT EE PPOOUU RR LL AA VVAALL IIDDAATT IIOONN

Apporter au chef de projet et aux responsables d’entités concernées par la

validation les moyens d’anticiper sur les risques potentiels, d’en évaluer les

impacts techniques et métier en utilisant une perspective technique ou

fonctionnelle selon leur rôle est une vraie innovation et apporte des bénéfices très

concrets :

AANN TT II CC II PP EE RR LL EE SS PP RR OO BB LL EE MM EE SS

Ce premier bénéfice est très tangible : l’anticipation sur la validation. Car

l’analyse des résultats des radiographies réalisées montre que trop souvent on

s’attaque à la validation d’une version instable pas réellement testée en

développement. Cette situation apparait généralement bien tard lorsque l’on a

reçu de multiples livraisons pour une même version avec à chaque livraison de

nouvelles régressions provoquées par des remaniements du code inattendus.

Avoir une vision de la version à recevoir quelques semaines avant sa réception

effective et s’appuyer sur des indicateurs factuels pour estimer l’effort de tests à

réaliser et les risques potentiels apporte une capacité d’anticipation forte à la DSI.

Comme le montre des études, telles celles de Capers Jones7, le coût et la durée de

validation augmentent de 50% lorsque l’on est face à une application

« pathologique8 ». Avoir cette information est donc capital.

AAUU GG MM EE NN TT EE RR LL ’’ EE FF FF II CC AA CC II TT EE DD EE SS TT EE SS TT SS

Disposer à chaque livraison d’une vision précise des modifications réalisées, telles

des « releases notes », accompagnée par une analyse d’impact de ces changements

sur les plans techniques ou fonctionnels, augmente significativement la

pertinence des efforts de tests. Cela évite également l’apparition de nouveaux

bugs introduits avec les dernières corrections réalisées peu avant la mise en

production.

AASS SS UU RR EE RR LL AA SS TT AA BB II LL II TT EE DD EE LL AA QQ UU AA LL II TT EE

Lors du déploiement d’une nouvelle version, on cherche toujours à s’assurer que

la qualité est à minima équivalente à la version précédente en identifiant les

nouveaux problèmes ; car soit les anciens sont connus et considérés comme non

7 Cf. note 1 : Capers Jones, Software Quality in 2010.

8 Dans un état de faible qualité.

Page 10: Accélérer les tests et la validation de logiciels

WHITE PAPER

10

prioritaires, soit pas encore découverts et donc « potentiellement moins graves »

car ils ne « gênent » pas le fonctionnement actuel en production. Avoir la

visibilité sur ce différentiel est donc essentiel pour éviter la dégradation de

l’application au fur et à mesure de ses évolutions et l’apparition de nouveaux

risques.

CCOO NN TT RR OO LL EE RR LL EE SS RR II SS QQ UU EE SS DD EE DD EE PP LL OO II EE MM EE NN TT DD ’’ UU NN CC OO RR RR EE CC TT II FF

Lors de la réception d’un correctif à déployer rapidement, la capacité de test est

limitée et la décision de déploiement repose sur une analyse des risques pour

éviter des dysfonctionnements en chaîne. Là encore, disposer d’une radiographie

immédiate est synonyme d’une analyse des risques maîtrisée. D’autant plus si on

ajoute la possibilité pour la production d’identifier précisément le différentiel par

rapport à la version déjà déployée, par exemple sur la configuration ou les

librairies tierces.

AAGG II RR SS UU RR LL AA QQ UU AA LL II TT EE EE NN AA MM OO NN TT

Notons que les validations effectuées permettent non seulement d’estimer les

probabilités de risques métiers ainsi que les impacts potentiels, mais également et

surtout, la valeur du code déjà fourni et testé. Basée sur un référentiel qualité

établi, les résultats font fréquemment ressortir des opportunités d’optimisation

ou d’adaptation des processus d’ingénierie logicielle en amont.

CCOONNCCLL UUSSIIOONN

Disposer de cette nouvelle visibilité pour une application est un moyen efficace

pour « Tester Juste » et ainsi améliorer quatre dimensions de sa validation :

S’assurer avant le lancement des tests que le produit est au niveau de

qualité exigé.

Augmenter l’efficacité des activités de tests.

Maitriser les risques de mise en production.

Faciliter la gestion des risques projets.

L’étude des radiographies de plusieurs centaines d’applications représentant plus

de 100 millions de lignes de code montrent l’effet de levier que représente cette

visibilité pour la validation. Car lorsque cette approche « boite grise » laisse

entrevoir des difficultés, une approche traditionnelle de la validation de type

« boite noire » se traduit des risques non-maitrisés avec des retards

imprévisibles et des instabilités en production.

Copyright Kalistick 2010.Tous droits réservés.

www.kalistick.fr - [email protected]