Qu'est-ce que le test non fonctionnel?
sobes.tech IA
Réponse de l'IA
Les tests non fonctionnels sont un type de test logiciel axé sur la vérification de ses exigences non fonctionnelles. Ils évaluent les caractéristiques du système qui ne sont pas directement liées à des fonctions spécifiques, mais plutôt à la manière dont le système fonctionne.
Les principaux objectifs des tests non fonctionnels :
- Garantir que le système répond aux attentes des utilisateurs et des affaires en termes de performance, fiabilité, facilité d'utilisation et autres aspects.
- Identifier les problèmes pouvant affecter la stabilité, la scalabilité et la sécurité du système.
- Confirmer que le système est conforme aux normes et exigences établies.
Types de tests non fonctionnels :
| Type de test | Brève description | Exemples de caractéristiques vérifiées |
|---|---|---|
| Test de performance | Évaluation de la vitesse, de la réactivité, de la stabilité et de la scalabilité du système sous charge. | Temps de réponse, bande passante, charge CPU/mémoire. |
| Test de charge | Vérification du comportement du système sous une charge maximale attendue. | Nombre d'utilisateurs simultanés, transactions par seconde. |
| Test de stress | Vérification du comportement du système en dépassant la charge maximale attendue ou en manquant de ressources. | Point de défaillance du système, comportement sous surcharge. |
| Test de stabilité (Endurance Testing) | Vérification de la capacité du système à supporter un fonctionnement continu prolongé sous charge. | Fuites de mémoire, dégradation des performances avec le temps. |
| Test de sécurité | Vérification de la protection du système contre les menaces externes et internes, accès non autorisés. | Protection contre les injections SQL, attaques XSS, authentification, autorisation. |
| Test d'utilisabilité | Déterminer à quel point il est facile et intuitif pour les utilisateurs d'utiliser le système. | Interface compréhensible, navigation facile, accessibilité. |
| Test de compatibilité | Vérification du fonctionnement du système dans différents environnements (navigateurs, OS, appareils). | Support pour différentes versions de navigateurs, OS. |
| Test de fiabilité | Évaluation de la capacité du système à effectuer ses fonctions sans erreur pendant une période donnée. | Temps moyen entre les défaillances (MTBF), probabilité de défaillance. |
| Test d'accessibilité | Vérification de la facilité d'utilisation du système pour les personnes ayant des handicaps. | Conformité aux normes WCAG. |
| Test de localisation/internationalisation | Vérification de l'adaptation du système à différentes langues et paramètres régionaux. | Chaînes traduites, formats de date/nombre. |
Les tests non fonctionnels sont généralement effectués à des étapes plus précoces du cycle de vie du développement logiciel que les tests fonctionnels, mais leur planification commence par la définition des exigences. Ils peuvent faire partie de processus automatisés, notamment pour les tests de performance et de sécurité.
Outils pour les tests non fonctionnels :
- Performance : JMeter, LoadRunner, Gatling, k6.
- Sécurité : OWASP ZAP, Burp Suite, Acunetix.
- Compatibilité : BrowserStack, Sauce Labs.
- Facilité d'utilisation : UserTesting.com, outils de suivi oculaire.
Un exemple d'automatisation d'une partie des tests non fonctionnels peut être un script pour vérifier le temps de chargement d'une page :
import time
import requests
def measure_page_load_time(url):
"""
Mesure le temps de chargement de l'URL spécifiée.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Lancer une HTTPError pour les mauvaises réponses (4xx ou 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Temps de chargement {url} : {load_time:.2f} secondes")
return load_time
except requests.exceptions.RequestException as e:
print(f"Erreur lors du chargement {url} : {e}")
return None
# Exemple d'utilisation
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Les résultats des tests non fonctionnels sont souvent présentés sous forme de rapports, graphiques et métriques permettant d'évaluer les caractéristiques du système et de prendre des décisions sur les améliorations nécessaires.