Nous essayons de configurer notre processus de test. Nous nous demandons si nos testeurs devraient développer des tests de régression automatisés, ou si les développeurs devraient le faire.
Et qu'en est-il des autres types de tests automatisés? Les testeurs devraient-ils les développer?
testing
automation
Jader Dias
la source
la source
Réponses:
Je dis que les testeurs devraient développer les tests automatisés - ils ont l'approche "paire extérieure d'yeux" du code, et repèreront (ou devrait-ce juste "peut-être"?) Des bogues auxquels vous n'avez pas pensé, et encore moins gérer .
De plus, leur compréhension des exigences fonctionnelles pourrait être plus élevée que celle des développeurs - donc assis entre la connaissance hardcore de bas niveau du programmeur, mais pas aussi élevée que celle du BA.
la source
Si vous pouvez l'automatiser, automatisez-le.
Laissez les testeurs libres de trouver les choses que vous ne pouvez pas automatiser. Et lorsqu'ils trouvent un nouveau bogue, s'il peut être automatisé et ajouté aux tests automatisés, ajoutez-le.
la source
À mon avis, les développeurs et les testeurs sont responsables de différents types de tests.
Le développeur, tout en écrivant la logique, devrait également écrire des tests unitaires et d'intégration. Cela permettra au développeur de s'assurer que ce qu'il a écrit jusqu'à présent fonctionne comme prévu. En outre, ces tests seront toujours disponibles pour que le développeur s'exécute lorsqu'ils apporteront des modifications futures. Une fois la logique terminée, le développeur peut être assuré que ce qui est écrit fonctionne car il comprend les spécifications et peut passer au testeur.
À partir de ce moment, le testeur doit être responsable de l'écriture de tests à l'échelle du système qui garantissent que la logique métier fonctionne comme prévu.
Étant donné que les développeurs sont souvent beaucoup trop attachés au code, les testeurs devraient être en mesure d'aider à nettoyer les tests des développeurs, mais pas l'inverse.
la source
D'après mon expérience, la façon dont un testeur configure et exécute automatiquement un cas de test diffère en fait de la façon dont un développeur le fait. Les testeurs réfléchiront davantage à la manière de tirer le maximum d'informations du scénario de test, à exécuter rapidement les tests, à maintenir les tests maintenables, etc. Plus important encore, les testeurs verront des nuances de couverture de test que les développeurs manqueront.
Si les ressources de développement de test sont faibles, les développeurs peuvent aider - mais un testeur doit examiner attentivement son travail. Les développeurs devraient travailler sur les fixtures et les outils de test avant d'écrire les cas de test réels, et les développeurs ne devraient jamais écrire de cas de test pour leur propre code. Le fait que les développeurs aident les tests a des avantages - cela expose les développeurs à d'autres éléments du produit, et les tests peuvent les aider à devenir de meilleurs développeurs. Cependant, tout comme le travail d'un développeur junior ne se passerait jamais d'un examen du code, le travail d'AQ d'un développeur devrait obtenir un examen d'AQ par quelqu'un ayant plus d'expérience dans les tests.
Modifié pour ajouter: je suis un SDET avec 5 ans d'expérience. Je travaille avec de grands développeurs avec plus de 10 ans d'expérience chacun, et j'ai récemment travaillé avec eux pour surmonter un goulot d'étranglement.
la source
Une chose que j'aimerais vraiment voir, ce sont des outils d'automatisation solides pour les testeurs qui leur permettront d'enregistrer efficacement leur progression via un script de test, puis de permettre à ce script d'être exécuté automatiquement à l'avenir. Surtout si cela facilite également l'exécution du même script sur différentes versions du système d'exploitation sans que le testeur doive les parcourir toutes à la main.
Malheureusement, certainement pour le produit sur lequel je travaille, aucun des outils sur le marché ne fait tout à fait l'affaire. Mais cela vaut la peine de garder cela à l'esprit et de regarder ce qui est disponible sur le marché au cas où il y aurait quelque chose qui fonctionnerait pour ce que vous faites.
la source
Une distinction essentielle qui est vraiment important ici est la suivante: sont vos testeurs simplement vérifier , ou sont - ils à l' essai ?
Ce billet de blog de Michael Bolton l' explique mieux, mais essentiellement: cherche-t-il simplement à confirmer le comportement, ou cherche-t-il à trouver des problèmes avec le système?
Je pense qu'il est également utile de considérer les Quadrants Agile Testing (Brian Marick les a décrits à l'origine, mais je les ai rencontrés dans le livre "Agile Testing" de Lisa Crispin et Janet Gregory: même si vous ne suivez pas une méthodologie de développement Agile, je pense que le la distinction entre les tests qui critiquent le produit et les tests qui soutiennent l'équipe est vraiment utile lorsque l'on considère l'automatisation et que l'on essaie de développer un plan pour qui fait quoi et pourquoi.
Par exemple, les vérifications unitaires écrites par les développeurs agissent comme des détecteurs de changement, vous permettant de détecter les régressions tôt lorsqu'elles sont réexécutées régulièrement - ce sont des tests qui soutiennent l'équipe. Les contrôles de régression au niveau du système qui sont automatisés afin qu'ils puissent être réexécutés régulièrement et rapidement prennent également en charge l'équipe en détectant les régressions tôt et complètent les tests unitaires effectués par les développeurs. Cela libère le temps de vos testeurs pour effectuer des tests qui critiquent le produit - des tests exploratoires, par exemple. Ou peut-être en appliquant certaines des vérifications automatisées pour tester la résistance du produit.
L'autre chose que j'aime beaucoup dans la présentation de Lisa Crispin que j'ai liée est qu'elle souligne que l'automatisation peut également être utilisée pour prendre en charge les tests manuels - création de données de test, automatisation utilisée pour obtenir un scénario au point sur lequel vous souhaitez vous concentrer aujourd'hui, pour exemple.
Il est à espérer que ces deux articles vous aideront à analyser le type de test que vous souhaitez effectuer, à faciliter la sélection de ce qui pourrait convenir à l'automatisation et à déterminer les éléments d'automatisation qui conviennent le mieux aux testeurs, et lesquels par les développeurs.
la source