Machine Translated by Google
INFO304 : Tests de logiciels
Introduction
Dr KIMBI [Link]
Maître de Conférences, Université de Yaoundé I
Machine Translated by Google
Objectifs du cours
Comprendre les principes fondamentaux des tests logiciels
Obtenez une compréhension complète de ce qu'est le
test logiciel, de son importance dans le cycle de vie du
développement logiciel et de son rôle dans la garantie
de la qualité des logiciels.
1
Machine Translated by Google
Aperçu du cours
Introduction
Processus de test de logiciels
Qu'estce que le test de logiciels
Pourquoi devrionsnous tester ?
Terminologie de baseEn rapport avec
Tests de logiciels
Résumé
2
Machine Translated by Google
Introduction
3
Machine Translated by Google
L'importance des tests de logiciels
Phase de test
Les tests logiciels sont une partie cruciale du processus de développement logiciel. Il s'agit du
processus d'évaluation d'un système logiciel ou d'une application pour détecter des défauts, des erreurs
ou des bogues et de vérifier qu'il répond correctement aux exigences et aux fonctions prévues.
4
Machine Translated by Google
L'importance des tests de logiciels
Les tests logiciels sont essentiels car ils
garantissent que le logiciel fonctionne comme
prévu, répond aux besoins des utilisateurs et est fiable
et efficace.
Les tests ne sont pas un événement ponctuel, mais plutôt un processus continu qui commence dès les
premières étapes du développement et se poursuit tout au long du cycle de vie du logiciel.
5
Machine Translated by Google
Rappel des concepts importants
6
Machine Translated by Google
Rappel des concepts importants
Exigences fonctionnelles et non fonctionnelles
En informatique, les exigences logicielles sont les descriptions de ce que
le système doit faire et/ou ne pas faire, ainsi que les contraintes sur
son fonctionnement. Il existe deux types
Fonctionnel
Exigences
Non fonctionnel
Exigences
7
Machine Translated by Google
Rappel des concepts importants
Exigences fonctionnelles
Pour concevoir un logiciel, vous devez connaître les
objectifs qu’il doit atteindre.
sont les exigences que l'utilisateur final exige spécifiquement
en tant que fonctionnalités de base que le système devrait
offrir.
Exemples
Authentifiez l'utilisateur lorsqu'il se connecte au système.
Enregistrement de l'utilisateur par email.
8
Machine Translated by Google
Rappel des concepts importants
Attributs de qualité (exigences non fonctionnelles)
sont des exigences qui ne concernent pas spécifiquement la
fonctionnalité d’un système. Ils imposent des restrictions sur le produit
en cours de développement et sur le processus de développement, et
précisent les contraintes externes auxquelles le produit doit répondre.
Les performances concernent la rapidité avec laquelle quelque chose se déroule, généralement en termes de temps de réponse ou de latence.
PERFORMANCE
L'évolutivité concerne essentiellement la capacité de votre logiciel à traiter davantage d'utilisateurs, de requêtes, de données, de messages, etc.
L'évolutivité concerne intrinsèquement la concurrence, et donc la gestion de plus de choses dans le même laps de temps (par exemple, requêtes
ÉVOLUTION
par seconde).
La disponibilité concerne le degré selon lequel votre logiciel est opérationnel et, par exemple, disponible pour les demandes de service.
DISPONIBILITÉ
9
Machine Translated by Google
Rappel des concepts importants
Fonctionnel vs non fonctionnel
Fonctionnel Non fonctionnel
Description de ce que le système doit Description du fonctionnement du
faire système
Définit un système ou son Définit l'attribut de qualité du logiciel.
composant.
Vous aide à vérifier la Vous aide à vérifier les
fonctionnalité du logiciel. performances du logiciel.
Spécifié par l'utilisateur ou le client. Spécifié par le développeur
du logiciel.
dix
Machine Translated by Google
Rappel des concepts importants
Fonctionnel vs non fonctionnel
Fonctionnel Non fonctionnel
Description de ce que le système doit Description du fonctionnement du
faire système
Définit un système ou son Définit l'attribut de qualité du logiciel.
composant.
Vous aide à vérifier la Vous aide à vérifier les
fonctionnalité du logiciel. performances du logiciel.
Spécifié par l'utilisateur ou le client. Spécifié par le développeur
du logiciel.
11
Machine Translated by Google
Document d'analyse
12
Machine Translated by Google
Rappel des concepts importants
Document d'analyse
Un document d'analyse logicielle (SAD) est un
document formel qui fournit une analyse détaillée du
logiciel en cours de développement. il inclut
Exigences fonctionnelles et non fonctionnelles
Interfaces utilisateur et système
Méthodes et technologies utilisées
Cas d'utilisation et scénarios
Procédures d’assurance qualité et de tests
13
Machine Translated by Google
Document de conception
14
Machine Translated by Google
Rappel des concepts importants
Document de conception
Un document de conception logicielle (SDD) est un
document formel qui décrit les détails techniques et
l'architecture d'un produit logiciel en cours
de développement.
Les documents de conception sont similaires à SAD, mais
sont davantage axés sur les détails techniques de la façon dont
le logiciel sera conçu et mis en œuvre.
15
Machine Translated by Google
Débogage
16
Machine Translated by Google
Débogage
17
Machine Translated by Google
Débogage
18
Machine Translated by Google
Débogage
19
Machine Translated by Google
Débogage
3
Machine Translated by Google
Débogage
3
Machine Translated by Google
Processus de test de logiciels
16
Machine Translated by Google
Processus de test de logiciels
Les tests sont différents du débogage. La suppression des erreurs de
vos programmes est connue sous le nom de débogage. Le buttesting vise
à localiser les erreurs encore non découvertes.
Nous testons nos programmes avec des entrées valides et
invalides, puis comparons nos résultats attendus ainsi que les résultats
observés (après exécution du logiciel).
Remarque
Veuillez noter que les tests commencent uniquement à partir de la phase d'analyse
des besoins et se poursuivent jusqu'à la dernière phase de maintenance.
4
Machine Translated by Google
Qu’estce que le test logiciel ?
19
Machine Translated by Google
Tests de logiciels
Il existe différentes définitions des tests données cidessous :
« Les tests sont le processus d'exercice ou d'évaluation d'un système ou
d'un composant du système par des moyens manuels ou automatisés pour vérifier
qu'il répond aux exigences spécifiées. »
[IEEE 83a]
« Les tests logiciels sont le processus »d'exécution d'un programme ou d'un
système dans le but de détecter les erreurs.
[Myers]
Cela implique toute activité visant à évaluer un attribut ou une capacité
d'un programme ou d'un système et à déterminer qu'il répond aux résultats requis.
[Hetzel]
17
Machine Translated by Google
Tests de logiciels
Les tests ne sont pas :
Le processus consistant à démontrer qu’il n’y a pas d’erreurs.
Processus consistant à montrer qu'un programme exécute correctement
les fonctions prévues.
Processus consistant à établir la certitude qu'un programme fait ce
qu'il est censé faire.
18
Machine Translated by Google
Pourquoi devrionsnous tester ?
3
Machine Translated by Google
Pourquoi devrionsnous tester ?
Des tests sont nécessaires. pourquoi:
Le cas technique :
1 Les développeurs compétents ne sont pas infaillibles.
2 Les implications des exigences ne sont pas toujours prévisibles.
3 Le comportement d'un système n'est pas nécessairement prévisible à partir de ses
composants.
4 Les langages, les bases de données, les interfaces utilisateur et les systèmes d'exploitation
présentent des bogues qui peuvent provoquer des pannes d'applications.
4
Machine Translated by Google
Pourquoi devrionsnous tester ?
Des tests sont nécessaires. pourquoi:
L'analyse de rentabilisation :
1 Si vous ne trouvez pas de bogues, vos clients ou utilisateurs le feront.
2 Le débogage postversion est la forme de développement la plus coûteuse.
3 Les logiciels Buggy nuisent aux opérations, aux ventes et à la réputation.
4
Machine Translated by Google
Pourquoi devrionsnous tester ?
Des tests sont nécessaires. pourquoi:
Le cas professionnel :
1 La conception de cas de test est une tâche difficile et enrichissante.
2 De bons tests permettent d'avoir confiance dans votre travail.
3 Des tests systématiques vous permettent d'être plus efficace.
4 Votre crédibilité est accrue et vous êtes fier de vos efforts
4
Machine Translated by Google
Pourquoi devrionsnous tester ?
Quelques chiffres clés :
Environ 70 % du temps de développement a été consacré à la phase de test,
30 à 50 % du budget total du projet a été consacré uniquement à la phase de
test.
Les tests logiciels représentent environ 40 % de l’effort global.
4
Machine Translated by Google
Pannes logicielles récentes
4
Machine Translated by Google
Pannes logicielles récentes
4
Machine Translated by Google
Terminologie de base liée aux tests de logiciels
3
Machine Translated by Google
Terminologie : Erreur (ou erreur ou bugs) :
Erreur (ou erreur ou bugs) : les gens font des erreurs. Lorsque les
gens font des erreurs lors du codage, nous appelons ces erreurs des
bugs. Les erreurs ont tendance à se propager. Une erreur d’exigence
peut être amplifiée lors de la conception et encore amplifiée lors du codage.
Ainsi, une erreur est une erreur lors du SDLC.
3
Machine Translated by Google
Terminologie : Défaut (ou défaut) :
Faute (ou défaut) : Une instruction manquante ou incorrecte dans un programme résultant d'une
erreur est une faute. Ainsi, une faute est la représentation d’une erreur. La représentation désigne
ici le mode d'expression, tel qu'un texte narratif, des diagrammes de flux de données, des
diagrammes hiérarchiques, etc. Le défaut est un bon synonyme de faute. Les défauts peuvent être
insaisissables. Ils nécessitent des correctifs.
3
Machine Translated by Google
Terminologie
Échec : un échec se produit lorsqu'une erreur s'exécute. Le manifesté
L'incapacité d'un système ou d'un composant à exécuter une fonction requise dans des limites
spécifiées est connue sous le nom de panne. Un échec est mis en évidence par une sortie
incorrecte, une terminaison anormale ou des contraintes de temps et d'espace non
satisfaites. C'est un processus dynamique
3
Machine Translated by Google
Terminologie
Incident : lorsqu'une panne survient, elle peut ou non être facilement apparente
à l'utilisateur. Un incident est le symptôme associé à une panne qui alerte l'utilisateur de
la survenance d'une panne. C'est un
événement inattendu qui nécessite une enquête plus approfondie. Il n’est peutêtre
pas nécessaire de le réparer.
3
Machine Translated by Google
Terminologie
Cas de test : Un cas de test a une identité et est associé au comportement du
programme. Un scénario de test comporte également un ensemble d’entrées et une
liste de sorties attendues. L’essence du test logiciel est de déterminer un ensemble
de cas de test pour l’élément à tester. Le modèle de cas de test est présenté ci
dessous.
3
Machine Translated by Google
SUIVANT : SDLC et STLC