J'ai récemment été chargé de, P>
"Testez tous les scénarios que vous pouvez penser et essayer de casser le composant" p>
Qu'est-ce qui pourrait être raisonnable dans «tout» lorsque l'application est un site Web? P>
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! P>
15 Réponses :
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.
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. P>
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. P>
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. P>
Certaines de cela dépendent du contexte. Voici quelques-uns des moins évidents: p>
Quel est le "flux" du site? Y a-t-il une commande qu'un utilisateur doit accéder aux choses? P>
Y a-t-il des formes impliquées? p>
sont des cookies impliqués? P>
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)
N'oubliez pas les tests "Bonehead". p>
Ouvrez une page, cliquez sur le bouton Soumettre. La forme a-t-elle manipulé correctement rien d'être soumis? p>
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"? P>
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? P>
Vous seriez surpris de combien de fois j'ai été brûlé dans le passé par les situations "Bonehead". P>
Pour les objectifs de l'ACY - Allez avec la réponse de Bobby Jack P>
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é"
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. P>
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. P>
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. P>
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 p>
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. P>
Et bien sûr, les bases (copiées de Bobby Jack et DR, crédit de crédits dus): p>
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 /
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). P>
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.
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 à: p>
Enfin, voici une personne d'une personne sur un Liste de contrôle A> Et voici un site avec la revendication grandiose d'un VERIFICHER . P>
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. P>
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. p>
Il y a probablement des quadrillions de scénarios pour toute application raisonnablement dimensionnée. P>
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. P>
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 Hunter - Fondateur et PDG d'Hexawise - Plus de couverture. Moins de tests. www.hexawise.com p> p>
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