Puede escribir demasiadas de algunas pruebas, aunque eso es diferente de demasiadas totales. Las pruebas para captadores y colocadores cubiertos por pruebas de nivel superior son superfluas. Las pruebas redundantes en la misma capa de abstracción son redundantes.
En 20 años nunca he visto demasiadas pruebas. Solo he visto demasiadas pruebas sin valor de ingenieros junior con supervisión insuficiente y organizaciones de control de calidad que replican las pruebas unitarias de los ingenieros. Los ingenieros que juegan una métrica (un gerente quería brevemente una prueba por día de desarrollo) probablemente también escriban demasiadas pruebas innecesarias. La abrumadora mayoría de las empresas que construyen software que “debe” funcionar tienen grandes agujeros incluso cuando realizan pruebas unitarias, especialmente sin inyección de fallas para probar rutas de error y sin simulación con la verificación de modelos de sistemas distribuidos, incluso cuando prueban el protocolo central. Las pruebas de estrés a menudo se pasan por alto, por lo que la fijación de límites problemáticos es más probable que sea una emergencia en lugar de una entrega programada normalmente.
Mi producto actual tiene pruebas automatizadas para cada característica y error reproducible de los últimos tres años, incluidas las rutas de error con un proxy web y un interceptor de llamadas del sistema. A pesar de las más de 150 funciones, los retornos de QA son raros y, por lo general, podemos impulsar un lanzamiento en 2 días, aunque omitimos los jueves y viernes para fines de semana sin estrés.
- A los 25 años, ¿cuál era su situación financiera como ingeniero de software?
- ¿Cuáles son las estimaciones típicas de esfuerzo de las tareas de programación?
- ¿Cómo debería un ingeniero de software, con más de 10 años de experiencia, ver el futuro en los próximos 10-15 o 20 años?
- ¿Los ingenieros informáticos acaban trabajando como ingenieros de software, ya que ahí es donde están todos los trabajos?
- ¿Cuáles son los mejores complementos para las pruebas de software que debe tener cualquier ingeniero de pruebas?
Eso, más la búsqueda pseudoaleatoria o de estado con verificación de modelos, pruebas de rendimiento, pruebas de estrés y pruebas adversas, es casi correcto.