|
- Quel est le compromis acceptable entre qualité d’un logiciel, délai de mise en service et coûts : les tests selon les spécificités du projet maîtrise d’ouvrage, sous-traitance, maintenance, rénovation.
- Savoir choisir ses tests en fonction de l’environnement : application Web ou intranet, mainframes, architecture n-tiers, application embarquée ou applications Unix, PC. Savoir prendre en compte les outils de développement : langages classiques, orienté objet, progiciels.
- Connaître et choisir les techniques adaptées aux différentes étapes de tests : les techniques de tests “boîte noire” (tests fonctionnels), la complémentarité des tests “boîte blanche” (tests structurels), les tests de performance et d’utilisabilité, les mesures de couvertures de tests.
- Choisir l’outillage des tests sur un marché foisonnant et au sein d’une offre de plus en plus diversifiée. Où trouver l’information pertinente ? Que peut-on automatiser dans les tests ? Comment en prévoir le retour sur investissement (ROI) ?
- Le test, un processus systématique, sa mise en place sur chaque projet : graduer son effort de test en fonction des coûts et de la fiabilité visée, répondre aux situations d’urgence, les indicateurs fondamentaux du processus de test.
Ce séminaire répond aux attentes des testeurs et des développeurs, mais aussi des maîtres d’ouvrage et des responsables qualité et méthodes désireux de réussir les tests de leurs applications.
|
 |
Tests : les pratiques actuelles |
|
- Tests et niveau de qualité des logiciels
- Les liens entre tests, conformité, fiabilité, utilisabilité et
coût. Les tests peuvent-ils localiser les défauts, erreurs et anomalies
; à quel coût et suivant quelles approches ? La maturité d’un processus
de test. Les alternatives aux tests : démarche formelle, inspections et
contrôles, tests aléatoires. Les conditions de leur mise en œuvre.
Alternatives ou compléments ?
- Les coûts et pratiques constatés
- Quelles sont les statistiques de sources des défauts et comment
relier défauts et efficacité des techniques de contrôle et de tests.
Les difficultés constatées dans les entreprises : place et valeurs des
tests, vaincre les réticences. Les objectifs de qualité abordables et
la notion de niveau de confiance, les apports des approches innovantes,
MSF, Cleanroom Approach et approches Agile (eXtreme Programming).
L’approche Test-Driven Developpement et les frameworks de tests
unitaires.
- Les possibilités des outils de tests
- Les outils de tests aujourd’hui : les classes de
fonctionnalités, les gains constatés. Les principaux fournisseurs. Les
environnements de test intégrés, les principales “suites de tests”.
Comparaison entre outils. Automatiser les tests : les scripts de tests,
l’architecture des tests automatiques, la démarche et les règles du
“test automatique”.
|
 |
Un processus de test systématique
pour les projets |
|
- Le test dans un projet
- Organiser les tests dans son cycle de développement : cycle en V, approche Agile, développement rapide ou incrémental. Le test de maintenance : évolutions et portage. Les tests de non-régression. Les exigences spécifiques des tests en développement orienté objet. La logique des tests pour les applications client-serveur et n-tiers. Faut-il tester les codes générés automatiquement ? Comment aborder les ERP. Les tests unitaires et les tests d’intégration, la simulation de la charge, les mesures, les choix de configurations de plates-formes. L’organisation des séances de validation.
- Démarche de création des jeux d’essai
- La terminologie du test, identification des exigences sur le test et des étapes du test, définition des objectifs de test, conception des cas de tests et la définition des scénarios, construction des jeux d’essai, préparation du passage des essais. Le calcul des résultats attendus. L’enregistrement des tests.
- La plate-forme de tests
- Définir les configurations des plates-formes et les environnements nécessaires. Profiter des outils de virtualisation (VMware, Virtual PC). Préparation des bases de données : base de référence ou chargement de tables. Comment gérer ses plates-formes.
- Passage des tests, debug et mise au point
- Une maîtrise possible de la mise au point ? Objectifs et règles de base. Constat et qualification des anomalies. Les indicateurs d’avancement et de qualité des tests. Savoir arrêter ou poursuivre une séance de test.
- Les tests de non-régression
- Les niveaux de non-régression. L’analyse d’impact des modifications. Détermination de la stratégie de non-régression. L’organisation de la documentation et des tests, la gestion des configurations. Les outils associés.
|
 |
Techniques et outils de tests
fonctionnels |
|
- L’analyse partitionnelle
- La décomposition en classes d’équivalences des données d’entrée. Règles suivant les types de données. Application aux données de sortie. Emploi de l’analyse partitionnelle.
- Le test aux limites
- L’identification des limites selon les types de données. Test aux limites et hors limites (détermination des deltas). Les tests aux limites pour les tests de performances.
- Les graphes de causes à effets
- La technique pour le test des logiques complexes. Définition du graphe. Transformation automatique en table, puis cas de tests. Les formalismes complémentaires : table de décision.
- Les graphes à états finis
- Détermination des états et des transitions entre états. Liste des actions résultant des transitions. Élaboration du graphe d’états. Liste des cas de tests à partir du graphe.
- Construction automatique des tests
- Tests aléatoires et tests statistiques. Les règles des tests aléatoires, la représentativité de l’échantillonnage. Apports et limites. Efficacité comparée aux autres techniques de test.
- Construction basée sur les formalismes de description du logiciel
- Les principes employés. L’emploi des spécifications structurées (type SA), des modèles de données, des modèles objet (l’outil STP/T). Génération automatique à partir de l’architecture de drivers et stubs, les “lits” de test.
- Le test des performances et les tests en charge
- L’analyse de la charge (transactions, postes, messages). La mise en œuvre, le choix des configurations, l’outillage de simulation. Les deux approches du test de performances, déterministes et statistiques. Calculer le niveau de confiance associé, la taille des jeux d’essai, les règles. Le problème de la perturbation par l’instrumentation.
- Les tests de sécurité
- Le stress testing : règles et limites. Sécurité : la définition des niveaux de tests, les vérifications associées. Le test des modes dégradés et les tests de robustesse.
- Les tests d’utilisabilité
- Le rôle des testeurs. Les 7 mesures courantes pour une approche objective de l’utilisabilité d’un logiciel interactif et leur mise en œuvre.
- Les tests des sites Web
- Les objectifs de tests des sites : charges, conformité aux standards, liens pendants, bon fonctionnement, utilisabilité. La vérification des pages HTML. Les outils spécifiques. La mise en place des vérifications et mesures régulières. L’externalisation des tests d’un site, l’offre actuelle.
|
 |
Outils et méthodes
complémentaires |
|
- Mesures de couverture basées sur le code source
- Couverture des instructions, des nœuds, des arcs, des chemins indépendants. Les mesures de couverture d’intégration. Automatisation des mesures de couverture : Logiscope, les outils Mac Cabe, Testbed.
- Tests automatiques par mutation de code
- Détermination des données de test. Génération des mutants. Tentative de destruction des mutants. Mesure de l’efficacité des tests.
- Les lectures de code
- Lectures croisées, inspections et revues. Organisation de l’équipe de lecture, choix du code. Vaincre les difficultés et gérer dans la durée l’efficacité des lectures. Liste des points à regarder. Lectures et tests : dualité et complémentarité.
- Organiser la réception d’une application
- Une démarche pour réceptionner sans tester soi-même, l’acceptation des plans de tests et des scénarios de tests, l’audit des configurations, l’examen des tests, l’appréciation d’un logiciel. Pratiques et normes.
|
 |
Réussir ses tests
sur un projet |
|
- Le choix des outils
- Les produits présentés sur le marché : les sources d’information. Déterminer ses besoins. Les études comparatives existantes, les adresses du Web. Un questionnaire pratique de choix d’outils. L’hétérogénéité de l’offre selon les plates-formes. Un choix d’outillage selon le niveau de maturité du développement. Le coût complet de mise en œuvre des outils et le calcul du retour sur investissement.
- La documentation des tests
- Les plans types de documents, les normes, choisir le niveau de documentation utile. Savoir structurer l’information générée par les tests.
- La direction des tests
- Coordonner tests, changements et évolutions sur le projet. Le suivi des anomalies et des versions : les indicateurs d’orientation et de choix des tests. Les situations d’urgence, analyse des risques, les tableaux de bord de suivi des tests : exemples et interprétations.
- Les équipes et les rôles
- Testeurs et développeurs, faut-il les distinguer ? Les organisations possibles par phases de tests, les retours d’expérience. Organiser et encadrer les tests des utilisateurs. Le métier de testeur, les compétences attendues et l’évolution du métier.
- Le dimensionnement de l’effort de test
- Détermination des coûts acceptables pour vos tests. Détermination du budget “test”. Planning type des tests et ajustement au projet. Répartition de l’effort de test entre les acteurs du projet. Prévoir la non-régression, les mesures de la qualité des tests et du logiciel.
|