Experiencia real de miembros del equipo no técnicos escribiendo código Selenium: no salió bien
Realmente tuvimos esta situación en la que tuvimos un miembro del equipo no técnico (en este caso, un SQA sin antecedentes de programación). Esto desafortunadamente no fue muy bien.
Graba y reproduce pruebas creadas que no se pueden mantener
Primero, nuestro equipo probó las herramientas de grabación y reproducción, pero como otros han dicho, las pruebas que genera son muy frágiles y difíciles de mantener. Nuestro SQA finalmente terminó cayendo en un patrón de solo volver a grabar una prueba cada vez que cambiaba, lo que no era realmente tan eficiente, especialmente cuando un cambio rompió la mayoría de nuestras pruebas (tuvimos un cambio en la página principal de nuestro sitio web que rompió alrededor de 60 % de nuestras pruebas).
Sin la ayuda de aquellos con experiencia en programación, el código escrito manualmente era horrendo
Escribimos nuestras pruebas de Selenium en Java y el SQA nunca había usado Java antes, por lo que lo estaba aprendiendo solo. Descubrimos que las pruebas terminaron usando algunas prácticas de programación realmente pobres:
- Usar variables públicas estáticas cuando realmente deberían haber sido variables de instancia privadas
- Tener bloques de código que no hicieron nada
- Un montón de Thread.sleep () en lugar de usar WebDriverWait porque no sabía cómo escribir condiciones personalizadas
- Pruebas unitarias realmente incómodas: vi bastantes
assertTrue(false)
líneas para terminar una prueba
- Pobres nombres de variables
- Suprimir las excepciones que deberían haberse manejado (o prevenido en primer lugar)
- Pruebas que pasaron sin importar la entrada que utilizó
- Algún código que nunca descubrimos y terminamos reescribiendo
Cuando llegué al equipo, el SQA original se había ido y la ejecución de cualquier prueba resultó en un montón de excepciones de consola que simplemente se nos dijo que ignoramos. Después de eso, terminamos involucrando a los desarrolladores y reescribiendo masivamente gran parte del código para que realmente funcione correctamente y sea mantenible y fácil de entender.
Si va a hacer que personas no técnicas escriban código Selenium, haga que una persona técnica los ayude
Creo que algunos de estos problemas podrían haberse evitado si tuviéramos a alguien técnico que viniera a ayudarlos. Si hubieran explicado por qué las variables estáticas públicas deberían ser variables de instancia privadas, o cómo funciona JUnit, o cómo usar WebDriverWait, o por qué dispersar Thread.sleep () en todas partes es malo, podríamos haber tenido un mejor código.
Pero tal como está, terminamos con un código que en última instancia no se podía mantener y, al final, simplemente reescribimos la mayor parte, lo que resultó en una gran pérdida de tiempo y dinero.