J'oublierai de discuter ici des techniques de conception de tests bien connues et largement utilisées telles que les classes d'équivalence, les tests de valeurs limites et les tests par paires, je discuterai d'autres techniques moins courantes. Vous pouvez également lire mon article sur les problèmes liés aux techniques de conception de tests combinatoires .
Les tables de décision sont un excellent outil pour documenter les exigences et décrire les fonctionnalités d’une application. Ces tableaux sont très pratiques pour décrire la logique métier de l’application et, en plus de cela, ils peuvent servir de base solide pour créer des cas de test. Si l'application testée ne dispose pas d'une documentation appropriée, c'est une bonne raison d'utiliser des tables de décision. La présentation des exigences sous une forme compacte et simple facilite la création de cas de test.
Approche:
Les tables de décision décrivent la logique de l'application en fonction des entités (propriétés/conditions) de l'état du système. Chaque table de décision ne doit décrire qu'un seul état du système.
| règle 1 | règle 2 | … | règle SUBST |
---|---|---|---|---|
Entités | | | | |
Propriété 1 | | | | |
… | | | | |
Propriété M | | | | |
Actions | | | | |
Action 1 | | | | |
… | | | | |
Action P | | | | |
L'entité (Propriété) de 1 à M représente diverses propriétés du système ; elles sont présentées dans le tableau comme données d'entrée pouvant être saisies dans le système. Les actions de 1 à P sont des actions qui peuvent se produire avec la combinaison d'entités spécifiée. En fonction de la combinaison de toutes les données d'entrée des entités, les actions prennent les valeurs nécessaires. Chaque règle définit un ensemble unique de données d'entrée pour toutes les propriétés qui conduisent à l'exécution d'actions spécifiques.
Après avoir composé le tableau de décision, il est généralement possible de le simplifier, par exemple en supprimant tout ou partie des scénarios impossibles. Ensuite, le tableau peut être transformé en cas de tests.
Les tests de transition d'état, comme les tests de table de décision, sont un outil précieux pour documenter les exigences et décrire la structure et la conception d'un système. Contrairement aux tests des tables de décision, qui décrivent un état spécifique du système, les tests de transition d'état décrivent comment ces états du système peuvent changer. Les diagrammes définissent tous les événements qui se produisent pendant le fonctionnement de l'application et la manière dont l'application répond à ces événements.
Approche:
Il existe deux types de représentations visuelles de cette technique :
A titre d'exemple, considérons la réservation de billets d'avion. Son fonctionnement est à peu près le suivant : initialement, les clients fournissent à la compagnie aérienne des informations pour la réservation : lieu de départ, destination, date et heure de départ. Un employé de la compagnie aérienne sert d'interface entre le client et le système de réservation de billets, utilisant les informations fournies par le client pour créer une réservation. Après cela, la réservation du client est à l'état « Effectuée ». De plus, après avoir créé la réservation, le système démarre un minuteur. Lorsque le délai expire et que le billet réservé n'a pas été payé, le système annule la réservation de ce billet.
Le cercle représente l’état du système de réservation de billets d’avion, l’état « Made ». La flèche indique une transition vers l'état "Made". La description sous la flèche ("get_info") est un événement provenant de l'extérieur du système. La commande dans la description sous la flèche (après "/") signifie que le système a effectué une action en réponse à l'événement - dans ce cas, en déclenchant une minuterie. Le cercle noir indique le point de départ/d’entrée du diagramme.
Si le délai n'expire pas et que nous avons payé le billet réservé, le système passe à l'état « Payé ». Ceci est représenté par la flèche intitulée "payMoney" et la transition de l'état "Made" à l'état "Paid".
Les tables de transition d'état sont des tables composées de quatre colonnes : État actuel, Événement, Action et État suivant.
L’avantage des tables de transition d’état est qu’elles définissent tous les scénarios de transition d’état possibles, pas seulement les bons. Par conséquent, les tables d’état-transition conduisent souvent à la découverte de combinaisons état-transition non définies et non documentées, qu’il est préférable d’identifier avant d’écrire le code.
Combien de combinaisons existe-t-il pour la paire de valeurs « 1 » et « 2 » ? {1,1}, {1,2}, {2,1} et {2,2}. Un tableau orthogonal est un tableau bidimensionnel avec une propriété spéciale : dans deux colonnes quelconques du tableau, toutes les combinaisons de valeurs dans ces colonnes sont présentes. Autrement dit, si vous prenez deux colonnes du tableau orthogonal, où les valeurs ne peuvent être que "1" ou "2", vous trouverez les lignes suivantes pour ces colonnes - {1,1}, {1,2}, { 2,1} et {2,2}.
A titre d'exemple, considérons un système avec trois paramètres d'entrée, dont chacun est binaire (c'est-à-dire prend la valeur « 1 » ou « 2 »).
Lignes | variable 1 | variable 2 | variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 |
3 | 1 | 2 | 1 |
4 | 1 | 1 | 2 |
5 | 2 | 2 | 1 |
6 | 1 | 2 | 2 |
7 | 2 | 1 | 2 |
8 | 2 | 2 | 2 |
Le tableau orthogonal est représenté par - L_4(2^3), où L_4 indique que le tableau orthogonal comporte quatre lignes et (2^3) indique que le tableau comporte trois colonnes, avec des valeurs qui peuvent être "1" ou "2". ".
Lignes | variable 1 | variable 2 | variable 3 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
L_4, où 4 est le nombre de lignes
2^3, où 2 est la valeur maximale (== 2, 3,…, N) et 3 est le nombre de colonnes
Tableau orthogonal - est un tableau bidimensionnel avec la propriété suivante : choisissez deux colonnes du tableau et vous trouverez toutes les combinaisons de valeurs dans ces colonnes.
Utilisation de tableaux orthogonaux :
L'essence de l'algorithme AllPairs est qu'il n'est pas nécessaire de tester toutes les combinaisons de valeurs pour toutes les variables. Au lieu de cela, il se concentre sur le test de toutes les combinaisons de valeurs pour chaque paire de variables.
En tant que professionnel de l’assurance qualité, il est important de comprendre ces nuances. Bien que théorique dans certains cas, la compréhension de la complexité des techniques de conception de tests combinatoires permet aux professionnels de l'assurance qualité de tester efficacement la logique métier complexe des applications et de fournir des logiciels de haute qualité à leurs utilisateurs.