Licornes SDET - Pourquoi est-il si difficile de louer des SDET?

SDET, également connu sous le nom d'ingénieur de développement logiciel en test, est un poste au sein du domaine des tests logiciels et de l'assurance qualité. Le terme a été utilisé à l'origine par Microsoft puis Google dans le but de remplacer les tâches de test manuelles banales et répétitives par l'automatisation.

Au fil des ans, de plus en plus d'entreprises recrutent des SDET, car c'est un rôle central dans Agile et DevOps. Cependant, c’est un rôle difficile à remplir.

La technologie évolue très rapidement et les testeurs doivent apprendre beaucoup pour garder une longueur d'avance.


Dans mon précédent post, Tester dans un monde DevOps , J'ai expliqué comment le rôle d'un testeur a changé au cours de la dernière décennie, créant ainsi une pénurie de tester les licornes .

Cet article parle du rôle d'un SDET et des raisons pour lesquelles les SDET de licorne sont difficiles à trouver.




Que fait un SDET?

Un SDET est un testeur de logiciel technique qui se concentre sur le développement de scripts de test automatisés.

En règle générale, ils font partie d'une équipe agile et travaillent aux côtés des développeurs pour aider à automatiser les critères d'acceptation dans les user stories.

En plus de participer à des activités d'assurance qualité typiques, ils peuvent écrire n'importe quoi, des tests d'intégration automatisés, des tests d'API et / ou des tests d'automatisation de l'interface utilisateur.

De plus, les SDET pourraient aider à réviser les tests unitaires qui sont écrits par les développeurs.




Pourquoi les SDET sont-ils nécessaires?

Dans chaque produit, certaines fonctionnalités de base doivent fonctionner sur chaque version du produit. Cela signifie que dans chaque sprint, de nouvelles fonctionnalités ainsi que des fonctionnalités existantes doivent être testées.

Le développement agile est rapide. Avec des sprints courts, qui durent généralement deux semaines, les testeurs n’ont pas le temps de tout tester manuellement.

Lorsque les testeurs d'une équipe ne possèdent pas les compétences requises pour rédiger des contrôles automatisés, tous les tests doivent être effectués manuellement.

En fin de compte, les tests deviennent un goulot d'étranglement pour le développement et la publication de logiciels, car leur exécution prendra de plus en plus de temps.


Par conséquent, embaucher et placer des SDET dans une équipe agile peut alléger le fardeau en automatisant une grande partie des tests et des tâches manuels.



Interviewer et embaucher des SDET

Alors, pourquoi est-il si difficile de trouver et de recruter de bons SDET?

Au fil des ans, la majorité des soi-disant SDET que j'ai interrogés n'ont pas les compétences techniques requises ou n'ont aucune compréhension de l'AQ et des principes de test.

Ils ne comprennent pas entièrement la raison principale du rôle de SDET dans une équipe. La plupart partent du principe que tout ce qu'ils doivent faire est d'automatiser les critères d'acceptation. Soyons clairs, un SDET n'est PAS un ingénieur en automatisation .


Avoir le bon équilibre entre les aptitudes aux tests et les compétences techniques est la clé.

Un grand SDET est un testeur de logiciels de métier, passionné par la qualité des logiciels et en même temps est technophile et possède la bonne combinaison de compétences techniques.

Lors des entretiens pour les SDET, je recherche toujours État d'esprit QA et Compétences techniques.



Profil SDET - Testeurs Full-stack

À quoi ressemble le profil d'un grand SDET? Quelles compétences les SDET devraient-ils avoir?


Maintenant, certains d'entre nous ont entendu parler de développeurs full-stack, mais pouvons-nous avoir testeurs full-stack ?

À mon avis, un SDET devrait avoir au moins les compétences et attributs suivants:

  • A un état d'esprit de testeur, est curieux et peut proposer des scénarios de test intéressants
  • Possède une solide compréhension des principes et des méthodologies de test
  • Sait que tous les tests sont de nature exploratoire et apprécie la différence entre test et vérification.
  • Peut appliquer des méthodes d'essai appropriées pour un scénario donné
  • connaît la différence entre les tests et l'assurance qualité
  • Peut coder au moins un langage de script ou de programmation (Java et Javascript sont les plus populaires)
  • Comprend HTTP et comment les applications Web modernes sont créées
  • Peut écrire une interface utilisateur aussi bien que Tests automatisés API. L'un ou l'autre ne suffit pas!
  • Sait Git, demandes d'extraction, branchement , etc…
  • Est agile par nature et sait comment les tests s'intègrent dans le modèle agile
  • Peut écrire des scripts de test de performance ( Gatling et / ou JMeter )
  • Pense à la sécurité et est conscient de OWASP
  • Comprend CI / CD et Build pipelines
  • Connaît les services offerts par les fournisseurs de plates-formes cloud tels que AWS, Azure et Google Cloud


Devenir un grand SDET

Comme on peut le voir, l'éventail des compétences attendues d'un SDET est assez large.

Mon conseil aux testeurs qui souhaitent devenir SDET et rester pertinents dans la nouvelle ère de l'assurance qualité est:

Assurez-vous de travailler pour avoir toutes les compétences ci-dessus dans le profil SDET_, mais au minimum: _

Connaître et comprendre les principes fondamentaux des tests

Tout d'abord, connaissez les bases des tests logiciels.

C'est trop bien d'être à égalité avec les développeurs et d'être capable d'écrire du beau code. Mais si vous n'avez pas la mentalité d'AQ, si vous ne parvenez pas à proposer suffisamment de scénarios pour tester en profondeur les user stories et les fonctionnalités, vous n'ajoutez aucune valeur. Vous pourriez aussi bien travailler plus dur et devenir développeur.

Connaître et comprendre HTTP

La plupart des applications Web modernes interagissent avec les API.

Il est essentiel de connaître et de comprendre l'architecture HTTP et le fonctionnement du Web. Si vous ne pouvez pas faire la différence entre une requête POST et une requête GET ou si vous ne savez pas comment faire analyser JSON , alors comment pouvez-vous tester efficacement une API?

Investissez du temps dans l'apprentissage d'outils de test d'API tels que Karaté .

Vous ne pouvez pas vous appeler un SDET si tout ce que vous voulez faire est d’automatiser les tests et tout ce que vous savez, c’est Java, Selenium et Cucumber!