Comment gérer la mentalité «L'automatisation est facile»?


12

Le titre dit tout. Certains employés de notre entreprise pensent que les tests automatisés sont "faciles" et que "cela devrait prendre une journée" pour écrire des suites de tests COM et UI. Que peut-on faire pour contrer cela?

Remarque: je ne demande pas comment promouvoir l'automatisation. Ce n'est pas ça le problème. Les tests et processus automatisés sont promus et demandés tout le temps ici. Le problème est que certaines personnes ne comprennent pas que l'automatisation n'est ni "facile" ni "rapide".


25
Certaines de ces personnes ont-elles été invitées à prouver leurs affirmations?
Blrfl

2
Ces types de perceptions existent dans de nombreuses industries et ne peuvent être modifiées. Alors que beaucoup peuvent répondre à des approches pour éduquer les employés, la seule vraie réponse est de travailler ailleurs. Les gens qui ont une faible valeur perçue du travail d'une autre personne ne sont jamais une bonne chose.
Reactgular

7
éventuellement lié: effet Dunning Kruger
Simon Bergot

3
Dites-lui: "mec, si vous pensez que cela peut être fait en une seule fois, asseyez-vous et montrez-moi comment vous implémentez cela, afin que je puisse apprendre de vous comment écrire des tests si rapidement, car je ne sais pas comment accomplir cette".
Doc Brown

Réponses:


5

La prochaine fois que vous recevrez une demande, essayez de décomposer autant de processus d'automatisation en morceaux de temps. Je pense que quand ils réalisent que cela prend 5 minutes par champ de texte ou bouton, ils commencent à réaliser combien de temps cela prend.

Par exemple, peut-être que cela prend si longtemps, c'est qu'ils commencent à introduire l'interdépendance entre les champs: par exemple, ne leur permettez de continuer que si cela est rempli mais pas si ce n'est pas le cas, sauf quand ...

Essayez de les éduquer sur POURQUOI cela prend si longtemps, mais pas autant que vous les perdez à travers le processus "d'apprentissage".


4

Dans mes rôles, j'ai rencontré de nombreuses personnes "x is easy" en particulier sur des projets de développement. Dans mon esprit, il y a trois raisons à cela:

1) Ils ne comprennent vraiment pas de quoi ils parlent, mais aiment beaucoup sonner comme ils le font.

2) Ils ont lu quelques livres et pensent savoir de quoi ils parlent

3) Enfin, les gens supposent qu'un ordinateur fait les tests rapidement, parce que les ordinateurs sont rapides.

Le seul moyen sûr de lutter contre cela est d'engager régulièrement les utilisateurs, les stratégies de communication pour les projets sont essentielles, expliquant certainement les tenants et les aboutissants des tests automatisés aux utilisateurs non techniques va être futile, mais leur faire prendre conscience des processus impliqués peut être bénéfique. Vous pouvez le faire via la documentation, des ateliers ou simplement une conversation amicale la prochaine fois que vous passerez.

J'ai même vu un BA célibataire parmi les plus bruyants de ces gens "x c'est facile" et je les ai simplement invités à passer une journée dans le département, en pensant qu'ils s'en iraient pour mieux comprendre ce que vous faites OU ils simple come away en pensant "dieu, je ne sais vraiment pas de quoi je parle, je pense que j'avais tort".


2

Le logiciel consiste à automatiser les choses.

Nous écrivons des logiciels pour nous faciliter les tâches ennuyeuses, répétitives et exigeantes en main-d'œuvre. Nous écrivons des logiciels pour automatiser la création de rapports, la collecte de données, la communication avec les autres, etc. L'écriture de tests automatisés est vraiment juste de l'écriture de logiciels pour nous assurer que nos autres logiciels fonctionnent comme nous l'attendons.

Si vos collègues comprennent que l'écriture de logiciels est difficile et prend du temps, il devrait être assez facile de leur montrer que l'écriture de plus de logiciels doit être difficile et prendre du temps. Ce serait bien d'obtenir tous les avantages de l'automatisation gratuitement, mais, comme toujours, nous devons mettre le travail en avant pour obtenir les avantages plus tard.

S'ils ne comprennent pas cela, vous devez soit travailler à leur enseigner cela, soit travailler à peaufiner votre CV.


2
writing software is hard and takes time. L'écriture d'une petite application en ligne de commande est rapide. Il est difficile d'écrire l'IA skynet. Dire de telles déclarations générales ne convaincra personne.
Simon Bergot

3
@Simon - C'est une déclaration assez juste. Tous les logiciels jamais écrits ne sont pas nécessairement difficiles. Je pensais davantage au fait que la plupart des logiciels que nous sommes payés pour écrire sont destinés à des choses non triviales. Même quelque chose comme une simple application CRUD prend du temps et des efforts pour s'assurer qu'ils ont une validation correcte, une gestion des erreurs, éventuellement une sécurité, des rapports, etc. -tech / gestion des gens. Cela peut ne pas être correct et affecte la façon dont «dur», «facile» et «rapide» doivent tous être interprétés.
Becuzz

La programmation des ordinateurs est difficile et prend du temps, vous pouvez le dire parce que c'est cher
Chris McCall

2

La plupart des employés passent leur temps dans la partie «avant» (client-patron-partie prenante) de l'entreprise ou dans «l'arrière» (où se fait le «vrai» travail). Ces deux fonctions sont différentes, presque opposées. (Et très peu de gens ont travaillé dans les deux). En conséquence, il y a souvent des malentendus entre les deux groupes.

La meilleure façon d'éduquer, par exemple, les gens du «front», est d'avoir un ou quelques-uns d'entre eux passent une journée dans le «dos». S'ils terminaient "Une journée dans la vie de ...", ils auraient une idée plus réaliste de ce qui peut être fait en une journée, et pourquoi cela prend plus de temps et d'efforts pour exécuter des tests automatisés. De même, les personnes «de dos» pourraient bénéficier d'un jour ou deux au «front».

Dans «Comment être riche», John Paul Getty (un magnat de son temps) a préconisé une telle «formation croisée». À son avis, un vendeur qui passait du temps sur la chaîne de montage où le produit était fabriqué ferait un bien meilleur travail de vente, et de même un ingénieur qui passait une journée avec des clients ferait un meilleur travail de «débogage».


2

Le problème est que certaines personnes ne comprennent pas que l'automatisation n'est ni "facile" ni "rapide".

Je ne suis pas d'accord avec votre prémisse ici.

Je suis un grand partisan des tests automatisés, qu'il s'agisse de tests unitaires, de tests d'intégration ou de tests d'interface utilisateur. Il existe de nombreux excellents outils disponibles pour implémenter des tests automatisés.

Comparons les tests automatisés aux tests manuels sur la base de l'exemple suivant:

Dans une application Web, testez la fonctionnalité "Changer le mot de passe" d'un utilisateur existant à l'aide d'un navigateur.

Test manuel :

  • Démarrez l'application Web
  • Ouvrez le navigateur
  • Merde, il y a une erreur. Pourquoi? Oh, j'ai oublié de démarrer la base de données!
  • D'accord, fermez l'application Web
  • Démarrez la base de données
  • Démarrez l'application Web
  • Actualisez le navigateur
  • Hmm, quel était encore le mot de passe de notre utilisateur de test?
  • Jetez un œil à la base de données
  • Oh, la table des utilisateurs est vide! Je dois créer un nouvel utilisateur.
  • Enregistrer un nouvel utilisateur dans l'application Web: saisie du nom d'utilisateur, du mot de passe et de l'adresse e-mail
  • Pourquoi ne puis-je pas me connecter avec mon nouvel utilisateur? Oh, je dois cliquer sur le lien de confirmation dans l'e-mail!
  • Eh bien, j'ai donné à l'utilisateur un e-mail comme "test@example.com". Allons à la base de données et définissons la colonne "active" sur "Oui".
  • S'identifier. Cette fois ça marche!
  • Hmm, qu'est-ce que je voulais tester à nouveau ...?

Facile? Pas vraiment. Il existe de nombreux pièges possibles dans le processus.

Vite? Non. Le travail manuel prend du temps.

Maintenant, essayons d'écrire un test automatisé :

  • Nous devons trouver des outils pour que notre langage de programmation démarre automatiquement la base de données et le serveur Web. La recherche et la mise en œuvre prennent du temps.
  • La base de données doit être dans un état propre au démarrage du test. La création des scripts prend du temps.
  • Nous devons écrire le test. Puisque nous avons besoin d'un utilisateur, nous devons également en enregistrer un nouveau pour notre test. Prend du temps.
  • Enfin, nous pouvons écrire ce que nous voulons tester: Changer le mot de passe de l'utilisateur. Avec notre outil de test de navigateur, cela se fait assez rapidement par rapport aux tâches précédentes.

Facile? Non! Nous devions rechercher les outils, les implémenter, corriger quelques bugs dans nos tests.

Vite? Non! Cela prend encore plus de temps que de faire un test manuel.

Mais, il y a une grande différence ici: pour les tests futurs, il vous suffit d'écrire le test lui - même , le dernier point de la liste - qui a été fait rapidement et de manière comparable. Il n'est pas nécessaire d'effectuer toutes les recherches et tous les scripts d'initialisation pour d'autres tests.

Et après avoir passé le test, vous pouvez commencer facilement. En quelques secondes (ou peut-être quelques minutes, si le démarrage de la base de données et de l'application Web prend du temps), vous voyez si la routine "Changer le mot de passe" fonctionne ou non. S'il y a un bug, corrigez-le et relancez le test - vous verrez immédiatement si le bug est corrigé. Rapide et facile .

Écrire des tests automatisés n'est ni facile ni rapide en premier lieu, mais les exécuter l'est.

Et c'est le moment où le temps investi revient.


Excellent article, mais le gros problème: que se passe-t-il après votre connexion? La plupart de cette logique commence à devenir vraiment floconneuse.
joshin4colours

0

Les tests en général ne sont pas faciles et ne devraient pas l'être. Si Boeing ou Mercedes ne testaient pas leurs produits aussi rigoureusement qu'ils le feraient, ils seraient soit en faillite en raison de poursuites judiciaires, soit feraient faillite pour vendre des articles de si mauvaise qualité. Diriez-vous une voiture à 70 miles à l'heure en sachant que le volant peut ou non tomber en morceaux?

Il est très difficile de suggérer des moyens de faire face à l'état d'esprit sans comprendre qui sont ces personnes ou leurs raisons. La plupart des gestionnaires et administrateurs pensent aux coûts et sont jugés par ce qui est produit. En utilisant ces critères, il leur est très difficile de justifier de passer du temps sur des tests. Si tel est le cas avec vous, vous devrez trouver des moyens de présenter cette tâche comme étant bénéfique à long terme, ce qui est bien sûr le cas.

Le fait que les logiciels ne soient pas tangibles ne signifie pas que nous pouvons nous en sortir sans penser aux implications des systèmes que nous construisons ne fonctionnent pas. Je parie qu'Amazon a des tests automatisés et je parie qu'il y a des gens qui ne connaissent que trop bien les implications financières de l'échec de leurs sites Web / services.


0

2 +2 = 4 est l'un des morceaux de code les plus simples que tout le monde comprend; Et vous pouvez voir comment est facilement compris. Mais cela ne signifie pas que c'est une équation «facile». Le niveau d'abstraction nécessaire pour atteindre l'équation simple est assez complexe. Il en va de même avec les logiciels et les méthodologies de test de logiciels. Le niveau d'abstraction qui nécessite un morceau de code demande beaucoup de travail.

Il est vrai qu'une bonne pratique conduit à réutiliser des classes et des objets mais également, pour atteindre cet état il faut investir du temps et des efforts .


cela ne répond pas à la question posée
moucher

0

Il y a deux côtés à cette question.

De votre côté, vous semblez penser que vous faites du bon travail et que le groupe «L'automatisation est facile» ne sait pas de quoi il parle.

De leur côté, d'après ce que vous dites, ils voient des tests automatisés prendre (selon eux) beaucoup de temps à produire.

De cette distance, avec le peu que nous devons continuer, nous ne savons pas qui a "raison", ou si quelqu'un a "raison".

Comment gérer l'automatisation est un état d'esprit facile

Parlez-leur. Demandez-leur honnêtement leurs idées sur la façon de mieux faire. Faites-les participer et participer. C'est la seule façon de savoir s'ils ont vraiment quelque chose de positif à offrir. Peut-être qu'ils ont des contributions intéressantes à apporter, et vous pouvez gagner / gagner.

S'ils n'ont aucune idée réelle du fonctionnement de la programmation et des tests automatisés, ni d'idées réalistes sur la façon d'améliorer la productivité, alors après les avoir engagés positivement, vous pouvez montrer comment cela se fait et où va le temps. Soyez humble et positif, en les remerciant pour leurs contributions / idées. Pensez à ce qu'ils ont dit: peut-être que leurs suggestions déclencheront une façon de penser différente pour vous. Si oui, donnez-leur cette rétroaction. En étant humble et positif, vous pouvez également en faire un gagnant / gagnant.

Avant de leur parler, réfléchissez à la façon dont vous créez, exécutez et gérez vos tests. Quel (s) cadre (s) utilisez-vous? Y en a-t-il d'autres qui pourraient être meilleurs? Avez-vous un passe-partout "standard" que vous adaptez? La construction des tests pourrait-elle être plus automatisée? Qu'est-ce qui vous retient?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.