Sunteți pe pagina 1din 11

17/02/2019

Cours Qualité & Test Logiciel


Chapitre 1 - Introduction
Responsable du cours :
Héla Hachicha

Année Universitaire : 2018 - 2019

Ce cours

s’intéresse à la sûreté de fonctionnement de logiciels

1
17/02/2019

Plan du cours
• Chapitre 1 : Introduction
• Chapitre 2 : Modèles de cycle de vie et Test
• Chapitre 3 : Tests
▫ Introduction au test de logiciels
▫ Les concepts de test de logiciels
▫ Les méthodes de design des cas de test
▫ Les stratégies de tests
• Chapitre 4 : Métriques
• Chapitre 5 : Qualité

Sommaire
• Contexte
• Enjeux
• Exemples de défaillances

2
17/02/2019

Contexte
• Systèmes informatiques
▫ 80% de logiciel
▫ 20% de matériel

• Le matériel est fourni pour un nombre restreint


de fabricants

• La plupart des fonctionnalités dans les systèmes


informatiques sont fournies par le logiciel

Enjeux
Standish Group 2015 CHAOS report
• Analyse de plus de 50000 projets de développement
logiciel à travers le monde.

• Réussite des projets


▫ Succès: 29%
▫ Problématiques: 52%
▫ Echec: 19%

• 16% de succès en 1994.

• Succès = projet termine dans les temps, sans


dépassement de budget

3
17/02/2019

Enjeux
Standish Group 2015 CHAOS report
• La probabilité de succès décroit avec la taille du
projet:
▫ Petit: 70% de succès
▫ Moyen: 22% de succès
▫ Grand: 11% de succès

Causes des défaillances pour applications clouds

• Analysis of Business Data Processing Cloud


Apps (Di Martino et al (2012))
▫ 34% des défaillances sont dues a des entrées
utilisateur non prévues
▫ 32% des défaillances sont des timeouts
▫ 95% des défaillances sont dues aux mêmes 5
modules (37% des LOCs)

Instructions:
Il faut traiter correctement les exceptions
Un petit nombre d'erreurs sont a l'origine de la majorité des
défaillances !
De meilleures procédures de tests sont requises

4
17/02/2019

D'autres défaillances dans les nuages


• Amazon Web Services (2015)
▫ Indisponibilité de 6 heures
▫ Source: problème dans la gestion des métadonnées dans
DynamoDB (base de donnée NoSQL)
▫ La défaillance s'est propagée a d'autres services
▫ 2 des plus gros clients de AWS sont Amazon.com et Netflix
 Netflix a annonce ne pas avoir été impacté
 Une analyse des plaintes des consommateurs montrent une
très forte hausse pendant cette période

• Coût d'une indisponibilité dans le cloud


▫ Amazon.com a subi une panne de 45 minutes en 2013
▫ Le Coût en terme de ventes a été estimé a 4 millions de
dollars

Coût du développement logiciel


Source E. Chenu

• Ordres de grandeur
▫ 1 H/An = 1350 heures
▫ 1h == 50 euro
▫ Productivité == 2 à 5 lignes/h

5
17/02/2019

Génie Logiciel
• Une Définition
Le terme génie logiciel désigne l'ensemble des
méthodes, des techniques et outils concourant a la
production d'un logiciel, au delà de la seule activité
de programmation

12

Comment fabriquer un logiciel de qualité ?


• Le génie logiciel est un domaine en pleine évolution qui
offre une grande palette d’outils et de méthodes pour
parvenir à construire du logiciel de qualité.

• Aucune de ces méthodes ne s’est imposée à ce jour : il


faut donc prendre du recul sur les concepts et les
conseils qu’elles préconisent et utiliser son bon sens
pour les adapter à chaque situation.

• Ces méthodes se distinguent principalement par :


▫ leur degré de formalisme ;
▫ leur champ d’application ;
▫ les contraintes de qualité qu’elles ambitionnent.

6
17/02/2019

13

Qualité du logiciel — approches formelles


• Les approches formelles utilisent des outils mathématiques et des
méthodes de preuve pour construire un logiciel correct par
construction dont la vérification est automatisée ou assistée.

• Ces méthodes sont utilisées pour développer des logiciels critiques.


• Elles correspondent au niveau le plus élevé de certification.
▫ e.g. applications de la méthode B pour développer le logiciel embarqué
des lignes de métro 14 (1998) et 1 à Paris

14

Qualité du logiciel — approches semi-formelles


Les approches semi-formelles visent à introduire un langage
normalisé pour décrire le logiciel et sa spécification.
• Cependant, la sémantique du langage de spécification n’est pas
formalisée.
• Bien que ces approches précisent le discours du concepteur si on le
compare à celui décrit à l’aide du langage naturel, elles contiennent
certaines ambiguïtés et n’offrent aucune garantie sur la qualité des
résultats.

• Ces méthodes sont utilisées aujourd’hui par l’industrie du logiciel.

7
17/02/2019

15

Qualité du logiciel — approches empiriques


• Les approches empiriques mettent en avant un ensemble de
“bonnes pratiques” qui ont fait leur preuve par l’expérience.

16

Rapport de l’Institut National des Standards


et de la Technologie au USA

• En l’an 2000, la recette totale des ventes de logiciels


avait approximativement atteint les 180 billions $.
(billion = 109!)
• Ce chiffre était atteint grâce à une large force de travail
composée de:
▫ 697,000 ingénieurs logiciels
▫ 585,000 programmeurs
• Les erreurs logicielles se sont avérées assez coûteuses
devant entraîner des pertes financières s’élevant à 59.5
billions $ annuellement.

8
17/02/2019

17

Rapport de l’Institut National des Standards


et de la Technologie au USA

• Même si toutes les erreurs ne peuvent pas être


supprimées, plus qu’un tiers des ces coûts (~ 22.2
billions $) pourrait être éliminé par une infrastructure
de test améliorée permettant une identification et une
suppression précoces et efficaces des erreurs logicielles.

• Plus que la moitié des erreurs logicielles ne sont


détectées qu’à des phases avancées du cycle de vie des
produits commercialisés.

18

Une idée sur les salaires des testeurs


(D'après « Software Testing Institute Salary Survey », 2002)

9
17/02/2019

DevOps
• Définition
▫ Ensemble de techniques et d'outils facilitant le
passage du développement à la production.
• Bien plus que ca:
▫ Modelé de fonctionnement de l'entreprise
 Impliquant tous les maillons de la chaîne (RHs,
finances, etc.)
▫ Modelé d'interactions entre les équipes
▫ Intégration du retour sur expérience
▫ Une « culture »

DevOps
• Relation entre Dev et Ops:
• Dev: Equipes de développeurs logiciels
• Ops: Equipes en charge de la mise en production
des produits

• Antagonisme fort:
• Dev: Modifications aux moindres coûts, le plus
rapidement possible
• Ops: Stabilité du système, qualité

L'automatisation est au cœur de l'approche DevOps

10
17/02/2019

21

Impact du DevOps sur le travail d'un développeur logiciel

• Organisation du temps de travail:

11

S-ar putea să vă placă și