M450 V1
Tester des applications
- Type
- EP obligatoire
- Lieu
- École professionnelle
- Année
- 3ème année d'apprentissage
- 450_1_Tester%20des%20applications.pdf
Compétence visée par le module
Établir un concept de test à l’aide d’une base de test et en déduire des cas de test. Implémenter et documenter ces cas de test, définir des mesures correctives et vérifier les interfaces selon les directives de sécurité.
Situation / objet
Application avec peu de fonctionnalités/récits utilisateur pour un petit nombre de cas de test
Objectifs opérationnels et connaissances
450.1 Établir un concept de test basé sur un exemple pratique, exigences incluses (base de test). g3 g6
| Connaissance | Texte |
|---|---|
| 450.1.1 | Connaître les contenus nécessaires d’un concept de test tels que les objectifs de test, les objets à tester, les types de test, l’infrastructure de test, l’organisation de test et le plan de test. |
| 450.1.2 | Connaître les limites du système pour délimiter l’environnement décrit dans le concept de test. |
| 450.1.3 | Connaître des stratégies pour classifier les défauts/bugs. |
450.2 Décrire un environnement de test de manière exhaustive. g3 g6
| Connaissance | Texte |
|---|---|
| 450.2.1 | Connaître les principaux composants d’un environnement de test. |
| 450.2.2 | Connaître la différence et les points communs entre un environnement de test et un environnement productif. |
450.3 Définir les tests et les moyens de test en fonction des divers niveaux/types de test (tests unitaires, tests d’intégration, tests E2E, tests système, tests de charge/performance, tests de sécurité, tests d’acceptation des utilisateurs, tests de conformité). g3 g6
| Connaissance | Texte |
|---|---|
| 450.3.1 | Connaître des exemples pour les différents types de test. |
| 450.3.2 | Connaître l’utilisation des différents types de test. |
| 450.3.3 | Connaître le modèle en V et la pyramide de test lors du testing. |
| 450.3.4 | Connaître différents moyens de test. |
| 450.3.5 | Connaître des possibilités pour gérer les dépendances (p. ex. interface, injection, mock [simulacre], spy [espion], stub [bouchon], dummy [fantôme, bouffon], fake [substitut, simulateur], fixture). |
450.4 Élaborer des propositions pour corriger les défauts/bugs dans les revues de code (code reviews). g3 g6
| Connaissance | Texte |
|---|---|
| 450.4.1 | Connaître des approches de contrôle statique de code et d’exigences. |
| 450.4.2 | Connaître des principes de clean code (p. ex. DRY, KISS, YAGNI, dénomination, modularisation, SRP) pour écrire du code testable et éviter beaucoup de tests de code (p. ex. effectuer des tests sur les récits utilisateurs/comportement plutôt que sur les détails d’implémentation). |
| 450.4.3 | Connaître des possibilités d’amélioration du code pouvant être proposées et mises en œuvre dans une revue de code. |
| 450.4.4 | Connaître la différence entre testing et assurance qualité. |
450.5 Décrire en fonction des exigences des cas de test reproductibles, y compris les résultats escomptés. g3 g6
| Connaissance | Texte |
|---|---|
| 450.5.1 | Connaître la structure d’un cas de test (p. ex. précondition, données d’entrée, résultat, postcondition, positif et négatif/erreur de test). |
| 450.5.2 | Connaître des critères de reproductibilité d’un test (retesting, régression, données de test, utilisateur de test/autorisations). |
| 450.5.3 | Connaître la différence entre tests manuels et tests automatisés. |
450.6 Implémenter et exécuter des cas de test automatisés et en documenter les résultats de manière compréhensible. g3 g6
| Connaissance | Texte |
|---|---|
| 450.6.1 | Connaître des frameworks de test pour définir des tests automatisés (étapes given/arrange, when/act, then/assert) et les exécuter. |
| 450.6.2 | Connaître des méthodes pour documenter les résultats de test de manière compréhensible (p. ex. traçabilité, outils). |
| 450.6.3 | Connaître les principaux contenus d’un protocole de test: testeur, objet du test, date du test, environnement de test (p. ex. navigateur), résultat du test. |
450.7 Définir sur la base des écarts constatés/donnés des mesures correctives et les appliquer (p. ex. dans le cadre du développement piloté par les tests (Test Driven Development [TDD]). g3 g6
| Connaissance | Texte |
|---|---|
| 450.7.1 | Connaître le débogage et son utilisation. |
| 450.7.2 | Connaître suffisamment bien l’approche TDD pour l’appliquer à un exemple simple. |
450.8 Tester des interfaces conformément au concept de sécurité. g3 g6
| Connaissance | Texte |
|---|---|
| 450.8.1 | Connaître des méthodes simples pour tester des interfaces. |
Matrice de compétences
| Bande | Compétence | Débutant | Intermédiaire | Avancé | Objectifs |
|---|---|---|---|---|---|
| A1 | Créer un concept de test | Je peux identifier et expliquer les composants d'un environnement de test (par exemple, environnement de test et de développement, exigences matérielles et logicielles, sources de données, outils de test) | Je peux expliquer les différences et les similitudes entre différents environnements et justifier leur adéquation à certaines activités de tests (ex. DEV, TEST, INT/STAGE, PROD) | Je peux dériver et définir les exigences d'un environnement de test et productif en fonction des exigences du projet (par exemple, configuration, surveillance, dépannage) |
450.2
|
| A2 | Créer un concept de test | Je peux enregistrer les exigences d'un logiciel et lister les étapes possibles d'un concept de test | Je peux distinguer différents types de tests et expliquer lesquels sont adaptés aux besoins du projet | Je peux élaborer un concept de test dans lequel les types de tests les plus pertinents pour le projet sont sélectionnés avec justification |
450.1
|
| B1 | Définir des tests | Sur la base de la stratégie du concept de test, je peux nommer et expliquer les méthodes et outils de test appropriés. | Je peux formuler des cas de test pour tester des fonctions ou des aspects individuels du logiciel | Je peux définir des scénarios de test qui spécifient comment le système doit répondre dans un ordre ou une combinaison spécifique de fonctions et de processus. |
450.3
450.6
450.5
|
| C1 | Automatiser les tests | Je peux énumérer les critères de choix des données de test et des objets fictifs et expliquer le terme couverture de test | Je peux programmer des cas de tests qui couvrent les cas positifs et négatifs, les limites et les cas particuliers | Je peux structurer des données de test, créer des objets fictifs et des méthodes d'assistance et utiliser les fonctions du framework de test de manière ciblée. |
450.6
450.5
|
| C2 | Automatiser les tests | Je peux expliquer la différence entre les tests unitaires et les tests d'intégration et faire la distinction entre les tests manuels et automatisés. | Je peux appliquer des tests unitaires et des tests d'intégration dans le cadre du développement piloté par les tests (TDD) (par exemple avec un framework de tests) | Je peux configurer un pipeline CI/CD pour que les tests unitaires et d'intégration soient effectués automatiquement et que les résultats contrôlent le processus de déploiement |
450.7
450.5
|
| C3 | Automatiser les tests | Je peux faire des tests de base des interfaces | Je peux faire des tests plus approfondis des interfaces avec différents scénarios | Je peux planifier et réaliser des tests complexes d'interfaces et documenter les résultats |
450.5
450.8
|
| D1 | Effectuer un examen | Je peux expliquer les principes d'un code propre et les démontrer à l'aide d'exemples de code (par exemple, principe de responsabilité unique, DRY) | Je peux participer à une revue de code en tant que réviseur et enregistrer les défauts | Je peux suggérer des améliorations et des optimisations en fonction des lacunes mises en évidence dans l'évaluation. |
450.4
|
| D2 | Effectuer un examen | Je peux interpréter les résultats des tests de base | Je peux voir des liens entre les résultats des tests | Je peux tirer des conclusions fondées à partir des résultats des tests et formuler des recommandations d'action. |
450.4
|
Modules liés par compétences PEC
| Module | Titre | PEC communes |
|---|---|---|
| M183 | Implémenter la sécurité d'une application | |
| M295 | Réaliser le back-end pour des applications | |
| M114 | Mettre en œuvre des systèmes de codification, de compression et d’encryptage | |
| M223 | Réaliser des applications multi-utilisateurs orientées objets | |
| M321 | Programmer des systèmes distribués | |
| M324 | Prendre en charge des processus DevOps avec des outils logiciels | |
| M346 | Concevoir et réaliser des solutions cloud | |
| M426 | Développer un logiciel avec des méthodes agiles |