Chapitre 2 : Tester tout au long du développement logiciel Flashcards

o Comment les tests sont intégrés dans les différentes approches de développement. o Les concepts des approches pilotées par les tests, ainsi que DevOps. o Les différents niveaux de test, les types de test et les tests de maintenance.

You may prefer our related Brainscape-certified flashcards:
1
Q

C quoi l’utilité d’un modèle de développement logiciel?

A

Un modèle de cycle de vie du développement logiciel définit la
manière dont les différentes phases de développement et les types d’activités réalisées dans le cadre de
ce processus sont liés les uns aux autres, à la fois logiquement et chronologiquement.

Le choix du CDVDL a un impact sur :
- Le périmètre et le calendrier des activités de test (par exemple, les niveaux de test et les types de
test).
- Le niveau de détail de la documentation des tests.
- Le choix des techniques de test et de l’approche de test.
- Le degré d’automatisation des tests.
- Le rôle et les responsabilités d’un testeur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle est la participation des testeurs dans les modèles de développement séquentiel aux phases initiales du projet ?

A

Les testeurs participent généralement à la revue des exigences, à l’analyse de test et à la conception des tests.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pourquoi les tests dynamiques ne peuvent généralement pas être effectués au début du cycle de vie du développement logiciel dans les modèles séquentiels ?

A

Parce que le code exécutable n’est généralement créé que dans les phases ultérieures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quel avantage offre le développement incrémental et itératif en termes de tests ?

A

Chaque itération fournit un prototype fonctionnel ou un incrément de produit, permettant ainsi la réalisation de tests statiques et dynamiques à tous les niveaux de test.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelle est l’approche privilégiée en matière de documentation et de tests dans les projets agiles ?

A

Les projets agiles privilégient une documentation légère et une automatisation poussée des tests.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quelle est la méthode principalement utilisée pour les tests manuels dans les projets agiles ?

A

Les tests manuels sont souvent réalisés à l’aide de techniques basées sur l’expérience, qui ne nécessitent pas d’analyse et de conception des tests préalables approfondies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quelles sont les recommandations en matière de bonnes pratiques de test, indépendantes du modèle de cycle de vie du développement logiciel choisi ?

A
  • Pour chaque activité de développement, il doit y avoir une activité de test correspondante. (CQ)
  • Les différents niveaux de test ont des objectifs spécifiques pour éviter la redondance.
  • L’analyse et la conception des tests commencent pendant la phase de développement correspondante.
  • Les testeurs participent à la revue des produits d’activités dès que les versions préliminaires sont disponibles.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelles sont les similitudes entre TDD, ATDD et BDD en termes de développement logiciel ?

A
  • Ils orientent le développement par le biais des tests.
  • Ils implémentent le principe des tests précoces.
  • Ils suivent une approche shift left, avec les tests définis avant le code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quels sont les principes du développement piloté par les tests (TDD) ? Beck 2003

A
  • Dirigé par le biais de cas de tests.
  • Les tests sont écrits en premier.
  • Le code est écrit pour satisfaire les tests.
  • Les tests et le code sont ensuite refactorisés.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quels sont les principes du développement piloté par les tests d’acceptation (ATDD) ? Gartner 2011

A
  • Les tests sont dérivés des critères d’acceptation.
  • Ils sont écrits avant que la partie de l’application ne soit développée.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quels sont les principes du développement piloté par le comportement (BDD) ? Chelimsky 2010

A
  • Exprime le comportement souhaité dans un langage naturel (utilise généralement le format Given/When/Then).
  • Les cas de test sont automatiquement traduits en tests exécutables.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce que DevOps et quels sont ses principaux objectifs ?

A
  • Créer une synergie entre le développement(&test) et l’exploitation.
  • Changer la culture organisationnelle pour combler les écarts entre ces fonctions.
  • Favoriser l’autonomie des équipes, le feedback rapide et les pratiques techniques comme CI/CD.
  • Tester et de livrer plus rapidement un code de haute qualité par le biais d’un pipeline de livraison DevOps
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les avantages de DevOps du point de vue du test ?

A
  • Feedback rapide sur la qualité du code.
  • Approche shift left du test.
  • Automatisation des processus comme CI/CD(pr mettre en place des env test stable)
  • Vue accrue sur les caractéristiques qualité non fonctionnelles. (perf, fiab..)
  • Réduction des tests manuels répétitifs.
  • Minimisation du risque de régression grâce aux tests automatisés.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les risques et les défis associés à DevOps ?

A
  • Définition et établissement du pipeline de livraison DevOps.
  • Introduction et maintenance des outils de CI/CD.
  • Exigences supplémentaires et complexité de l’automatisation des tests.
  • Nécessité continue de tests manuels, surtout du point de vue de l’utilisateur.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles sont les bonnes pratiques pour implémenter un “shift left” (test précoce) dans les tests ?

A
  • Examiner la spécification du point de vue des tests. (to find potential defaults au debut de processus)
  • Rédiger des cas de test avant l’écriture du code. (code is tested in env test while being developed)
  • Utiliser l’Intégration Continue et le Développement Continu. ( Ces pratiques permettent d’obtenir un feedback rapide et d’automatiser les tests de composants, ce qui accompagne le code source lorsqu’il est déposé dans le référentiel de code)
  • Clôturer les tests statiques du code source avant les tests dynamiques.
  • Commencer les tests non fonctionnels au niveau des composants(Les tests non fonctionnels, qui évaluent les aspects tels que la performance et la fiabilité, sont réalisés dès que possible au niveau des composants)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

C’est quoi le principe de shift left?

A

Le principe du shift left suggère normalement que les tests doivent être effectués plus tôt (par exemple, sans
attendre que le code soit implémenté ou que les composants soient intégrés), mais il ne signifie pas que
les tests doivent être négligés dans les phases ultérieures du cycle de vie du développement logiciel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Quels sont les avantages et les défis de l’approche shift left ?

A

** Avantages:

  • Réduction des efforts et/ou des coûts à un stade ultérieur du processus.
  • Feedback rapide et détection précoce des défauts.

** Défis:

  • Formation, efforts et/ou coûts supplémentaires au début du processus.
  • Nécessité de convaincre et d’obtenir l’adhésion des parties prenantes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Quelles sont les retrospectives?

A

Les rétrospectives (également appelées “réunions post-projet” et rétrospectives de projet) sont souvent
organisées à la fin d’un projet ou d’une itération, lors d’une étape de livraison, ou peuvent être organisées
en cas de besoin. Le calendrier et l’organisation des rétrospectives dépendent du modèle de cycle de vie
du développement logiciel suivi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qu’est-ce qui est discuté lors des réunions de rétrospective à la fin d’un projet ou d’une itération ?

A

Lors des réunions de rétrospective, les participants discutent des succès à conserver, des éléments à améliorer et des moyens pour intégrer les améliorations pour l’avenir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qui participe généralement aux réunions de rétrospective ? et A quelles questions repondent-ils?

A

Les réunions de rétrospective impliquent généralement non seulement les testeurs, mais aussi les développeurs, les architectes, le Product Owner, et les analystes métier.
Ils discutent les points suivants:
- Qu’est-ce qui a été un succès et qui devrait être conservé ?
- Qu’est-ce qui n’a pas fonctionné et qui pourrait être amélioré ?
- Comment intégrer les améliorations et conserver les succès à l’avenir ?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Quels sont les avantages typiques des réunions de rétrospective pour les tests ?

A

Les avantages typiques incluent une augmentation de l’efficacité et de l’efficience des tests (when implementing suggestions of improvement de processus test), une amélioration de la qualité du testware, la consolidation de l’équipe et l’apprentissage (soulever les probs, pts ameliorations), l’amélioration de la qualité de la base de test et de la coopération entre le développement et le test.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Pourquoi est-il important d’enregistrer les résultats des réunions de rétrospective ?

A

Les résultats des réunions de rétrospective sont enregistrés pour faire partie du rapport de clôture des tests, et sont essentiels pour la mise en œuvre réussie de l’amélioration continue, assurant ainsi le suivi de toutes les améliorations recommandées.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Que sont les niveaux de test ?

A

Les niveaux de test sont des groupes d’activités de test organisées et gérées ensemble, exécutées à différents stades de développement d’un logiciel, depuis les composants individuels jusqu’aux systèmes complets.

24
Q

Comment les niveaux de test sont-ils liés aux autres activités du cycle de développement logiciel ?

A

Dans les modèles séquentiels, les critères de sortie d’un niveau de test font souvent partie des critères d’entrée du niveau suivant. Dans certains modèles itératifs, cela peut ne pas s’appliquer, et les activités de développement peuvent s’étendre sur plusieurs niveaux de test qui peuvent se chevaucher dans le temps.

25
Q

Qu’est-ce qu’un type de test ?

A

Les types de test sont des groupes d’activités de test liées à des caractéristiques-qualité spécifiques et la plupart de ces activités peuvent être réalisées à chaque niveau de test.

26
Q

Quels sont les cinq niveaux de test décrits dans le syllabus ?

A

Les cinq niveaux de test sont : les tests de composants, les tests d’intégration de composants, les tests système, les tests d’intégration du système, et les tests d’acceptation.

27
Q

Quel est l’objectif des tests de composants ?

A

Les tests de composants, ou tests unitaires, se concentrent sur les tests de composants isolés et sont généralement effectués par les développeurs dans leur environnement de test.

28
Q

Que vérifient les tests d’intégration de composants ?

A

Les tests d’intégration de composants vérifient les interfaces et les interactions entre les composants, en utilisant des approches d’intégration ascendante, descendante ou big-bang.

29
Q

Quel est l’objectif des tests système ?

A

Les tests système se concentrent sur le comportement global et les capacités d’un système entier, incluant des tests fonctionnels, des tâches de bout en bout et des tests non fonctionnels, souvent dans un environnement de test représentatif.

30
Q

Que visent à tester les tests d’intégration du système ?

A

Les tests d’intégration du système testent les interfaces entre le système sous test et d’autres systèmes et services externes, nécessitant des environnements de test similaires à l’environnement opérationnel.

31
Q

Quels sont les principaux types de tests d’acceptation ?

A

Ils sont axés sur la validation et la démonstration de l’aptitude au
déploiement, ce qui signifie que le système répond aux besoins métier de l’utilisateur.
Idéalement, les tests d’acceptation devraient être effectués par les utilisateurs prévus.
Les principaux types de tests d’acceptation sont : les tests d’acceptation des utilisateurs (UAT), les tests d’acceptation opérationnelle, les tests d’acceptation contractuels et réglementaires, les tests alpha et les tests bêta.

32
Q

Quels attributs distinguent les niveaux de test ?

A

Les niveaux de test se distinguent par l’objet de test, les objectifs du test, la base de test, les défauts et défaillances, ainsi que l’approche et les responsabilités.

33
Q

Quels sont les types de test abordés dans le syllabus?

A

Test fonctionnel, test non fonctionnel, test de boite blanche, test de boite noire.

34
Q

C quoi le but de test fonctionnel?

A

Le test fonctionnel évalue les fonctions qu’un composant ou un système doit remplir. Les fonctions sont
“ce que” l’objet de test doit faire. L’objectif principal du test fonctionnel est de vérifier la complétude
fonctionnelle, l’exactitude fonctionnelle et l’adéquation fonctionnelle.

35
Q

C quoi le but de test non fonctionnel?

A

Le test non fonctionnel évalue les attributs autres que les caractéristiques fonctionnelles d’un
composant ou d’un système. Le test non fonctionnel est le test de “comment le système se comporte”.
L’objectif principal du test non fonctionnel est de vérifier les caractéristiques-qualité non fonctionnelles du
logiciel.
Les caractéristiques non fonctionnelles d’un logiciel (d’après ISO25010):
- Efficacité de la performance.
- Compatibilité.
- Utilisabilité.
- Fiabilité.
- Sécurité.
- Maintenabilité.
- Portabilité.
Il est parfois approprié de commencer le test non fonctionnel tôt dans le cycle de vie du développement logiciel, par exemple dans le cadre des revues et du test de composants ou du test de systèmes.

36
Q

Qu’est-ce que le test boîte noire et quel est son objectif principal ?

A

Le test boîte noire est basé sur les spécifications et dérive les tests de la documentation externe à l’objet de test. Son objectif principal est de vérifier le comportement du système par rapport à ses spécifications.

37
Q

Qu’est-ce que le test boîte blanche et quel est son objectif principal ?

A

Le test boîte blanche est basé sur la structure et dérive les tests de l’implémentation ou de la structure interne du système. Son objectif principal est de couvrir la structure sous-jacente par les tests jusqu’au niveau acceptable.

38
Q

Les quatre types de tests mentionnés peuvent-ils être appliqués à tous les niveaux de test ?

A

Oui, les quatre types de tests mentionnés peuvent être appliqués à tous les niveaux de test, bien que l’accent soit mis différemment à chaque niveau.

39
Q

Pourquoi la découverte tardive de défauts non fonctionnels peut-elle constituer une menace sérieuse pour un projet ?

A

La découverte tardive de défauts non fonctionnels peut constituer une menace sérieuse pour un projet car elle peut affecter la qualité du produit et entraîner des retards et des coûts supplémentaires pour corriger les problèmes.

40
Q

Qu’est-ce que le test de confirmation ?

A

Le test de confirmation confirme qu’un défaut original a été corrigé avec succès.

41
Q

Quelles sont les méthodes pour effectuer un test de confirmation ?

A

On peut effectuer un test de confirmation en exécutant tous les cas de test qui ont précédemment échoué à cause du défaut, ou en ajoutant de nouveaux tests pour couvrir les modifications nécessaires à la correction du défaut.

42
Q

Qu’est-ce que le test de régression ?

A

Le test de régression confirme qu’aucune conséquence négative n’a été causée par une modification, y compris un correctif qui a déjà fait l’objet d’un test de confirmation.

43
Q

Quels peuvent être les impacts d’une modification sur le système lors d’un test de régression ?

A

Les impacts peuvent affecter le composant modifié, d’autres composants du même système, ou même d’autres systèmes connectés.

44
Q

Qu’est-ce que l’analyse d’impact et pourquoi est-elle importante pour les tests de régression ?

A

L’analyse d’impact montre quelles parties du logiciel pourraient être affectées par une modification, ce qui permet d’optimiser l’étendue du test de régression.

45
Q

Pourquoi les tests de régression sont-ils de bons candidats à l’automatisation ? et à quel moment est-il conseillé de commencer l’automatisation des tests de régression ?

A

Les tests de régression sont exécutés de nombreuses fois et le nombre de cas de test de régression augmente à chaque itération ou release, ce qui les rend bien adaptés à l’automatisation.
Il est conseillé de commencer l’automatisation des tests de régression dès le début du projet.

46
Q

Quelles sont les différentes catégories de maintenance selon ISO/IEC 14764 ?

A

La maintenance peut être corrective, s’adapter aux changements de l’environnement, ou améliorer la performance ou la maintenabilité.

47
Q

Quelle est la bonne pratique pour les tests de régression automatisés dans le cadre de l’intégration continue, comme dans DevOps ?

A

Inclure des tests de régression automatisés dès le début du projet, surtout lorsqu’on utilise l’intégration continue.

48
Q

Les tests de confirmation et/ou de régression sont-ils nécessaires à tous les niveaux de test ?

A

Oui, des tests de confirmation et/ou de régression sont nécessaires à tous les niveaux de test si des défauts sont corrigés et/ou si des modifications sont apportées à ces niveaux de test.

49
Q

Que peut impliquer la maintenance en termes de livraisons/déploiements ?

A

La maintenance peut impliquer des livraisons/déploiements planifiés et des livraisons/déploiements non planifiés (correctifs à chaud).

50
Q

Pourquoi effectuer une analyse d’impact avant une modification ?

A

Une analyse d’impact aide à décider si le changement doit être effectué, en se basant sur les conséquences potentielles dans d’autres domaines du système.

51
Q

Qu’implique le test des changements apportés à un système en production ?

A

Le test des changements comprend l’évaluation du succès de l’implémentation des changements et la vérification des régressions possibles dans les parties du système qui restent inchangées.

52
Q

De quoi dépend généralement le périmètre du test de maintenance ?

A

Le périmètre dépend du degré de risque des changements, de la taille du système de systèmes existant, et de l’ampleur des modifications.

53
Q

Quels sont les éléments déclencheurs de la maintenance et du test de maintenance ?

A

Les éléments déclencheurs incluent les modifications planifiées ou correctives, les mises à niveau ou les migrations de l’environnement opérationnel, et le retrait d’un système.

54
Q

Quels tests peuvent être nécessaires lors des mises à niveau ou des migrations de l’environnement opérationnel ?

A

Des tests associés au nouvel environnement, des tests du logiciel modifié, ou des tests de conversion des données peuvent être nécessaires.

55
Q

Que peut nécessiter le retrait d’un système en fin de vie ?

A

Le retrait peut nécessiter des tests d’archivage des données, ainsi que des tests des procédures de restauration et d’extraction après l’archivage.

56
Q

Pourquoi tester les procédures de restauration et d’extraction après l’archivage ?

A

Pour garantir que certaines données puissent être récupérées pendant la période d’archivage, si nécessaire.