Tests logiciels exploratoires
James Whittaker est un gestionnaire de développement de partenaire au terril, Microsoft. Il est un ancien ouvrez d'ingénierie à Google qui était responsable des applications de tester Chrome, des cartes, et de Google Web. James est l'un des noms les plus connus en testant le monde plus de et a créé plusieurs best-sellers sur le test de logiciel. Elle héberge également un populaire blog sur MSDN.
Juillet 2012
Cette rubrique est un extrait de livre du test de logiciel exploratoire: Conseils, tours, visites et techniques de guider la conception de test.
S'applique à
Gestion du cycle de vie des applications, Visual Studio, TFS
Objectifs des tests exploratoires
Tests exploratoires – plan que vous testez
Tests exploratoires pour les équipes agiles
Les tests exploratoires peuvent coexister avec le script test planifié
Explorations basées sur du scénario
Visites de tests exploratoires
Dans les tests exploratoires, les testeurs peuvent interagir avec l'application dans qui est ce que façon ils souhaitent et utilisent les informations que l'application la fournit pour réagir, modifiez le cours, et explorent généralement les fonctionnalités de l'application sans recyclage. Il peut sembler ad hoc à certains, mais dans les mains d'un testeur exploratoire qualifié et expérimenté, cette technique peut afficher puissant. Les avocats arguent du fait que les tests exploratoires permettent la pleine puissance de l'esprit humain d'être appliqué à trouver des bogues et vérifier la fonctionnalité sans restrictions préconçues.
L'inconvénient des tests exploratoires est ce risque de testeurs perdant beaucoup de temps errant autour d'une application recherche des éléments de tester et les vous essayez de trouver des bogues. Le manque de préparation, de structure, et d'aide peut entraîner de nombreux moments improductives et pour retester la même fonctionnalité à plusieurs reprises. Il peut facilement voir que le test complètement ad hoc n'est clairement pas la meilleure façon de passer test sur. Les testeurs qui se renseignent sur les entrées, des environnements logiciels, et les autres éléments qui peuvent être variées pendant une série de tests sont mieux fournis pour explorer leur application avec l'objectif et l'intention. Cette connaissance des aidera à tester meilleur et intelligent plus et à optimiser leurs possibilités de découvrir les défauts de conception et réalisation sérieuses.
Objectifs des tests exploratoires
To gain an understanding of how an application works, what its interface looks like, and what functionality it implements: ce but est souvent adopté par les testeurs nouveaux à un projet ou celles qui souhaitent identifier des points d'entrée de test, identifient les problèmes spécifiques de test, et écrivent des plans de test. C'est également le but utilisé par les testeurs expérimentés car ils explorent une application de comprendre la profondeur de ses besoins de test et rechercher la nouvelle fonctionnalité encore inconnue.
To force the software to exhibit its capabilities: l'idée est de rendre le logiciel pour travailler dur et lui provoquer des problèmes complexes qui le mettent à ses pas. Cela peut ou ne peut pas trouver des bogues, mais il fournira certainement preuve que le logiciel remplit la fonction pour laquelle elle a été conçu et qu'il répond à ses exigences.
To find bugs: explorant les bords de l'application et frappant les points faibles potentiels est spécialisée une des tests exploratoires. L'objectif est utile, plutôt que sans fin, l'exploration pour identifier des fonctionnalités non a tenté et historiquement avec des erreurs. Les testeurs exploratoires ne doivent pas seulement trébucher entre les bogues, ils doivent mettre à zéro dans sur eux avec l'objectif et l'intention.
Tests exploratoires – plan que vous testez
Le test de logiciel est compliqué par une surcharge des possibilités de variation des entrées et des chemins de code pour déclarer, les données stockées, et l'environnement opérationnel. En effet, s'il choisit de traiter cette variation avant tout test en écrivant des plans de test ou par une approche exploratoire qui permet l'organisation et le test à entrelacer, il s'agit d'une tâche impossible. Quelle que soit la façon dont vous effectuez finalement le test, il est simplement trop complexe pour le rendre complètement.
Toutefois, les techniques exploratoires ont l'avantage qu'elles encouragent des testeurs à planifier comme ils testent et utiliser les informations recueillies pendant le test pour assigner test réel de la méthode est exécuté. Voici un avantage principal par rapport à plan- premières méthodes. Imaginez qu'en essayant de prévoir le accorder de Super Bowl ou la ligue avant la première saison démarre. Il est difficile de faire ceci avant que vous aperceviez comment les équipes jouent, comment ils gèrent la concurrence, et si les acteurs clé peuvent éviter la blessure. Les informations qui prennent comme une saison dévoile de contient la clé à prédire les résultats avec n'importe quelle quantité de vérification. Il en va de même du test de logiciels, et les tests exploratoires embrassent cela lors de la planification, tester, puis replanifier de petits incréments actuels guidés par une connaissance complète de tous transmis et des informations récentes sur la façon dont le logiciel exécute et des indices qu'il référence au cours de le test.
Tests exploratoires pour les équipes agiles
Les tests exploratoires sont particulièrement adaptés au développement d'application Web moderne à l'aide de méthodes agiles. Les cycles de développement sont short, laissant peu de temps pour l'écriture et la maintenance formels de script. Les fonctionnalités évoluent souvent rapidement, afin de réduire les artefacts liés (comme les cas de test préalablement préparés) est un attribut souhaitable. Si le cas de test a une bonne opportunité de devenir inutile, pourquoi écrivez- la de la première instance ? N'êtes -vous pas configuration vous-même pour passer plus de cas de test de mise à jour de temps que le rendre le test ?
(Pour obtenir des exemples de outils agiles pour des tests exploratoires dans Visual Studio et TFS, consultez Test exploratoire à l'aide de Microsoft Test Manager, Test d'applications Windows Store s'exécutant sur un appareil à l'aide de la fenêtre des tests exploratoires, et le Exécution de tests dans Microsoft Test Manager.)
Les tests exploratoires peuvent coexister avec le script test planifié
Il n'est pas nécessaire d'afficher des tests exploratoires comme alternative stricte au test manuel script-basé. En fait, les deux peuvent coexister assez bien. Avoir les scripts formels peut fournir une structure à l'exploration de frame, et les méthodes exploratoires peuvent ajouter un élément de variation des scripts qui peuvent amplifier son efficacité. La meilleure façon je l'ai trouvé à combiner ces deux techniques est de commencer par les scripts formel et d'utiliser des techniques exploratoires d'injecter la variation dans celles-ci. De cette façon, un script peut effectuer l'interprétation dans plusieurs cas de test exploratoires réels.
Le test script- basé classique implique généralement un point de départ de récits utilisateur ou les scénarios de bout en bout documentés que nous attendons que nos certains utilisateurs exécutent. Ces scénarios peuvent provenir de la recherche d'utilisateur, données des versions antérieures de l'application, etc., et sont utilisés comme scripts pour tester les logiciels. L'élément ajouté des tests exploratoires au test traditionnel de scénario s'étend la portée du script pour injecter la variation, l'examen, les chemins et facultatifs d'utilisateur.
Explorations basées sur du scénario
Exploration Scénario- basée couvrira des cas du test simple de scénario ne duplique pas et plus précisément les vrais utilisateurs, qui vaguent souvent du scénario principal : Une fois que tous, le produit permet plusieurs variations possibles. Nous devrions non seulement compter qu'elles sont utilisées, nous devrions vérifier qu'elles s'exécuteront.
L'idée derrière des tests exploratoires scénario- basés est d'utiliser les scénarios existants de nombreuses comme les véritables explorateurs utilisent une carte pour vous guider dans une zone sauvage ou tout autre courants inconnu. Les scénarios, comme des cartes, sont un repère général sur les éléments à effectuer pendant le test, de qui les sélectionner, et les chemins de code à parcourir, mais ils ne sont pas des absolus. Le mappage peut décrire l'emplacement de votre destination mais offrir plusieurs façons d'y arriver. De même, le testeur exploratoire est offert d'autres itinéraires et même encouragés à prendre en compte une large gamme de chemins d'accès possibles en exécutant un scénario. En fait, c'est l'objectif particulier de cette forme des tests exploratoires : pour tester les fonctionnalités décrites par le cas, ajoutez autant variante possible. Notre « carte » n'est pas prévue pour identifier l'itinéraire la plus courte, il est conçu pour rechercher de nombreux itinéraires. Plus que nous pouvons tester, le meilleur ; cela conduit au plus fiables que le logiciel exécutera le scénario robuste lorsqu'il est mains aux utilisateurs qui peuvent et dévieront de nos attentes.
En général un scénario utile entraîne un ou plusieurs des éléments suivants :
Racontez un récit utilisateur
Décrivez une spécification
Pour comment une fonctionnalité s'exécute
Pour un scénario d'intégration
Décrivez l'installation et l'installation
Décrivez les avertissements et les opérations qui peuvent accéder erronés
Les testeurs exploratoires doivent travailler dur pour les vérifier rassemblent autant de scénarios possible de toutes les catégories. Il est ensuite notre tâche de suivre les scénarios et d'injecter la variation comme nous voyons l'ajustement. Il est ainsi que nous choisissons d'injecter cette variation qui rend cette tâche exploratoire en nature et qui est la rubrique il se tournent à son tour.
(Pour obtenir un exemple d'utilisation de tests exploratoires à l'aide de les outils agiles dans Visual Studio et TFS, consultez Comment : démarrer une session de tests exploratoires dans Microsoft Test Manager.)
Visites de tests exploratoires
Supposons que vous visitez une grande ville comme london, Angleterre, pour la toute première fois. Il s'agit d'un grand, occupé, confusion emplacement pour les nouveaux touristes, avec beaucoup de points sont à afficher et fait. En effet, même le plus riche, la plupart du temps touriste sans contrainte aurait un défi voyant à tout une ville comme Londres doit offrir. Les mêmes peuvent être dits des testeurs bien- avec une tentative d'explorer les logiciels complexe ; tout le placement dans le monde ne garantira pas l'exhaustivité.
Le tourisme bénéficie d'une combinaison de structure et de liberté, et ainsi que des tests exploratoires. Il existe plusieurs métaphores de tourisme qui vous aideront à ajouter la structure à notre exploration et à nous obtenir dans nos applications plus rapides et plus complètement que le style libre seul test. Plusieurs de ces visites insérées dans une plus grande stratégie de test et même peuvent être combinées avec le test scénario- basé traditionnel qui détermine exactement comment la visite est organisée.
Tout révision de la planification de test doit commencer par la décomposition du logiciel en de plus petites parties qui sont plus acceptables. Mais les fonctionnalités de test indépendamment peut exclure rechercher les bogues la surface qui uniquement lorsque les fonctionnalités interagissent les uns avec les autres. Heureusement, la métaphore de touristes insiste sur aucune décomposition. Au lieu de cela, elle suggère la décomposition en fonction de l'intention plutôt que sur une structure inhérente de l'application testée. Comme un touriste qui approche ses congé avec l'intention d'afficher autant que possible dans et bientôt une période que possible, ainsi que le testeur l'organisera également des visites. Un touriste réel sélectionne une combinaison des points de repère pour afficher et des sites à visiter, et un testeur choisit également de combiner et des fonctionnalités de correspondance du logiciel avec l'intention d'effectuer un élément spécifique. Cette intention requiert souvent plusieurs composants de l'application et de fonctions à combiner des méthodes qu'ils ne seraient pas si nous opérions sous un modèle strict de test de fonctionnalité.
La visite de guide
Les modèles pour les touristes identifient les meilleurs hôtels, les meilleures entreprise, et les attractions supérieures, sans passer en trop spécifique ou encombrer un touriste avec un trop grand nombre d'options. L'artefact analogue pour des tests exploratoires est le manuel de l'utilisateur, s'il est imprimé ou implémenté comme une aide en ligne (dans ce cas, j'appelle souvent cela la visite sur F1 pour indiquer le raccourci la plupart des systèmes d'aide). Pour cette visite, nous suivrons des conseils manuelle de l'utilisateur comme le voyageur -vous, en ne déviant jamais de son responsable.
La visite d'argent
Chaque emplacement qui convoite des touristes doit avoir des bonnes raisons pour qu'elles proviennent. Pour Las Vegas, il s'agit casinos et la bande, et pour égypte il s'agit pyramides. Pour les testeurs exploratoires rechercher les fonctionnalités d'argent conduit directement sur des événements de vente. Les variables de ventes passent de nombreux heure donnant des démonstrations des applications et sont une source d'informations fantastique pour la visite monétaires. Pour exécuter la visite, simplement l'exécution via des démonstrations vous-même et rechercher des problèmes. Comme le code du produit est modifié pour les résolutions de bogue et de nouvelles fonctionnalités, il se peut que la démonstration s'arrête et non seulement vous avez trouvé un grand bogue, mais vous avez enregistré votre propre de vente d'un certain assez embarras fiabilité.
La visite d'éléments géographiques
Comme garçon grandissant dans les champs, les prés, et les bois du Kentucky, j'ai appris à utiliser une boussole en examinant mon frère plus âgé. Le processus est simple. Utilisez la boussole pour localiser un point de repère (une arborescence, une roche, une police de falaise, etc.) dans la direction dans laquelle vous souhaitez accéder, procédez de la façon à ce point du repère, puis recherchez le point de repère, et ainsi de suite. Tant que tous les points du repère se trouvant dans la même direction, vous pouvez obtenir s'via une correction de bois denses de Kentucky.
La visite d'éléments géographiques pour les testeurs exploratoires est semblable dans la mesure où il choisirons les points du repère et exécuterons le même houblonnage d'éléments géographiques via le logiciel que nous via une forêt. Choisissez un ensemble de points du repère, décidez de classement pour eux, puis explorez l'application allant du point d'éléments géographiques au point de repère jusqu'à ce que vous ayez suivi de tous dans la liste. Maintenez les points du repère vous avez utilisé et créent un mappage de couverture d'éléments géographiques pour suivre la progression.
La visite intellectuelle
J'étais par le passé en une visite guidée de pied de Londres dans laquelle le guide est un monsieur dans les années ' 50 qui ont réclamé au départ avoir vécu à Londres toute sa vie. Un touriste semblable s'est avéré justement être un chercheur qui était bien informés de l'historique anglais et posait constamment les problèmes difficiles du repère. Il n'a pas voulu dire en une secousse, mais il était curieux, et qui est combiné avec sa connaissance terminée en haut d'être une combinaison dangereuse… au moins le repère. En cas de application aux tests exploratoires, prend de cette visite à l'approche de provoquer des problèmes difficiles de logiciel. Comment faisons-nous utiliser le logiciel et dur que possible ? Les fonctionnalités l'étireront à ses limites ? Qu'entre et les données du feront-elles effectuer un traitement ? Les entrées peuvent tromper ses routines de vérification des erreurs ? Qu'entre et les données internes souligneront-elles sa capacité pour produire une sortie spécifique ?
Fedex voyagent
Fedex est une icône dans le monde de la livraison module. Ils prennent des modules, les déplacent autour de les centres différents serveurs de distribution, et les envoyer à leur destination définitive. Pour cette visite, au lieu des modules mobiles autour de la planète via le système de Fedex, réfléchissez aux données vous vous déplacez dans le logiciel. Pendant cette visite, un testeur doit se concentrer sur ces données. Essayez d'identifier les entrées qui sont enregistrées et « suivez- » les entourant le logiciel. Par exemple, lorsqu'une adresse est introduite dans un site d'achat, où fait-il obtient-il affiché ? Les fonctionnalités du consomment ? S'il est utilisé comme adresse de facturation, vous vérifiez exercice qui le constituent. S'il est utilisé comme adresse d'expédition, assurez-vous que vous utilisez qui comportent des. Si peut être mis à jour, mettez-le à jour la. Obtient-elle jamais imprimée ou vidée ou traitée ? Essayez de trouver chaque fonctionnalité qui touche des données afin que, comme Fedex gère les modules, vous impliquée dans chaque étape du cycle de vie des données.
La visite du garbage collector
Ceux qui recueillent l'opération de trottoir connaissent souvent des résidents et la police de voisinages mieux que même car elles dépassent la street par la street, la logent par la maison, et se familiarisent avec chaque magasin annexe dans la route. Toutefois, étant donné qu'ils sont pressé, ils ne restent pas dans un emplacement très longtemps. Pour les logiciels, il s'agit comme un contrôle sur place méthodique. Nous pouvons décider du contrôle sur place l'interface où nous allons l'écran par l'écran, la boîte de dialogue par la boîte de dialogue (favorisant, comme le garbage collector, l'itinéraire la plus courte), et ne pas arrêter de test en détail, mais contrôler les actions évidentes (peut-être comme la visite de mannequin vedette). Nous pourrions également utiliser cette visite pour passer les fonctionnalités par la fonctionnalité, le module par module, ou tout autre point du repère qui est logique pour notre application spécifique.
La visite de Mauvais-voisinage
Chaque ville intéressant visiter un de incorrect voisinages et zones qu'un touriste est averti pour éviter. Le logiciel a également le mauvais que voisinage- ces sections de code les ont terminé par les bogues. Clairement, nous savons ne pas à l'avance que les fonctionnalités sont susceptibles de représenter de voisinages incorrect. Mais lorsque des bogues sont détectés et stockés, nous pouvons connecter certaines fonctionnalités aux nombre de bogues et pouvons suivre où les bogues se produisent sur notre produit. Étant donné que les bogues ont tendance à collecter, revisiter les sections avec les erreurs du produit est une visite intéressant prendre. En effet, une fois qu'une section avec des erreurs de code est reconnue, il est recommandé de prendre la visite d'un garbage collector via les fonctionnalités avoisinantes pour vérifier que les correctifs n'ont introduit un nouveau bogue.
La visite de musée
Les musées qui affichent des antiquités sont un favori des touristes. Les antiquités dans une base de code méritent le même type d'attention des testeurs. Dans ce cas, les antiquités du logiciel sont code hérité. Les fichiers anciens de code qui entraînent la balise ou qui sont placés dans un environnement ont tendance à être défectueux rubrique. Avec les longs disparu et documentation de premiers développeurs erronées souvent, le code hérité est difficile à modifier, dur pour tester, et élude le réseau de test unitaire des développeurs (qui généralement écriture de ces tests uniquement pour le nouveau code). Pendant cette visite, les testeurs doivent identifier un code plus ancien et les artefacts exécutables et vérifier suscitent une partie équitable d'attention de test.
La visite sordide
Dans l'œil de plusieurs personnes, une bonne visite est une dans laquelle vous visitez les emplacements populaires. L'inverse de ces derniers est un voyage dans lequel vous avez suivi les emplacements que personne d'autre est susceptible d'accéder. En termes de tests exploratoires, ce sont les fonctionnalités moins probables à utiliser et celles qui sont moins les attrayantes aux utilisateurs. Si vos suivi d'organisation impliquent l'utilisation, cette visite guidée vous dirigera pour tester ceux en bas de la liste. Si votre organisation suit la couverture du code, cette visite guidée vous implore pour rechercher un moyen de tester le code à couvrir encore.
La totalité) Nighter visite
Également appelé la visite de matraquage, celui-ci est pour les personnes qui restent tardive et frappent les nights-club. La clé est ici toute la nuit. Les testeurs exploratoires en toute - Nighter tournée conserveront leur exécution d'applications sans le fermer. Ils ouvrir des fichiers et non les ferment. Souvent, ils ne prennent pas la peine même de les inscrire afin d'éviter tout effet de réinitialisation potentiel auquel peut se produire épargniez le temps. Ils se connectent aux ressources distantes et ne déconnectent jamais. Et pendant que toutes ces ressources sont dans l'utilisation constante, elles peuvent également exécuter des tests avec d'autres visites pour continuer l'exécution du logiciel et le transfert de données autour de. S'ils le font assez longtemps, elles peuvent rechercher les bogues que d'autres testeurs il sera ne pas parce que le logiciel est refusé cette réinitialisation propre qui se produit lorsqu'elle est redémarrée.
La visite de mannequin vedette
Pour cette visite, je souhaite vous pour considérer en apparence. Quoi que vous n', n'accédez pas au delà de l'apparence profondément. Cette visite n'est pas à propos de fonction ou substance ; il est la recherche sur et les premières impressions. Pendant la visite de mannequin vedette, le focus n'est pas sur la fonctionnalité ou la véritable interaction. Il est uniquement sur l'interface. Prenez la visite et examinez les éléments d'interface. Semblent-ils bons ? Est -il s'affichent-ils correctement, et la représentation bonne ? Lorsque vous apportez des modifications, l'interface GUI l'actualise-il correctement ? Fait-il faire correctement ou y a -t-il les artefacts laids conservés à l'écran ? Si le logiciel utilise la couleur d'une façon de fournir une signification, puis que cette opération est exécutée régulièrement ? Les panneaux d'interface GUI -ils en interne compatibles avec des boutons et des contrôles où vous vous attendez à ce qu'ils soient ? L'interface viole-elle conventions ou normes ?
La visite de téléphage
Il existe toujours une personne en tournée de groupe qui simplement ne participe pas. Il se tient dans en arrière avec ses bras pliés. Il a été ennuyeux, unenergetic, et effectue une merveille exactement pourquoi il a pris la peine de payer la visite en premier lieu. Visite guidée de pomme de terre d'entraîneur signifie que le moins de travail effectif que possible. Cela signifie accepter les valeurs par défaut (valeurs prepopulated par l'application), en laissant le blanc de champs d'entrée, remplissage dans le moins de données de formulaire que possible, ne jamais cliquant sur une publication, de la pagination dans les écrans sans cliquer sur un bouton ou entrer des données, etc. S'il y a aucun choix pour mettre un moyen de l'application ou une autre, la pomme de terre d'entraîneur prend toujours le chemin d'accès moins résistance.
La visite obsessionnelle
Les testeurs d'OCD écriront la même entrée à plusieurs reprises. Ils exécuteront la même action à plusieurs reprises. Ils répèteront, referont, copieront, colleront, emprunteront, puis effectuent tous qu'encore plus. Essentiellement, le nom du jeu est répétition. Classez un élément sur un site d'achat puis classez- le afin de vérifier si une plusieurs réinitialisation d'achat s'applique. Tapez des données sur un écran, puis retournez immédiatement à l'entrer à nouveau. Ce sont des actions que les développeurs ont souvent pas les cas d'erreur de programmation pour. Elles peuvent assouvir le ravage significatif.
Les développeurs pensent souvent à un utilisateur qui effectue des opérations dans un ordre spécifique et à l'aide de le logiciel avec la fonction. Mais les utilisateurs effectuent des erreurs et doivent revenir en arrière, et ils souvent n'incluent pas le chemin d'accès spécifique le développeur a eu à l'esprit pour eux, et ils utilisent leur. Cela peut provoquer un modèle d'utilisation avec soin étendue par les développeurs pour le blocage par le bord de la route rapidement.
Le test est complexe, mais l'utilisation efficace des techniques exploratoires peut aider docile que la complexité et fournissent la production de logiciels de haute qualité.
Voir aussi
Autres ressources
Comment : démarrer une session de tests exploratoires dans Microsoft Test Manager
Comment : créer un cas de test manuel à partir d'une session de tests exploratoires