Notes

<aside> 📘 Cas de test = ensemble des entrées et oracle de test (résultat attendu)

</aside>

<aside> ⚠️ La première erreur trouvée est celle que l’on cherche, on ne cherche pas à trouver une succession d’erreur

</aside>

Il vaut mieux faire des tests exclusifs (pour une condition) que des tests sur plusieurs conditions :

Exemple :

if (date.charAt(2)!='/' || date.charAt(5)!='/')
      return "format incorrect, le séparateur doit être /";

Il vaut mieux faire un test pour le caractère de gauche et un pour le caractère de droite dans ce cas là. Par ailleurs, il n’est pas nécessaire de faire un test incluant les deux dans ce cas.

<aside> ⚠️ Java évalue les conditions de manières paresseuses de gauche à droite. Dés que l’expression d’un if est déterminée (vrai ou fausse), il ne teste pas les autres.

</aside>

Test Boite Noire

<aside> 💡 Ce test “boite noire” se base sur la description du programme pour produire un jeu de tests.

</aside>

Vous devez proposer des cas de test pour un programme dont la description est la suivante :

Le programme considéré est un programme de reconnaissance de dates. Le programme admet en entrée une chaine de caractères dont le format attendu est "jj/mm/aaaa" dans laquelle jj mm aaaa sont des caractères numériques correspondant respectivement aux jour, mois et année de la date. Le programme analyse la chaine de caractère et produit :

Format attendu : “jj/mm/aaaa”

Tests

Cas de test : "31/12/1995"

Résultat attendu : “31 décembre 1995”

Cas de test : "02/01/1995"

Résultat attendu : “02 janvier 1995”

Cas de test : “29/02/2024”

Résultat attendu : “29 février 2024”

Cas de test : "xx/02/2024"

**Résultat attendu : “**Erreur : problème de syntaxe dans le jour.”

Cas de test : "31/xx/2024"

**Résultat attendu : “**Erreur : problème de syntaxe dans le mois.”

Cas de test : "31/12/xxx2"

**Résultat attendu : “**Erreur : problème de syntaxe dans l'année.”

Cas de test : "31/xx/xxx2"

**Résultat attendu : “**Erreur : problème de syntaxe dans le mois.”