8
votes

Comment interpréter 'Testez tous les scénarios que vous pouvez penser de'

J'ai récemment été chargé de,

"Testez tous les scénarios que vous pouvez penser et essayer de casser le composant"

Qu'est-ce qui pourrait être raisonnable dans «tout» lorsque l'application est un site Web?

Remarque: ce site particulier est ASP.NET avec MS-SQL, cependant, j'aimerais savoir ce qui serait couvert en général aussi. Merci à tous pour les grandes réponses!


2 commentaires

Alors, ils veulent que vous passionniez les prochaines années à tester un composant?


Je testais un site Web bancaire une fois "retiré" - 100 $ de mon compte, déposi-t-il ainsi


15 Réponses :


22
votes
  • chaque navigateur dans chaque langue
  • chaque système d'exploitation dans chaque langue
  • une variété de résolutions d'écran
  • JavaScript sur / off
  • images sur / off
  • CSS ON / OFF
  • Cookies activés / désactivés
  • Messing sur les URL
  • Toutes sortes de variations d'entrée, en particulier des tests pour les attaques XSS, les caractères non-ASCII, l'entrée non valide
  • Accessibilité du clavier
  • Problèmes liés au serveur - par ex. L'application fonctionne-t-elle bien après un redémarrage logiciel / matériel?
  • Ouverture du site dans plusieurs onglets / fenêtre est un bon moyen de tester tout problème étrange de session

3 commentaires

Merci. Une liste étendue (et épuisante!), Liste.


Performance / chargement / test de stress / capacité également? Sensible?


N'oubliez pas: Bouton de retour Navigation, saut aléatoire autour de l'application, test d'injection SQL, des données légèrement "impaires" (comme des noms avec des apostrophes - O'Reilly, par exemple), des tests de script de site croisé (oh vous avez mentionné XSS), Des tests lourds, des tests autour de divers scénarios impairs de manière prévisible (comme des tests à minuit, s'il y a des calculs de date) ... Un meilleur moyen de regarder les tests est d'essayer de vous demander où les pièces et les cas d'angle de frêle sont. Énumérez ceux-ci et testez-les pour eux.



4
votes

Une définition: de telle sorte que chaque branche de code est testée. [Couverture à 100%] Bien sûr, cela n'a signification que pour les sites Web non statiques.


0 commentaires

3
votes

Je commencerais par un test de fumée - un test large qui vérifie les fonctions les plus élémentaires. Ensuite, énumérez les caractéristiques les plus importantes par ordre d'importance et créez des tests pour ceux de cet ordre. Si le site est une taille du tout et mis à jour régulièrement, vous voudrez automatiser ces tests en utilisant quelque chose comme sélénium.


0 commentaires

0
votes

En plus de la liste de Bobby Jack, je vous suggère de protéger votre site Web de la plupart des scénarios d'utilisateur stupide et de hacker-utilisateur - cela signifierait, entre autres choses, protégeant correctement vos URL et votre query.


0 commentaires

3
votes

Certaines de cela dépendent du contexte. Voici quelques-uns des moins évidents:

Quel est le "flux" du site? Y a-t-il une commande qu'un utilisateur doit accéder aux choses?

  • essayez de sortir de l'ordre
  • Essayez de sauter des marches
  • quitter et revenir

    Y a-t-il des formes impliquées?

    • Essayez XSS
    • Essayez l'injection SQL

      sont des cookies impliqués?


2 commentaires

WWW Présence / Absence est un classique que j'ai oublié!


Merci pour l'élément www en particulier! (Je comprends une présence / absence SSL aussi)



3
votes

N'oubliez pas les tests "Bonehead".

Ouvrez une page, cliquez sur le bouton Soumettre. La forme a-t-elle manipulé correctement rien d'être soumis?

Mettez le curseur dans un champ de zone de texte. Pound sur les clés Quelques-clés (chat soufflé sur mon clavier, déversement de bouffée de café en désactivation). La validation d'entrée a-t-elle fonctionné avec des données "non standard"?

soumettre un formulaire / demande. Appuyez sur le bouton arrière. Le formulaire se soumet-il de se soumettre à nouveau? Devrait-ce être? Est-ce qu'il affiche les données appropriées lorsqu'elles reviennent?

Vous seriez surpris de combien de fois j'ai été brûlé dans le passé par les situations "Bonehead".


0 commentaires

1
votes

Pour les objectifs de l'ACY - Allez avec la réponse de Bobby Jack

  • Résolutions d'écran variées

2 commentaires

J'ajouterai à la liste (je me suis inquiété, j'étais un peu trop affichée ciblé et je voulais ajouter plus d'articles relatifs à la fonctionnalité, mais je pourrais aussi bien aller pour la complétude :)


Avec le développement Web, je pense qu'il est bon d'être un "bit trop d'affichage ciblé"



0
votes

Il y a tellement de types de test pouvant être effectués donnés à une pièce de logiciels que la liste est infinie et couverte par plusieurs types différents, il n'y a pas de réponse unique qui suffit.

Test fonctionnel, Tests d'intégration, Test de performance, tests de pénétration, Tests de régression, Test de compatibilité des navigateurs, Test de stress - Liste se passe.

Et c'est avant que vous ne soyez pas en panne dans chacun et commencez à parler des détails comme des attaques CSS / XSS, etc.


0 commentaires

0
votes

Pour les sites Web, la plupart des pauses communes que vous penseriez au cours du développement Certains des gros sont: Prévenir l'injection MySQL empêcher l'accès non autorisé (non membre entrer dans une section membre) Si à tout moment vous avez une soumission de formulaire, considérez ce qui se passerait si l'utilisateur a modifié l'obtention ou même les données de poste

Ce sont tout ce que je peux penser à ce moment-là, tous vous ne voudriez pas vraiment "essayer de casser" le site, vous venez de jeter des captures dans votre code.


0 commentaires

5
votes
  • Essayez de penser aux cas d'angle et n'oubliez pas l'affaire commune.
  • Test de stress.
  • Cliquez sur chaque bouton et tordez chaque bouton de l'interface utilisateur, assurez-vous que les commentaires sont raisonnables et appropriés.
  • Essayez de regarder l'interface utilisateur de chaque perspective des utilisateurs potentiels, y a-t-il des parties qui sont déroutantes, sujettes à une interprétation erronée ou même pas de sens.
  • Jetez un bon coup d'œil aux métaphores utilisées, sont-elles appropriées et utilisées de manière cohérente.
  • Essayez Gibberish comme entrée.
  • Essayez de saisir le code, par exemple. JavaScript, assurez-vous qu'il est bien protégé contre les attaques de piratage.

    Et bien sûr, les bases (copiées de Bobby Jack et DR, crédit de crédits dus):

    • chaque navigateur
    • chaque système d'exploitation
    • JavaScript marche / arrêt
    • images sur / off
    • CSS ON / OFF
    • Vary Ecran Résolutions
    • Cookies activés

2 commentaires

Avec des tests de stress, incluez-vous des tests de charge / de performance?


s / gibberish / personnages en dehors de latin1, tels que cyrillique et chinois /



2
votes

En plus de la liste de Bobby Jack, et Nomen, et à peu près tout le monde ... Je ne vois pas cela mentionné spécifiquement; excuses si c'est. Vous n'avez pas mentionné quel type de site cela est, mais en fonction du domaine problématique, des données spécifiquement malformées peuvent causer des maux de tête. Par exemple: Dans un site de commerce électronique, que si quelqu'un essaie de commander des quantités négatives? Beaucoup de choses peuvent être brisées par "à l'envers" (faute d'un meilleur mot).


1 commentaires

En effet, nous avons probablement tous vu certaines personnes / utilisateurs de faire des choses très inattendues ... il est donc probablement préférable de toujours m'attendre à vous attendre à l'inattendue en matière d'intrants.



1
votes
  • Oubliez ce que vous savez sur le système, essayez de le regarder comme si c'était la première fois.
  • question de tout.
  • Essayez différents navigateurs, périphériques, résolutions.
  • Essayez d'imprimer sans imprimante installée.
  • Essayez d'utiliser le site Web sans toucher la souris.
  • Essayez d'utiliser le site Web sans toucher le clavier.
  • Obtenez des captures d'écran de l'interface graphique et tournez à l'échelle du gris. Pouvez-vous toujours lire le texte?

0 commentaires

2
votes

N'oubliez pas d'outils de validation. Le consortium World Wide Web, l'organe des normes du Web, offre une pléthore d'outils, de même que d'autres bonnes organisations. Voici quelques bons outils en ligne à:

  • Valider le HTML (par exemple, le Validator HTML W3C ).
  • Valider le CSS (par exemple, le Validator W3C CSS .
  • Vérifiez les liens (par exemple, Vérificateur de liaison W3C ).
  • Vérifier l'accessibilité (par exemple Wave ).
  • Vérification de la page de chargement de la page de contrôle (par exemple, Vitesse de la page de Google ).
  • Vérifiez comment les pages ont l'air imprimée (ceci est rarement vérifié, mais vous pouvez parfois trouver des artefacts qui nuisent à un look professionnel).
  • Vérification de tous les navigateurs a été mentionné auparavant, mais ce qui n'était pas mentionné, c'est qu'il existe des outils disponibles pour vous offrir rapidement de nombreuses vues de navigateur pour apporter l'impraticable dans le domaine de la pratique; Considérez ces Outils de test du navigateur .
  • vérifier la convivialité; Un peu un objectif amorphe, il est souvent au-delà des devoirs ou du budget d'un testeur technique. J'ai récemment rencontré UserSting.com qui offre des commentaires réels de l'utilisateur à moindre coût et rapidement.
  • correction de correction! Les fautes de frappe sont le moyen le plus rapide de dire que votre site Web est idiot.

    Enfin, voici une personne d'une personne sur un Liste de contrôle Et voici un site avec la revendication grandiose d'un VERIFICHER .


0 commentaires

0
votes

En réalité, il vaut mieux commencer par des cas très courants. Obtenez un bon ensemble de cas d'utilisation typiques et assurez-vous que ceux-ci sont tous testés à fond. Ensuite, commencez à ramener dans des cas légèrement moins courants.

Test est toujours une situation combinatoire, vous ne pouvez donc pas tester tous les scénarios. Considérez 10 Navigateurs x 10 types d'utilisateurs x 10 Méthodes x 10 OS X 10 formulaires = 100 000 scénarios de test.

Il y a probablement des quadrillions de scénarios pour toute application raisonnablement dimensionnée.

Ainsi, vous devez commencer par les scénarios les plus courants, puis vous y travailler de là. Vous devez également penser à l'orthogonalité des tests. Brute Force "Test Tous les scénarios" ne fonctionne pas.


0 commentaires

0
votes

Il serait peu pratique de "tester pour tous les scénarios que vous pouvez penser". Pourquoi cela est-il ainsi? En utilisant seulement 14 des suggestions ici, surtout de la réponse excellente de Bobby Jack, vous serez ensuite à 2 654,208 tests possibles. De manière réaliste, vous ne voudriez pas ou ne pouvais pas tester pour chacun de ceux-là. Alors, que devriez-vous faire?

C'est un excellent exemple de l'emplacement des paires (ou d'autres méthodes de test de combinaison plus avancées) seraient extrêmement utiles. Seulement 38 tests couvrirait non seulement toutes les valeurs de paramètre au moins une fois, mais il inclurait au moins un cas de test couvrant chaque paire forte> des valeurs de paramètre interagissant les unes avec les autres. (par exemple, navigateur = "opéra" et css = "on" sera testé pour et simuler la connectivité déposée? = "Y" et les cookies activés = "N" seront testés pour, etc.) Un couple d'écran d'hexawise , un nouvel outil de conception de test (actuellement gratuit), peut rendre ce point mieux que je ne peux en mots: p>

Cette première image montre chacun des 14 paramètres avec jusqu'à 6 valeurs par paramètre P> xxx pré>

Cette seconde image montre: (A) les intrants créent 2 654,208 cas de test possibles / scénarios, et (B) Juste 38 cas de test testeront chaque paire de valeurs de paramètres possible dans au moins un cas de test. (par exemple, navigateur = "opéra" et css = "on" sera testé pour et simuler la connectivité déposée? = "Y" et les cookies activés = "N" seront testés pour, etc.) P>

 Image 2 -  http://pea.to/8B
  • Justin Li> ul>

    Justin Hunter - Fondateur et PDG d'Hexawise - Plus de couverture. Moins de tests. www.hexawise.com p> p>


0 commentaires