Qu'est ce qu'un logiciel de qualité

Preview:

Citation preview

La qualité logicielle

Hello!Je suis Sylvain Leroy

Vous pouvez me trouver sur :sylvain.leroy@tocea.com / @sleroy0 about.me/sylvain_leroy

2007

Ingénieur Recherche

Informatique

2011

Création Société Tocea

2014

Acquisition Tocea Groupe Metrixware

CTO Tocea

2015

Acquisition EchoesGroupe Metrixware

CTO Metrixware

Projet Recherche

Ma Société

▧Assistance Qualité / Recette applications

▧Modernisation automatique d’applications

▧Offre Intégration Usine Logicielle

▧Formateurs Bonnes Pratiques /Cleancode / Qualité / Devops

▧Distributeur Outils de qualité de code (Optimyth)

▧Komea Dashboard (Pilotage développements par la qualité/productivité)

▧Offres Cobol/Mainframe

La qualité logicielle?

“De quoi est composé un

logiciel ?

Les programmes,Les procédures,La documentation,Les données,Les scripts,Les tests...

Qu’est ce que pour vous un logiciel de

qualité ?

Logiciel qui combine un faible taux de défauts et un haut niveau de satisfaction utilisateur. Le logiciel doit remplir toutes les exigences utilisateur et adhérer aux standards internationaux.

La qualité fonctionnelle

Casper Jones

Logiciel qui présente une robuste architecture et peut opérer comme un environnement multi-couches sans panne ou performance dégradée. Le logiciel présente un faible niveau de complexité cyclomatique.

La qualité structurelle

Casper Jones

Logiciel qui a de l’élégance, de l’ergonomie, avec des commandes faciles à utiliser et des interfaces et des écrans interactifs et des sorties bien présentées.

La qualité esthétique

Casper Jones

Quels sont les signes révélateurs de non-qualité ?

La complexité de la mesure

La dette technique

La dette technique

Quand les sprints illustrent la dette technique

“Les développements rapides et peu soucieux de la qualité produisent

généralement des années de maintenance et d’évolutions coûteuses.

La dette technique

Ward Cunningham

Autre conséquence, un logiciel prend le risque d’être abandonné plus

rapidement (vieillissement précoce)

“C’est le coût de ne pas créer un logiciel

de qualité.Chaque fois que qu’une partie du logicielle est refaite, le coût de la

qualité augmente

Le coût de la qualité

Principles of Quality Costs

, edited by Douglas C. Wood, ASQ Quality

Press, 2012.

Dette technique ?

Qualité logicielle=

Satisfaire les clients=

Traquer les défauts=

COnserver sa productivité

Les défauts, évaluation

indirecte de la qualité d’un

produit

Vocabulaire :

▧Défauts : ….▧Anomalie, Faute : ...▧Erreur, Bogue : ….▧Défaillance, Incident : ….

Défauts et méthodologieMéthodologie de dev.

Taux de défauts potentiel / FP

Efficacité de suppression(%)

Taux de défauts délivrés / FP

Cowboy 5.50 83% 0.94

Cycle en V 5.00 85% 0.75

Itérative 4.75 87% 0.62

Orientée objet 4.50 90% 0.45

Agile avec Scrum 4.30 94% 0.26

Test driven development

4.20 95% 0.21

Unified Process (RUP)

4.15 96% 0.17

PSP et TSP 3.50 97% 0.10

85% Certifié Réutilisation

1.75 99% 0.002

Quelles sont les causes

les plus courantes de bugs ?

Les causes de bugs les plus courantes :

▧Exigences non précises▧Spécifications mal rédigés ou absentes▧Déviations volontaires des exigences▧Erreurs de design▧Erreur de codage▧Non conformité avec la documentation

ou les conventions de codage▧Tests insuffisants▧Processus insuffisamment industrialisé▧Erreurs dans la documentation

Quelles sont les

justifications les plus

courantes?

Ceci est une fonctionnalité

TOP 20 Justifications les plus courantes

▧ Cela fonctionne sur ma machine▧ Ou étiez-vous quand le programme a crashé ?▧ Pourquoi voulez-vous faire ceci ainsi ?▧ Vous n’utilisez pas la bonne version du système d’exploitation▧ Même si cela ne fonctionne pas, est-ce gênant ?▧ Avez vous passé l’antivirus ?▧ Quelqu’un a du changé mon code▧ Cela fonctionne mais cela n’a pas été testé▧ Ceci ne peut être à l’origine de Cela!▧ Je ne peux pas tout tester!▧ C’est juste une coïncidence malchanceuse▧ Vous ne devez pas utiliser la dernière version du logiciel▧ Je n’ai pas touché à ce module depuis des lustres!▧ Il doit avoir quelque chose de bizarre dans vos données▧ Qu’avez vous pu taper pour faire planter le logiciel ?▧ Cela doit être un problème matériel▧ Comment est-ce possible ?▧ Cela fonctionnait hier▧ Cela fonctionne sur ma machine▧ Cela n’avait jamais cela avant▧ C’est bizarre▧ C’est normal, c’est une fonctionnalité

Origine et conséquenc

e des erreurs

Crime et ChâtimentExigences Plus difficiles à prévenir et à corriger

L’ajout incessant de fonctionnalités

Source très gênante de bugs

Architecture Clé pour structurer la qualité

Design Plus graves et contaminantes

Code source Les plus nombreuses, faciles à corriger

Failles de sécurité Difficiles à trouver, difficiles à corriger

Documentation Important si non corrigée

Mauvaises corrections Difficiles à trouver

Mauvais jeux de tests Nombreux mais rarement évalués

Mauvaises données Commun mais jamais mesuré

Structure Difficile à identifier

(A suivre)L’industrialisat

ion des développemen

ts

Merci

Vous pouvez me trouver :@sleroy0

sylvain.leroy@tocea.com