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.
C quoi l’utilité d’un modèle de développement logiciel?
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.
Quelle est la participation des testeurs dans les modèles de développement séquentiel aux phases initiales du projet ?
Les testeurs participent généralement à la revue des exigences, à l’analyse de test et à la conception des tests.
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 ?
Parce que le code exécutable n’est généralement créé que dans les phases ultérieures.
Quel avantage offre le développement incrémental et itératif en termes de tests ?
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.
Quelle est l’approche privilégiée en matière de documentation et de tests dans les projets agiles ?
Les projets agiles privilégient une documentation légère et une automatisation poussée des tests.
Quelle est la méthode principalement utilisée pour les tests manuels dans les projets agiles ?
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.
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 ?
- 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.
Quelles sont les similitudes entre TDD, ATDD et BDD en termes de développement logiciel ?
- 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.
Quels sont les principes du développement piloté par les tests (TDD) ? Beck 2003
- 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.
Quels sont les principes du développement piloté par les tests d’acceptation (ATDD) ? Gartner 2011
- 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.
Quels sont les principes du développement piloté par le comportement (BDD) ? Chelimsky 2010
- 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.
Qu’est-ce que DevOps et quels sont ses principaux objectifs ?
- 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
Quels sont les avantages de DevOps du point de vue du test ?
- 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.
Quels sont les risques et les défis associés à DevOps ?
- 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.
Quelles sont les bonnes pratiques pour implémenter un “shift left” (test précoce) dans les tests ?
- 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)
C’est quoi le principe de shift left?
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
Quels sont les avantages et les défis de l’approche shift left ?
** 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.
Quelles sont les retrospectives?
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.
Qu’est-ce qui est discuté lors des réunions de rétrospective à la fin d’un projet ou d’une itération ?
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.
Qui participe généralement aux réunions de rétrospective ? et A quelles questions repondent-ils?
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 ?
Quels sont les avantages typiques des réunions de rétrospective pour les tests ?
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.
Pourquoi est-il important d’enregistrer les résultats des réunions de rétrospective ?
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.