Ex ante: parece haber mucha confusión sobre lo que se considera probar lo que no. Claro, cada desarrollador necesita probar su código mientras lo crea, él / ella necesita verificar que funcione. Ella / él no puede entregarlo a un probador antes de que él / ella piense que está hecho y que es lo suficientemente bueno. Pero los desarrolladores no lo ven todo. Es posible que no reconozcan los errores. Estos errores solo se pueden encontrar más adelante en el ciclo de desarrollo cuando se realizan pruebas exhaustivas. La pregunta es si los desarrolladores deben realizar ese tipo de pruebas o no, y en mi humilde opinión, esto debe analizarse desde el punto de vista del gerente de proyecto:
Los desarrolladores pueden ser probadores, pero no deberían serlo . Los desarrolladores tienden a evitar involuntariamente / inconscientemente usar la aplicación de una manera que pueda romperla. Eso es porque lo escribieron y lo prueban principalmente en la forma en que debería usarse.
Un buen probador, por otro lado, intenta torturar la aplicación. Su intención principal es romperlo. A menudo usan la aplicación de formas que los desarrolladores no habrían imaginado. Están más cerca de los usuarios que del desarrollador y, a menudo, tienen un enfoque diferente para probar un flujo de trabajo.
Además, el uso de desarrolladores como probadores aumenta los costos de desarrollo y no beneficia tanto la calidad del producto como tener un probador dedicado. No permitiría que los desarrolladores hicieran una prueba cruzada de sus trabajos cuando un probador pueda hacerlo mejor por poco dinero. Solo si el ciclo de retroalimentación entre los desarrolladores y los probadores se volviera demasiado costoso, haría que los desarrolladores hicieran una prueba cruzada del código de los demás, pero en mi experiencia eso rara vez es el caso y depende en gran medida del proceso.
Eso no significa que un desarrollador deba ser descuidado y dejar todo al probador. El software debe estar respaldado por pruebas unitarias y los errores técnicos deben reducirse al mínimo antes de entregar el software al probador. Aún así, a veces tienes una solución aquí, rompes los problemas u otros errores que ningún desarrollador podría prever, está bien. Además, las pruebas de integración deben ser realizadas principalmente por los desarrolladores. El objetivo principal del probador es verificar que se cumplan los requisitos.
En un equipo tan pequeño (y también dependiendo del tamaño de la aplicación), también puedo ver al probador en un rol híbrido, escribiendo pruebas unitarias y pruebas de IU. Definitivamente deberías contratar uno .
Pero más importante que el probador son las congelaciones / ramas regulares. No presente nada que no haya sido probado adecuadamente. Cuando agregaste una función o cambiaste algo, todo lo que la rodea debe verificarse nuevamente. Solo obtendrá una mala reputación si su empresa no lo hace. No sueltes algo inestable. Cuando el cliente quiera tener el software en una fecha determinada, deje de desarrollarlo lo suficientemente temprano y pruébelo de manera adecuada, para que tenga tiempo suficiente para corregir errores. A menudo es mejor rechazar las solicitudes de funciones de último momento que implementarlas de manera deficiente o liberarlas sin las pruebas adecuadas.