Nuestro código base está creciendo desde hace 20 años. Somos unos 10 desarrolladores + sqa trabajando con 500kloc. Hace algún tiempo, un pequeño equipo de nosotros (2 desarrolladores, uno de sqa) comenzó a trabajar en un programa de prueba automatizado. Actualmente, una ejecución dura 11 horas y de alguna manera es una prueba de integración. Estamos trabajando en ello para reducir esto y reducir los falsos positivos y estamos haciendo un buen progreso en eso. Pero los detalles no deberían importar.
Está funcionando bien y seguimos mejorando. A nosotros (el equipo pequeño) nos gusta mucho. Si rompemos algo, notamos un día después y no 2 meses después cuando sqa echa un vistazo. Además, a nuestros gerentes (dev + sqa) les gusta la idea. Pero otras personas en el equipo simplemente ignoran los resultados de la prueba. En su opinión, si las pruebas fallan después de un registro, es un problema de la prueba y no del cambio de código y es solo nuestro proyecto de juguete. Tuvimos discusiones varias veces si una prueba fallida es un error real. La mayoría de las veces lo es.
No podemos y no queremos hacer cumplir algo. ¿Cómo podemos demostrar que las pruebas automatizadas son una cosa?
fuente
Respuestas:
Descargo de responsabilidad
Aunque pueda parecer un gerente, escribí esto como desarrollador que también necesitaba ser persuadido de que las pruebas automatizadas son buenas.
Debes entender la psicología básica de los desarrolladores. Es una necesidad arraigada de los desarrolladores comprometer el código. Cualquier cosa que les impida hacerlo es algo muy, muy malo. La prueba fallida es definitivamente algo que les impide hacerlo, por lo tanto, es algo malo. De ahí la resistencia.
Lo que debe señalar es que, si bien las pruebas automáticas los ralentizan a corto plazo, a la larga les ahorrará mucho dolor y los acelerará, porque podrán concentrarse más en el desarrollo de cosas nuevas, y perderá menos tiempo haciendo otra cosa que los desarrolladores odian hacer: corregir errores.
Y sí, debes imponerlo. Debe obtener el apoyo incondicional de la administración y hacer que la escritura de pruebas automatizadas sea obligatoria y no negociable. Con el tiempo, los desarrolladores se acostumbrarán a ellos. Lo que ayudará es si puede idear algunas métricas que muestren cuánto más se realizó un nuevo desarrollo y cuánto se redujo el número de errores desde que introdujo las pruebas automáticas. Las palabras son volátiles. Los números son sólidos. Y los números son algo que un desarrollador promedio entiende mejor que las palabras. Si puede probar usando números sólidos que las pruebas automatizadas son buenas, obtendrá poca o ninguna resistencia a ellas.
fuente
Ahí está tu problema. Si sus pruebas son escamosas (incluso si son confiables 'la mayor parte del tiempo'), las personas tenderán a ignorar los resultados. Su equipo de automatización debe centrarse en eliminar esos falsos negativos. Solo entonces el resto del equipo ganará suficiente confianza en los resultados para confiar realmente en ellos.
fuente
¡Definitivamente deberías aplicarlo! Si alguien introduce un código nuevo y las pruebas fallan, ¡el código debe ser rechazado! Es la única forma de mantener de manera confiable un proyecto de software más grande.
fuente