complete non functional testing guide
Un guide complet des tests non fonctionnels: son objectif, ses types, son outil, ses cas de test avec des exemples
Qu'est-ce que les tests non fonctionnels?
Des tests non fonctionnels sont effectués pour vérifier les exigences non fonctionnelles de l'application telles que les performances, l'utilisabilité, etc.
Il vérifie si le comportement du système est conforme aux exigences ou non. Il couvre tous les aspects qui ne sont pas couverts par test fonctionel . Dans nos tests quotidiens, une grande attention est accordée aux tests fonctionnels et aux exigences fonctionnelles.
Les clients sont également intéressés à répondre aux exigences fonctionnelles qui sont directement liées à la fonctionnalité d'une application. Mais dans la phase réelle, c'est-à-dire lorsque vous êtes testé fonctionnellement, le logiciel arrive sur le marché et est utilisé par les vrais utilisateurs finaux, et il y a des chances qu'il soit confronté à des problèmes liés aux performances.
Ces problèmes ne sont pas liés à la fonctionnalité du système, mais ils peuvent affecter l'expérience utilisateur de manière négative. Par conséquent, il est important que le logiciel ou l'application soit également testé pour les exigences non fonctionnelles afin d'éviter une expérience client négative.
Les tests sont généralement classés en deux types:
- Test fonctionel
- Tests non fonctionnels
Ce que vous apprendrez:
- Importance
- But
- Exemple
- Avantages
- Comment capturer les exigences non fonctionnelles?
- Différence entre les exigences fonctionnelles et non fonctionnelles
- S'agit-il d'un test de boîte noire ou de boîte blanche?
- Liste de contrôle des cas de test non fonctionnels
- Document d'approche
- Types de tests non fonctionnels
- Outils de test non fonctionnels
- Conclusion
- lecture recommandée
Importance
Ce test n’a pas fait l’objet d’une attention particulière, car il n’affecte pas la fonctionnalité du système.
Les exigences non fonctionnelles n'ont pas non plus fait l'objet d'une attention appropriée lors des cycles d'essai précédents. Cependant, cela a changé maintenant. Les tests non fonctionnels sont désormais les plus importants car ils prennent en compte tous les problèmes de performance et de sécurité des applications de nos jours.
Ces tests ont un impact plus important sur les applications en ce qui concerne les performances de l'application sous un trafic d'utilisateurs élevé. Ces tests garantissent que votre application est stable et est capable de gérer une charge dans des conditions extrêmes.
Comme son nom l'indique, ce test se concentre sur l'aspect non fonctionnel de l'application. Alors, quels sont les aspects non fonctionnels? Ou devrais-je dire quelles sont les fonctionnalités qui ne sont pas liées à la fonctionnalité de l'application?
Eh bien, voici les réponses à ces questions:
- Comment l'application fonctionne-t-elle dans des circonstances normales?
- Comment se comporte l'application lorsque trop d'utilisateurs se connectent simultanément?
- L'application peut-elle gérer le stress?
- Quelle est la sécurité de l'application?
- L'application peut-elle récupérer après un sinistre?
- L'application peut-elle se comporter de la même manière dans un environnement ou un système d'exploitation différent?
- Dans quelle mesure est-il facile de porter l'application dans un autre système?
- Les documents / manuel d'utilisation fournis avec l'application sont-ils faciles à comprendre?
La liste continue. Mais le point ici est que - ces fonctionnalités ne contribuent-elles pas à la qualité de l'application? La réponse est oui. Ces caractéristiques sont tout aussi importantes.
Imaginez qu'une application répond parfaitement à toutes les exigences de l'utilisateur, mais qu'un utilisateur non autorisé va facilement casser les données saisies par l'utilisateur dans l'application, ou l'application meurt lorsque plus de 5BB d'un fichier sont téléchargés. Alors diriez-vous que l'application est de bonne qualité? Evidemment pas bien !!
But
Le seul but de ce type de test est de s'assurer que les aspects non fonctionnels de l'application sont testés et que l'application fonctionne bien dans son contexte.
Le but est de couvrir le test de toutes les caractéristiques de l'application qui aident à fournir une application qui répond aux attentes de l'entreprise.
Exemple
C'est un type de test important.
Les tests fonctionnels testent la fonctionnalité de l'application et s'assurent qu'elle fonctionne comme prévu, mais les tests non fonctionnels garantissent que l'application fonctionne suffisamment bien pour répondre aux attentes de l'entreprise.
Afin de comprendre son importance, prenons un exemple simple:
Une application est développée et est entièrement testée pour la fonctionnalité, mais les tests non fonctionnels ne sont pas effectués sur la même.
Pendant ce temps, lorsque l'application est mise en ligne, cela peut entraîner des problèmes critiques ou majeurs, tels que lorsque la charge est augmentée sur l'application, elle devient trop lente et prend beaucoup de temps à s'ouvrir.
Le temps de réponse peut augmenter ou lorsque la charge est augmentée dans une certaine mesure, l'application peut se bloquer. Cela montre à quel point il est important de tester les aspects non fonctionnels d’une application.
Avantages
Voici quelques-uns des avantages d'un test non fonctionnel:
- Il couvre les tests qui ne peuvent pas être couverts par les tests fonctionnels.
- Cela garantit que l'application fonctionne efficacement et est suffisamment fiable.
- Il assure la sécurité de l'application.
Comment capturer les exigences non fonctionnelles?
Pendant que nous effectuons des tests, l'accent est principalement mis sur les tests fonctionnels qui testent la fonctionnalité du produit. Mais les tests non fonctionnels sont aussi importants que les tests fonctionnels et leur exigence doit être prise en considération dès la création du produit.
Les exigences non fonctionnelles sont utilisées pour effectuer des tests non fonctionnels. Ces exigences incluent les performances attendues de l'application ou du logiciel testé. Cela comprend essentiellement le temps nécessaire au logiciel pour faire fonctionner un système particulier.
Les exigences non fonctionnelles capturent également le comportement lorsqu'un grand nombre de personnes utilisent le logiciel en même temps. La plupart du temps, on constate que les serveurs sont occupés ou indisponibles en raison d'une charge importante (c'est-à-dire que plus de personnes l'utilisent en même temps). Réserver des billets de train en ligne peut être le meilleur Exemple d'une telle situation.
Par conséquent, documenter correctement l'exigence non fonctionnelle et effectuer les tests correctement garantira une grande satisfaction en termes de convivialité par les clients potentiels.
Bien que ces tests n'aient pas d'impact commercial direct sur la fonctionnalité du système, ils peuvent augmenter l'expérience utilisateur et la convivialité dans une plus grande mesure, ce qui à son tour aura un impact plus important sur la qualité du logiciel.
Exemple:
Prenons le même exemple de page de connexion Facebook. Dans ce cas, la portée des tests non fonctionnels est de noter le temps nécessaire au système pour se connecter à Facebook après avoir entré les informations d'identification valides.
En outre, il peut être testé comme quand (disons 100) les utilisateurs se connectent en même temps, combien de temps faut-il pour se connecter à l'utilisateur sur Facebook.
Cela garantit que le système peut gérer la charge et le trafic, ce qui offre une bonne expérience utilisateur.
En agile, l'exigence non fonctionnelle doit être capturée à l'aide d'entrées.
Une exigence non fonctionnelle doit être saisie comme suit:
- Témoignages d'utilisateurs / techniques
- Dans les critères d'acceptation
- Dans l'artefact
9
# 1) Témoignages d'utilisateurs / techniques
Une exigence non fonctionnelle peut être capturée en utilisant Histoires d'utilisateurs ou des histoires techniques. La capture des exigences non fonctionnelles en tant que user story est identique à celle de la capture de toute autre exigence. La seule différence entre l'utilisateur et une histoire technique est que la user story nécessite une discussion et a une visibilité.
# 2) Critères d'acceptation
Critères d'acceptation est le point qui est défini pour accepter le produit par le client, c'est-à-dire que le produit accepté aux points définis doit être en état de réussite.
Une exigence non fonctionnelle doit être incluse dans les critères d'acceptation, mais parfois il n'est pas possible de tester les exigences non fonctionnelles à chaque histoire, c'est-à-dire à chaque itération. Par conséquent, les exigences doivent être ajoutées ou testées avec l'itération appropriée uniquement.
# 3) Dans les artefacts
Un artefact séparé doit être préparé pour les exigences non fonctionnelles, ce qui, à son tour, aiderait à avoir une meilleure idée de ce qui doit être testé et comment cela peut être fait dans les itérations.
Différence entre les exigences fonctionnelles et non fonctionnelles
Il existe plusieurs différences entre les exigences fonctionnelles et non fonctionnelles et peu d'entre elles sont indiquées ci-dessous:
S.No. | Exigence fonctionnelle | Exigence non fonctionnelle |
---|---|---|
Performance | Testeurs de performance via un outil qui traite l'opération comme une transaction effectuée par un certain nombre d'utilisateurs simultanés pendant que le testeur analyse toute la logistique | Temps de réponse |
1 | L'exigence fonctionnelle est basée sur le client. | L'exigence non fonctionnelle est basée sur les développeurs et les connaissances techniques de l'équipe. |
deux | L'exigence fonctionnelle spécifie la fonctionnalité à prendre en compte, c'est-à-dire ce qui doit être testé. | Les exigences non fonctionnelles spécifient comment il doit être testé. |
3 | Les tests fonctionnels sont effectués avant la mise en ligne de l'application. | Les exigences non fonctionnelles incluent les tests de maintenance, les tests de documentation qui ne sont pas nécessaires pendant l'exécution, mais une application a été mise en ligne. |
4 | Il s'agit uniquement d'une exigence fonctionnelle. | Aussi connu sous le nom d'exigences de qualité. |
5 | Le plan de mise en œuvre des exigences fonctionnelles est défini dans le document de conception du système. | Le plan de mise en œuvre des exigences non fonctionnelles est défini dans l'architecture du système. |
6 | L'exigence fonctionnelle comprend le test de la fonctionnalité technique du système. | Les exigences non fonctionnelles incluent des qualités telles que la sécurité, la convivialité, etc. |
Lectures complémentaires => Différences entre les tests fonctionnels et non fonctionnels
S'agit-il d'un test de boîte noire ou de boîte blanche?
Le test non fonctionnel relève d'un test de boîte noire technique.
Cette technique ne se limite pas à tester uniquement les fonctionnalités mais peut également être utilisée pour tester les exigences non fonctionnelles ainsi que les performances, l'utilisabilité, etc. La technique de test de la boîte noire ne nécessite aucune connaissance du système interne, c'est-à-dire qu'elle ne nécessite pas la connaissance du code pour le testeur.
Liste de contrôle des cas de test non fonctionnels
Une liste de contrôle est utilisée pour s'assurer qu'aucun aspect important n'est laissé sans test.
Une liste de contrôle est généralement utilisée lorsqu'il n'y a pas de temps pour la documentation et que le produit doit être testé ou lorsqu'il y a une contrainte de temps, une liste de contrôle peut être utilisée pour s'assurer que tous les aspects importants ont été couverts.
Voyons unExemplede la liste de contrôle des tests de performance, de sécurité et de documentation.
Liste de contrôle pour les tests de performance
- Le temps de réponse de l'application doit être vérifiée, c'est-à-dire combien de temps faut-il pour charger l'application, toute entrée donnée à l'application fournit la sortie en combien de temps, actualisation du navigateur, etc.
- Débit doit être vérifié pour le nombre de transactions effectuées pendant un test de charge.
- Environnement la configuration doit être la même que l'environnement en direct, sinon les résultats ne seraient pas les mêmes.
- Temps de traitement - Les activités de processus telles que l'importation et l'exportation d'Excel, tous les calculs de l'application doivent être testés.
- Interopérabilité doit être vérifié, c’est-à-dire qu’un logiciel doit pouvoir interagir avec les autres logiciels ou systèmes.
- ETL le temps doit être vérifié, c'est-à-dire le temps nécessaire pour extraire, transformer et charger les données d'une base de données à une autre.
- Augmentation de la charge sur l'application doit être vérifiée.
Liste de contrôle pour les tests de sécurité
- Authentification: Seul un utilisateur authentique doit pouvoir se connecter.
- Autorisé: L'utilisateur ne doit pouvoir se connecter qu'aux modules pour lesquels il est autorisé ou pour lesquels il a été autorisé à accéder.
- Mot de passe: L'exigence de mot de passe doit être vérifiée, c'est-à-dire que le mot de passe doit être conforme à la définition de l'exigence, à savoir la longueur, les caractères spéciaux, les chiffres, etc.
- Temps libre: Si l'application est inactive, elle doit expirer dans un délai spécifié.
- Sauvegarde de données: La sauvegarde des données doit être effectuée à une heure spécifiée et doit être copiée dans un emplacement sécurisé.
- Liens internes à l'application Web ne doit pas être accessible si elle est placée directement dans le navigateur.
- Toutes les communications doivent être cryptées.
Liste de contrôle pour les tests de documentation
- Documentation utilisateur et système.
- Documents à des fins de formation.
Document d'approche
Développer un document d'approche spécifique pour l'étape du test de performance en affinant la stratégie globale de test. Cette approche de test guide dans la planification et l'exécution de toutes les tâches de test de performance.
Questions et réponses d'entretien de serveur SQL pour 5 ans d'expérience
- Portée du test
- Métriques de test
- Outils de test
- Dates clés et livrables
Portée du test
Effectuez des tests de performances sous différents angles, tels que les performances des utilisateurs, les processus métier, la stabilité du système, la consommation de ressources, etc. Les types de tests de performances à exécuter sont décrits dans la section ci-dessus de l'article (comme le test de charge, le test de stress, etc.)
Métriques de test
L'approche Test affine les métriques à mesurer et à signaler pendant les tests, telles que:
- Temps de réponse (en ligne)
- Fenêtre batch (batch)
- Débit ( Par exemple , le nombre de transactions par unité de temps)
- Utilisation ( Par exemple , le pourcentage de ressources utilisées)
Outils de test
Les tests de performance nécessitent principalement l'utilisation d'outils appropriés:
- Outils de génération de charge
- Outils de suivi des performances
- Outils d'analyse des performances
- Outils de profilage d'applications
- Outils de revêtement de base.
Dates clés et livrables
Le document d'approche du test de performance doit décrire ce qui suit:
- Date et heure de chaque exécution du test de performance.
- Types de tests et combinaison de fonctionnalités à inclure dans chaque conduite de test de performance.
- Dates d'achèvement des tests de performance.
Types de tests non fonctionnels
L'image suivante décrit les types de tests non fonctionnels:
Test de performance:
Évalue la performance globale du système .
Les éléments clés sont les suivants:
- Valide que le système respecte le temps de réponse attendu.
- Évalue que les éléments importants de l'application respectent le temps de réponse souhaité.
- Il peut également être effectué dans le cadre des tests d'intégration et des tests système.
Test de charge:
Évalue si les performances du système sont conformes aux attentes dans des conditions normales et attendues.
Les points clés sont:
- Valide que le système fonctionne comme prévu lorsque des utilisateurs simultanés accèdent à l'application et obtiennent le temps de réponse attendu.
- Ce test est répété avec plusieurs utilisateurs pour obtenir le temps de réponse et le débit.
- Au moment du test, la base de données doit être réaliste.
- Le test doit être effectué sur un serveur dédié qui stimule l'environnement réel.
Test de stress:
Évalue si les performances du système sont conformes aux attentes lorsqu'il manque de ressources.
Les points clés sont:
- Test sur mémoire insuffisante ou espace disque faible sur les clients / serveurs qui révèlent les défauts qui ne peuvent pas être trouvés dans des conditions normales.
- Plusieurs utilisateurs effectuent les mêmes transactions sur les mêmes données.
- Plusieurs clients sont connectés aux serveurs avec différentes charges de travail.
- Réduisez le temps de réflexion à «zéro» pour stresser les serveurs au maximum.
Temps de réflexion: Tout comme l'intervalle de temps entre la saisie de votre utilisateur et de votre mot de passe.
Test de volume:
Évalue le comportement du logiciel lorsqu'un grand volume de données est impliqué.
Les points clés sont:
- Lorsque le logiciel est soumis à de grandes quantités de données, vérifie la limite où le logiciel échoue.
- La taille maximale de la base de données est créée et plusieurs clients interrogent la base de données ou créent un rapport plus volumineux.
- Exemple - Si l'application traite la base de données pour créer un rapport, un test de volume consisterait à utiliser un ensemble de résultats volumineux et à vérifier si le rapport est imprimé correctement.
Tests d'utilisation:
Évalue le système pour un usage humain ou vérifie s'il est apte à être utilisé.
Les points clés sont:
- La sortie est-elle correcte et significative et est-elle la même que celle attendue selon l'entreprise?
- Les erreurs sont-elles correctement diagnostiquées?
- L'interface graphique est-elle correcte et conforme à la norme?
- L'application est-elle facile à utiliser?
Test de l'interface utilisateur:
Évalue l'interface graphique.
Les points clés sont:
- L'interface graphique doit fournir de l'aide et des info-bulles pour faciliter son utilisation.
- Cohérent pour son look?
- Les données sont traversées correctement d'une page à l'autre?
- L'interface graphique ne doit pas gêner l'utilisateur ni être difficile à comprendre.
Test de compatibilité:
Évalue que l'application est compatible avec d'autres matériels / logiciels avec une configuration minimale et maximale.
Les points clés sont:
- Testez chaque matériel avec une configuration minimale et maximale.
- Testez avec différents navigateurs.
Les cas de test sont les mêmes que ceux qui ont été exécutés lors des tests fonctionnels. - Au cas où le nombre de matériels et de logiciels serait trop grand, nous pouvons utiliser les techniques OATS pour arriver aux cas de test afin d'avoir une couverture maximale.
Test de récupération:
Évalue que l'application se termine correctement en cas de panne et que les données sont récupérées de manière appropriée après toute panne matérielle et logicielle.
Les tests ne se limitent pas aux points ci-dessous:
- Coupure de courant, pour le client lors des activités CURD.
- Pointeurs et clés de base de données non valides.
- Le processus de base de données est abandonné ou arrêté prématurément.
- Les pointeurs, champs et clés de la base de données sont corrompus manuellement et directement dans la base de données.
- Déconnectez physiquement la communication, éteignez l'alimentation, éteignez les routeurs et les serveurs du réseau.
Test d'instabilité:
Évalue et confirme si le logiciel s'installe et se désinstalle correctement.
applications pour espionner un autre téléphone
Les points clés sont:
- Vérifie que les composants système sont correctement installés sur le matériel désigné.
- Valide que la navigation sur la nouvelle machine met à jour l'installation existante et les anciennes versions.
- Valide qu'avec un espace disque insuffisant, il n'y a pas de comportement inacceptable.
Test de la documentation:
Évalue les documents et autres manuels d'utilisation.
Les points clés comprennent:
- Valide que les documents indiqués sont disponibles dans le produit.
- Valide tous les guides de l'utilisateur, configure les instructions, lis-moi les fichiers, les notes de version et l'aide en ligne.
Test de basculement:
Les tests de basculement sont effectués afin de vérifier qu'en cas de défaillance du système, le système est suffisamment capable de gérer des ressources supplémentaires telles que des serveurs.
Afin d'éviter une telle situation, les tests de sauvegarde jouent un rôle important. Le processus consiste à créer un système de sauvegarde. Si la sauvegarde est disponible, cela aide à récupérer le système.
Test de sécurité:
Test de sécurité est fait pour s'assurer que l'application ne présente aucune faille qui pourrait entraîner une perte de données ou des menaces. C'est l'un des aspects importants des tests non fonctionnels et s'il n'est pas effectué correctement, il peut entraîner des menaces pour la sécurité.
Cela inclut les tests d'authentification, d'autorisation, d'intégrité et de disponibilité.
Test d'évolutivité:
Les tests d'évolutivité sont effectués pour vérifier si l'application est suffisamment capable de gérer l'augmentation du trafic, le nombre de transactions, le volume de données, etc. Le système doit fonctionner comme prévu lorsque le volume de données ou le changement de taille des données est effectué.
Test de conformité:
Des tests de conformité sont effectués pour vérifier si les normes définies sont respectées ou non. Des audits sont effectués pour vérifier la même chose.
Pour Exemple , Des audits sont effectués pour vérifier le processus de création de cas de test / plans de test et de les placer dans l'emplacement partagé avec le nom standard qui est en cours ou non. Au QC, lors de la dénomination des cas de test, le nom du cas de test standard est suivi ou non. La documentation est complète et approuvée ou non.
Ce sont les quelques conseils qui sont couverts lors de l'audit.
Test d'endurance:
Test d'endurance est fait pour vérifier le comportement du système lorsqu'une charge est augmentée dans une certaine mesure pendant une longue période.
Il est également appelé test de trempage et test de capacité. Cela permet de vérifier s'il y a des fuites de mémoire dans le système. Les tests d'endurance sont un sous-ensemble des tests de charge.
Test de localisation:
Test de localisation est fait pour vérifier l'application dans différentes langues, c'est-à-dire différents paramètres régionaux. L'application doit être vérifiée pour une culture ou des paramètres régionaux particuliers. L'objectif principal est de tester le contenu, l'interface graphique de l'application.
Test d'internationalisation:
Test d'internationalisation est également connu sous le nom de test i18n.
I18n représente I – dix-huit lettres- N. Il est fait pour vérifier si l'application fonctionne comme prévu dans tous les paramètres de langue. Il vérifie qu'aucune fonctionnalité ou application elle-même ne s'interrompt, c'est-à-dire que l'application doit être suffisamment capable de gérer tous les paramètres internationaux.
Il vérifie également que l'application est installée sans aucun problème.
Test de fiabilité:
Les tests de fiabilité sont effectués pour vérifier si l'application est fiable et testée pendant une période de temps spécifique dans l'environnement défini. Une application doit donner à chaque fois le même résultat que prévu, alors seulement elle peut être considérée comme fiable.
Test de portabilité:
Les tests de portabilité sont effectués pour vérifier si un logiciel / une application est installé sur un système différent ou sur une plate-forme différente, il devrait pouvoir fonctionner comme prévu, c'est-à-dire qu'aucune fonctionnalité ne devrait être affectée en raison d'un changement dans l'environnement.
Lors du test, il est également nécessaire de tester la modification avec la configuration matérielle telle que l'espace disque dur, le processeur, ainsi qu'avec différents systèmes d'exploitation pour s'assurer que le comportement correct de l'application et les fonctionnalités attendues sont intacts.
Test de base:
Les tests de base sont également appelés tests de référence car il crée une base pour toute nouvelle application à tester.
Par exemple: Lors de la première itération, le temps de réponse d'une application était de 3 secondes. Maintenant, cela a été défini comme une référence pour la prochaine itération et dans la prochaine itération, le temps de réponse passe à 2 secondes. Il s'agit essentiellement d'un document de validation qui sert de base à de futures références.
Test d'efficacité:
Des tests d'efficacité sont effectués pour vérifier si l'application fonctionne efficacement et le nombre de ressources nécessaires, les outils nécessaires, la complexité, les exigences du client, l'environnement requis, le temps, de quel type de projet il s'agit, etc.
Voici quelques-uns des indicateurs qui aideraient à définir l'efficacité avec laquelle une application fonctionnerait si tous les paramètres considérés fonctionnent comme prévu.
Test de reprise après sinistre:
Ce test est effectué pour vérifier le taux de réussite de la récupération d'une application ou d'un système en cas de défaillance critique et si le système est capable de restaurer les données et l'application ou si le système pourrait facilement faire face pour retourner la façon dont il fonctionnait auparavant, c'est-à-dire depuis le front opérationnel.
Test de maintenabilité:
Une fois l'application / le produit mis en ligne, il y a des chances qu'un problème survienne dans l'environnement en direct ou le client peut souhaiter une amélioration pour l'application qui est déjà en ligne.
Dans ce cas, l'équipe de test de maintenance est disponible pour tester les scénarios mentionnés ci-dessus. Une fois l'application mise en ligne, elle a encore besoin d'une maintenance pour laquelle l'équipe de test de maintenance travaille.
Outils de test non fonctionnels
Il existe plusieurs outils disponibles sur le marché pour les tests de performance (charge et contrainte).
Peu d'entre eux sont répertoriés ci-dessous:
- JMeter
- Loadster
- Loadrunner
- Tempête de charge
- Neoload
- Prévoir
- Chargement terminé
- Outil de stress du serveur Web
- WebLoad Professionnel
- Loadtracer
- vPerformer
Les tests non fonctionnels sont-ils toujours effectués sans documentation ni cas de test? Pourquoi?
«On nous apprend toujours à écrire des cas de test fonctionnels. Pourquoi donc? Les «tests non fonctionnels» sont-ils effectués sans documentation (en d’autres termes, sur une base ad hoc) ou s’agit-il d’un processus distinct beaucoup plus difficile à comprendre? Comment les scénarios de test sont-ils rédigés pour les différents types de tests qui ont lieu sur une application? »
C'est l'une des questions les plus originales, les plus distinctives et les plus originales qui m'ont été posées ces derniers temps. Trouvons la réponse.
Comment se fait-il que nous ne puissions jamais voir et pratiquer l'écriture de cas de test non fonctionnels?
Commençons par ce que nous savons et comme toujours un scénario pratique.
Exemple: Voici les étapes à effectuer sur une application Banque en ligne pour effectuer un virement. Utilisons cela comme notre test de référence.
- Connectez-vous au site.
- Choisissez le compte bancaire.
- Choisissez le bénéficiaire (ce bénéficiaire peut appartenir à la même banque ou à une autre - cela dépend de votre choix de données pour exécuter cette étape. Dans tous les cas, choisissez-en un. De plus, nous allons supposer que le bénéficiaire est déjà ajouté.) .
- Saisissez le montant à transférer (valeur positive, dans la limite, format correct, etc.).
- Cliquez sur Transférer et vérifiez si la confirmation est reçue, le solde du compte a été mis à jour et tout ça.
C'est le cas de test fonctionnel, n'est-ce pas?
Sur la même application, sur la même page de transferts, disons que nous effectuons Tests de performances, de sécurité et d'utilisabilité . Ce sont des types non fonctionnels, n'est-ce pas?
Comment écririons-nous les cas de test?
# 1) Cas de test de test d'utilisabilité
Les tests d'utilisabilité sont un genre de tests logiciels qui traite de l'expérience utilisateur. Telles sont quelques-unes des questions auxquelles nous essayons de répondre.
- Dans quelle mesure l'application est-elle facile à utiliser?
- Dans quelle mesure l'expérience de l'utilisation du système est-elle satisfaisante?
- Si ce n'est pas si familier tout de suite, à quel point est-il facile à apprendre?
Plus d'informations à ce sujet ici: Guide de test d'utilisabilité
Comment un utilisateur déterminerait-il les réponses aux questions ci-dessus dans le contexte des tests d'utilisabilité?
L'utilisateur effectuerait exactement les mêmes étapes à effectuer que dans le cas de test fonctionnel. Ai-je raison?
# 2) Cas de test de test de performance
Il existe plusieurs variantes des tests de performances, mais à la base, il est utilisé pour obtenir des statistiques sur le système, son utilisation des ressources, le temps de réponse, la consommation du réseau, etc. à différents points de charge.
Découvrez notre Tutoriels de test de performance pour en savoir plus.
Maintenant, si je devais tester les performances de la transaction de transfert, je demanderais à 10, 20, 30, 100… 1000… etc utilisateurs d'effectuer l'opération de transfert simultanément ou de manière incrémentielle en fonction de ce que je veux cibler et collecter des données.
Quelles étapes chaque utilisateur effectuerait-il pour utiliser le transfert pendant que le test de performance est en cours?
Les mêmes étapes exactes que le test fonctionnel, n'est-ce pas?
# 3) Cas de test de test de sécurité
Les tests de sécurité sont une branche de l'assurance qualité qui aide à rendre les systèmes logiciels à l'épreuve du piratage. Il identifie les vulnérabilités (zones à problèmes potentiels dans le système logiciel), les exploite grâce à la technique de test de pénétration ou de chapeau blanc et lorsque des trous de boucle sont trouvés, ils sont travaillés.
Quand est-ce que je veux vérifier si les transferts sont à l'épreuve du piratage et sont correctement dirigés vers les destinataires prévus et qu'il n'y a pas de points noirs dans l'ensemble du processus? J'effectuerais le transfert pendant que le processus de surveillance des fuites de sécurité se déroule en parallèle.
Par conséquent, en fait, j'effectue exactement les mêmes étapes que je ferais normalement dans le cas d'un cas de test fonctionnel.
Je suppose que nous en avons assez pour établir que les étapes dans toutes les situations sont les mêmes. La méthode et l'intention derrière le processus sont ce qui est différent.
Jetons un coup d'œil comparatif:
Type de test | Qui? | Pourquoi? Intention |
---|---|---|
Test fonctionel | Testeurs QA | Précision |
Efficacité | ||
Applicabilité commerciale | ||
Convivialité | Testeurs QA ou utilisateurs en temps réel | Facilité d'utilisation |
Facilité d'apprentissage | ||
Efficacité | ||
Utilisation du réseau, etc. | ||
Sécurité | Outils d'analyse et autres systèmes de surveillance par des experts en sécurité spécialisés | Hack safe |
Protection de l'identité du bénéficiaire et du payeur, etc. |
Ce qui est intéressant à noter, c'est que peu importe la forme de test que nous voulons faire, toutes les étapes sont les mêmes .
La vraie différence est que:
- Qui effectue ces étapes?
- Quelle est l'intention, ou en d'autres termes qu'est-ce que j'essaie de réaliser via ce test?
- Les outils et techniques utilisés.
Revenant à notre question, pourquoi n'apprenons-nous jamais à écrire des cas de test non fonctionnels avec toutes les étapes détaillées qui s'y rattachent?
C'est parce que ,à la base, les étapes de test pour une variation de types de test sur une certaine fonction sont toutes identiques, fonctionnelles ou non. C'est l'intention qui fait la différence et peut-être la méthode.
Conclusion
Avant d'effectuer des tests non fonctionnels, il est essentiel de planifier correctement la stratégie de test pour garantir des tests appropriés. Il existe différents outils disponibles sur le marché pour effectuer ce type de tests comme Load Runner, RPT, etc.
Ces tests jouent un rôle majeur dans le succès d'une application et pour construire une bonne relation client et ne doivent donc pas être négligés. C'est l'une des parties importantes des tests logiciels et les tests ne peuvent être considérés comme complets sans cela.
Nous pouvons inclure des détails de test non fonctionnels dans le plan de test ou créer une stratégie distincte pour celui-ci. Dans les deux cas, l'objectif est d'avoir une couverture adéquate des aspects non fonctionnels du logiciel.
Nous espérons que ce processus d'approfondissement de ce sujet vous a été aussi amusant qu'il vous a été présenté à tous. Nous aimerions connaître vos commentaires et vos réflexions sur ce sujet.
Comment gérez-vous les tests non fonctionnels dans vos équipes? Et comme toujours, faites-nous savoir si vous êtes d'accord ou pas d'accord ou si vous avez quelque chose à ajouter à ce que nous avons ici.
lecture recommandée
- Test fonctionnel vs test non fonctionnel
- Test alpha et test bêta (un guide complet)
- Guide de test de sécurité des applications Web
- Guide de test fonctionnel complet avec ses types et son exemple
- Build Verification Testing (BVT Testing) Guide complet
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Guide du débutant sur les tests de pénétration des applications Web
- Guide complet de test de charge pour les débutants