1. La automatización de pruebas funcionales no es tan compleja como lo era antes. Las herramientas y la potencia informática han madurado hasta el punto en que podemos ejecutar miles y miles de pruebas en minutos. En cada compromiso. Los días de las herramientas de prueba automatizadas que son propietarias, caras y lentas se han ido. Por ejemplo, piense en Selenium / webdriver como solo una API. Puede escribir una prueba de Junit que realice llamadas a esa API, lo que ejercitaría las interacciones del navegador. La prueba en sí no se ve diferente a una prueba unitaria.
Por supuesto, esas pruebas tienen que ser inteligentes y estar bien escritas. Por ejemplo, cada prueba debe comenzar su propio sistema bajo prueba y eliminar ese sistema cuando se complete la prueba. Falsifica tus dependencias externas. Esas cosas harán que sus pruebas sean más independientes y aisladas, por lo tanto, menos vulnerables a la contaminación.
No podemos evitar algunas cosas. Para las pruebas web, el más grande es el navegador en sí. Los navegadores son lentos y poco fiables a veces. Esto puede agregar descamación. Puede solucionar esto utilizando una herramienta como PhantomJS | PhantomJS, pero eso depende de su comodidad con ese tipo de estrategia de prueba.
- ¿Cuál es el precio de desarrollar un software complejo de administración de la empresa (servidor, integración de mapas, Android + Windows)?
- Cuando trabajo en un nuevo proyecto de software que utiliza tecnologías desconocidas, es extremadamente difícil comenzar, ¿qué debo hacer?
- ¿Cuánto valora Amazon a sus ingenieros de control de calidad?
- He oído que 'Separación de preocupaciones' se opone a 'Inyección de dependencia'. ¿Si es así, cómo?
- ¿Es posible que un probador de software con 3 años de experiencia pase al desarrollo de UI? Tengo buena experiencia con JavaScript, ya que trabajé en automatización.
2. ¿Quién crea y mantiene? Todos. Las pruebas funcionales automatizadas deben ser un aspecto habitual y asumido para el desarrollo de software. Su capacidad debe satisfacerlo, al igual que las pruebas unitarias. De esta manera, no puede ignorarlos, no puede empujarlos a la siguiente iteración, no puede empujarlos a un equipo de automatización separado.
Si sigue el n. ° 1 anterior, estas pruebas se ejecutarán en cada confirmación, por lo que cada desarrollador deberá saber cómo escribir, diagnosticar, depurar y corregir. Todos los evaluadores necesitarán saber cómo trabajar con su equipo para asegurarse de que las pruebas automatizadas sean atendidas. Pueden hacerlo ellos mismos, pueden emparejarse con desarrolladores más técnicos sobre lo que debe probarse. De cualquier manera, no puede poner a su equipo en una situación en la que la responsabilidad de una prueba reprobatoria recaiga en nadie más que en el responsable.