Vous êtes sur la page 1sur 26

VISUAL STUDIO – LES TESTS POUR FRAMEWORK .

NET
Par Hassan RAMMACH

2
Plan

• Tests unitaires
• Tests d'intégration
• Tests fonctionnels
• Autres types de tests

3
TESTS UNITAIRES

4
Tests unitaires

• Cinématique
• Définition
• Framework .NET

5
Tests unitaires > Cinématique

• La qualité logicielle est un dénominateur commun à tous les projets


informatiques, quelque soit leur mode d'organisation. Cet objectif se traduit
par l'instauration de différents types de tests.
• Tests unitaires  Tests d'intégration  Tests de bout en bout (l'ordre est important) :

6
Tests unitaires > Définition

• Un test unitaire est un procédé permettant de s'assurer du bon


fonctionnement d'une unité de programme.

• En fonction de certaines données fournies en entrée d’un module de code,


que les données qui en sortent ou les actions qui en découlent sont
conformes aux spécifications du module.

• Il s'agit de vérifier le respect du contrat de service du module.

7
Tests unitaires > Framework .Net

• Tests unitaire en Framework .Net

8
Tests unitaires > Framework .Net

• Assert: Permet de fournir le rapport sur la validité du comportement du


code uniquement suit à un test.
• Méthodes d’extension: AreEqual, AreNotEqual , AreSame, Fail, IsInstanceOfType.

• D’autres classes qui fournissent un certain nombre de méthodes utiles pour


examiner un rapport de test:
• CollectionAssert: Comparer des collections d'objets et pour vérifier l'état d'une ou
plusieurs collections.
• StringAssert: Comparer des chaînes.
• AssertFailedException: L'exception est levée à chaque fois qu'un test échoue.
• AssertInconclusiveException: L'exception est levée à chaque fois qu'un test produit un
résultat Non concluant.

9
Tests unitaires > Framework .Net

• Exécution des tests

10
Tests unitaires > Framework .Net

• Résultats des tests

11
TESTS D'INTÉGRATION

12
Tests d'intégration

• Définition
• Périmètre

13
Tests d'intégration > Définition

• Les tests unitaires ne doivent pas accéder à des fichiers, des bases de
données ou tout autre service externe. Les tests qui communiquent avec
une base de données ne sont pas des tests unitaires, mais plutôt des
tests d’intégration.

• Les tests d’intégration permettent de s'assurer que les sous ensembles de


l'application "communiquent" bien entre eux et respectent les spécifications
d'interface qui ont été définies dans le projet.

• Un test d'intégration vise à s'assurer du bon fonctionnement de la mise en


œuvre conjointe de plusieurs unités de programme, testés unitairement au
préalable.

14
Tests d'intégration > Périmètre

• L'intégration continue fait référence à la notion de test d’intégration.

• Le principe de l'intégration continue consiste à rendre systématique et


plus ou moins automatique l'intégration des différents composants d'un
système dès que ces composants sont modifiés.

• Le but de l'intégration continue est que les effets produits par des
modifications des composants soient rapidement mesurables. Ceci permet
notamment d'éviter les gros bugs difficiles à déceler, et favorise l'agilité
dans les projets.

15
TESTS FONCTIONNELS

16
Tests fonctionnels

• Définition
• Périmètre
• Outils

17
Tests fonctionnels > Définition

• Dans la phase de tests fonctionnels, on va dérouler les processus métier de


bout en bout et s'assurer qu'ils sont conformes aux besoins du Client.

• Cette phase est aussi appelée VABF (Vérification d'aptitude au Bon


Fonctionnement).

• On n’a pas besoin de connaître le code de l'application en détail pour tester


fonctionnellement une application.

• A ne pas confondre avec la phase de recette.

18
Tests fonctionnels > Périmètre

• On peut implémenter les tests fonctionnels à différents moments du projet.

• Avant d'implémenter une nouvelle fonctionnalité (TDD: test-driven development ).

• Juste après avoir implémenté une nouvelle fonctionnalité.

• Suite à une anomalie.

19
Tests fonctionnels > Outils

• Il existe de nombreux outils de test automatisé. Ces outils de test prennent


en charge plusieurs navigateurs et plusieurs systèmes d'exploitation. Ils
permettent aux testeurs d'utiliser le C#, ou d’autres langages
programmation, pour coder des tests automatisés.

• Quelques outils:
• Selenium
• Silk Test
• iMacro

20
AUTRES TYPES DE TESTS

21
Autres types de tests

• La revue de code
• Les tests de charge
• Les tests d'exploitabilité
• Le parallèle run

22
Autres types de tests

• La revue de code (Code Review)


Elle permet une relecture du code de l'application, elle s'appuie sur la
vérification (manuelle ou automatisée) du respect d'un ensemble de règles
de programmation.

• Les tests de charge


Ils sont assimilés aux tests de performance dans la plupart des cas et
permettent de s'assurer que l'application va être capable de tenir la charge
qu'on lui impose conformément à la Qualité de Service exigée par le Client.

23
Autres types de tests

• Les tests d'exploitabilité


Ils permettent de s'assurer que l'application sera exploitable par la
Production informatique conformément aux Normes de Production qu'elle a
édictées.
On va également s'assurer que l'application atteindra le niveau de Qualité
de Service demandé par le Client.

• Le parallèle run
Le but est de comparer le comportement et le résultat de fonctionnement de
la nouvelle version par rapport à l'ancienne pour s'assurer qu'il n'y a pas de
régression.

24
Tests > Exemple d’implémentation

• Mettre en place un Test Unitaire


• Exercice 1: Créer un nouveau projet «UnitTesting ».
• Exercice 2: Créer une classe de Test « MyServiceTest » pour un service et ajouter des
méthode de test pour tester les méthodes service.
• Exercice 3: Créer une classe de Test « MyControllerTest » pour un contrôleur et ajouter
des méthode de test pour tester les méthodes d’actions.

25
TRAVAUX PRATIQUES

26

Vous aimerez peut-être aussi