2008-10-02 10 views
3

En supposant que les tests unitaires sont gérés par développement, y a-t-il une raison pour que QA ait connaissance des détails du fonctionnement d'un produit? Par quoi je veux dire, ont-ils besoin de savoir ce qui se passe en arrière-plan et devraient-ils tester des segments d'un produit sans utiliser l'interface normale? Par exemple, est-il logique qu'un testeur entre dans une base de données et modifie manuellement les valeurs pour voir ce qui va se passer? Supposons que nous travaillons avec une application destinée aux non-développeurs, nous ne travaillons pas sur quelque chose avec une API attachée.Le test d'assurance qualité devrait-il être strictement encadré?

Répondre

3

Cela dépend de l'approche et du type de logiciel que vous écrivez. Il existe différents types d'assurance qualité. Si le logiciel doit être tolérant aux pannes, le contrôle qualité doit simuler les défauts. De plus, le fait de savoir comment un produit fonctionne peut aider l'assurance qualité à penser à des cas potentiellement problématiques et à les tester de manière plus approfondie. D'autre part, le fait de savoir comment fonctionne un produit peut empêcher le contrôle qualité du QA du point de vue de l'utilisateur. Alors peut-être d'abord les tests de base devraient être conçus sans connaître les internes, puis des tests plus approfondis basés sur des problèmes potentiels.

2

Cela dépend certainement de l'architecture. J'ai travaillé sur un projet où le niveau db a été développé, géré et testé par une équipe complètement séparée dans un bâtiment différent. Leur QA se tortillait définitivement avec des données pour voir si les procédures, les requêtes et similaires se déroulaient dans une gamme de conditions de test. Si vous êtes à l'extrémité de l'interface utilisateur, il y a deux niveaux, l'un est un test fonctionnel simple pour lequel l'assurance qualité n'a pas besoin de connaissance pratique de l'application (et qui devrait être automatisé) et il y a l'assurance qualité dit si l'application fait ce qu'elle est censée faire. Pour le second type, cela aide vraiment si l'équipe d'assurance qualité sait comment cela fonctionne. Cela permet de gagner du temps en rejetant d'emblée les bogues stupides, mais plus important encore, ils doivent se comporter comme des utilisateurs et avoir des cas d'utilisation de bout en bout qui tentent des scénarios de superposition plus complexes. Pour concevoir de tels tests, ils doivent avoir une bonne connaissance de l'application.

2

Il est tout à fait logique que les testeurs en connaissent autant que possible sur l'implémentation du logiciel. Cela les aidera à mieux tester.

Le test en boîte noire est une technique utile et nécessaire, mais en savoir un peu plus sur ce qui se passe sous le capot facilite la définition des cas de test vraiment intéressants. Le problème de se fier aux tests unitaires des développeurs pour tous vos besoins de tests en boîte blanche est que les développeurs, en général, ne sont pas des testeurs très complets, surtout quand il s'agit de code qu'ils ont écrit.

1

Dans le cadre de projets auxquels j'ai participé, l'assurance qualité a été testée du point de vue de l'utilisateur et ses tests ont été réalisés en fonction des exigences de la réunion. Leurs tests étaient des tests en boîte noire. Les tests en boîte blanche ont été effectués par les développeurs. Nous n'avons jamais attendu une personne QA pour ouvrir un outil de requête DB et modifier manuellement les valeurs. C'était la responsabilité des tests unitaires du dev.

+0

J'aurais dit que votre équipe d'assurance qualité faisait probablement des tests plutôt mauvais dans ce cas - peut-être même pas du tout, mais simplement confirmer. Cela arrive, mais ce n'est certainement pas quelque chose auquel aspirer. – testerab

1

Je pense que cela dépend du rôle que joue votre équipe d'assurance qualité sur un projet donné. Je pense que vous pouvez argumenter que les situations qui résultent de valeurs spécifiques présentes dans la base de données devraient être représentées par des cas de test, et si elles peuvent être représentées de cette manière, alors les développeurs devraient écrire (devraient avoir écrit) des tests unitaires pour ces situations. .

Si vous avez également utilisé les inspections de code pour identifier et corriger les défauts, il peut ne pas être nécessaire d'exposer le contrôle qualité à quoi que ce soit en coulisse.Je suppose qu'il existe des projets où il pourrait être utile pour eux de tester le code en dehors de l'expérience utilisateur, mais j'utiliserais probablement une équipe d'assurance qualité pour tester les boîtes noires plutôt que des tests en blanc ou en clair.

0

Je dirais qu'il y a toutes les raisons pour une personne QA à pas avoir une connaissance détaillée de l'intérieur de la façon dont fonctionne votre application. Le personnel d'AQ devrait avoir à peu près le même niveau de compétence en informatique que votre public cible. La raison en est simple: plus une personne chargée de l'assurance qualité connaît la manière dont votre application est créée, plus elle risque d'éviter les problèmes d'utilisabilité normaux que rencontreront vos utilisateurs habituels. QA ne consiste pas uniquement à tester le bon fonctionnement de l'application. Il devrait également s'agir de tester si elle est compréhensible par votre utilisateur moyen et donc réellement utilisable.

MISE À JOUR
Cela devenait trop long pour tenir dans une boîte de commentaire.

En ce qui concerne les questions de @ testerab.

Je définis l'AQ comme la personne ou le groupe responsable de s'assurer 1. que les exigences opérationnelles sont respectées; et, 2. les fonctions de l'application en ce qui concerne ces exigences sont exemptes d'erreurs. D'où le surnom "Quality Assurance". Un troisième élément qui, selon moi, appartient à l'assurance qualité est simplement la convivialité.

Ils doivent avoir une compréhension des besoins de l'entreprise, ce qui signifie qu'ils doivent travailler de pair avec les analystes d'affaires et les utilisateurs finaux (le cas échéant). Les meilleurs membres de l'AQ avec qui j'ai travaillé ont été embauchés dans ces régions. Les pires membres de l'AQ que j'ai vus étaient des développeurs ou ont été formés en tant que tels. Les personnes qui ont déménagé de Tech Support ont également tendance à faire de bons membres QA car ils connaissent exactement le type d'ordures qu'un utilisateur final va essayer.

Il existe de nombreuses classes d'applications. De loin, le plus commun est l'entrée de données glorifiée. Vous avez des écrans dans lesquels les informations sont saisies et les boutons sont enfoncés. L'information est ensuite stockée et/ou acheminée à l'endroit où elle doit aller. Tout de MS Word aux CRM tombe dans cette catégorie.

Par conséquent, le travail d'une personne chargée de l'assurance qualité consiste à vérifier d'abord que l'application acceptera les entrées souhaitées et exécuter les fonctions souhaitées. Une étape secondaire consiste à soumettre les mauvaises entrées et à vérifier que l'application répond de la manière souhaitée. par exemple. il ne gonfle pas et ne laisse pas passer les mauvaises informations. Les outils de test automatisés fonctionnent très bien dans ces cas. Une dernière partie est de décider si cette fonction doit être enterrée à trois niveaux de profondeur ou est-ce quelque chose qui devrait être plus facile d'accès.

Aucun des éléments ci-dessus n'oblige la personne chargée de l'assurance qualité à lire le code ou à manipuler les bits.

Certains systèmes n'ont pas de composant d'interface utilisateur. Pour ces derniers, il appartient au développeur de fournir un harnais de test qui permettra à une équipe d'assurance qualité de soumettre des données et d'examiner les résultats. Cela couvre les services Web et tout type d'EDI que vous pouvez imaginer.

D'autres systèmes sont des API en eux-mêmes. Ceux-ci exigent soit une personne de QA qui soit assez bien informée pour implémenter elle-même ces appels d'API, soit que les développeurs fournissent des moyens de les appeler facilement et d'enregistrer les résultats. Dans ce cas, il est préférable que l'équipe de contrôle qualité puisse faire sa propre programmation mais, une fois de plus, ne pas avoir accès au code sous-jacent. Le problème avec l'examen du code réel est qu'il tend à amener une personne à se concentrer sur ce qu'elle voit. C'est mauvais.Au lieu de cela, ils devraient être mentalement libres de ces limites artificielles afin qu'ils puissent aveuglément taper "ABC" dans une zone de texte qui attend l'entrée numérique.


En ce qui concerne « voir » le code afin de savoir quoi tester, c'est un problème tout à fait différent et qui est mieux résolu par les développeurs formés dans un cadre de révision du code. Le but ici est d'identifier les erreurs possibles, les meilleures pratiques, les échecs de sécurité, etc. Les personnes de QA sont rarement capables de ce niveau d'analyse car elles exigent que quelqu'un soit un développeur actif.


En ce qui concerne SDETs: Si votre produit a ou est, une API ou une fondation qui devs utilisent pour construire d'autres choses, alors vous voudrez peut-être une ou plusieurs personnes dédiées à la mise en œuvre de logiciels autour de lui afin de soutenir la régulière Groupe d'assurance qualité Je suis sur la clôture quant à la nécessité de ce rôle et je crois que cela pourrait être un projet par décision de projet.

Je crois qu'il y a deux groupes qui sont mieux qualifiés pour tester les API. Ce sont les utilisateurs finaux qui sont déjà en train d'implémenter et d'autres développeurs dans l'entreprise qui l'a construit. L'alimentation des chiens est maintenant une pratique courante et est très rentable. Après tout, si cela ne fonctionne pas, vous pouvez être sûr qu'il sera réparé rapidement. Pour les utilisateurs finaux, tant qu'ils voient cela comme une véritable conversation dans laquelle l'équipe de développement est réceptive, ils seront heureux de "tester" pour vous.

J'ai été dans les trois situations et en tant qu'utilisateur final, j'ai l'impression d'avoir accès aux développeurs d'origine va un long chemin à résoudre les problèmes. Surtout quand ils utilisent également le produit. Le montant de la mauvaise traduction pour les gens de l'AQ normalement associés à ces projets est tout simplement horrible.


En résumé, j'ai travaillé avec toutes sortes de personnes chargées de l'assurance qualité. De ceux que vous vous demandez comment ils ont réussi à conduire au travail à des superstars qui étaient très habiles à trouver ces cas de coin qui ont causé des applications à étouffer.

Les caractéristiques des meilleurs étaient les suivantes: 1. n'ont jamais été programmeurs; 2. compris l'affaire; 3. compris exactement ce que les utilisateurs finaux ont fait au jour le jour. 4. Honnêtement préoccupé par ceux qui sont soumis au logiciel.

Les traits des plus mauvais inclus: 1. avaient été programmeurs ou pensaient qu'ils étaient; 2. n'a pas compris l'affaire; 3. jamais rencontré un utilisateur final; 4. utilisé trop souvent le mot «idiot»; 5. rattrapé dans la mécanique de la façon dont cela fonctionnait au lieu de savoir si c'était même utilisable.

+0

Cela révèle une profonde ignorance du rôle de l'AQ. – testerab

+0

@testerab: Chaque entreprise a des besoins différents en ce qui concerne son équipe d'assurance qualité. En règle générale, la meilleure personne QA sera juste une étape au-dessus de l'utilisateur commun de l'application testée. La différence devrait porter simplement sur leur capacité à connaître un échec lorsqu'ils le voient et savent comment le signaler. Déboguer une application ou déblatérer ses composants internes afin de provoquer une panne qui ne peut pas être vue à travers l'application elle-même est une perte de temps et de ressources de l'entreprise. – NotMe

+0

Comment définissez-vous l'assurance qualité? – testerab

0

Je pense qu'une approche hybride fonctionne bien. Si vous utilisez une combinaison de tests en boîte blanche (tests unitaires) et de tests en boîte noire, vous obtenez une meilleure couverture. Chacun a ses avantages et ses inconvénients, mais ils couvrent partiellement les faiblesses de l'autre. Comprendre le fonctionnement interne du code vous permettra de tester d'une certaine manière, ce qui n'est pas toujours le meilleur moyen de découvrir certains problèmes.

Questions connexes