Estamos utilizando un proceso de desarrollo clásico en forma de V. Luego tenemos requisitos, arquitectura, diseño, implementación, pruebas de integración, pruebas de sistema y aceptación.
Los probadores están preparando casos de prueba durante las primeras fases del proyecto. El problema es que, debido a problemas de recursos (*), las fases de prueba son demasiado largas y a menudo se acortan debido a limitaciones de tiempo (ya sabes, los gerentes de proyecto ...;)). Los desarrolladores están haciendo sus pruebas unitarias como deberían.
Entonces, mi pregunta es simple: ¿deberían los desarrolladores participar en las fases de prueba y no es demasiado 'peligroso'? Me temo que le dará a los gerentes de proyecto una falsa sensación de mejor calidad a medida que se realiza el trabajo, pero ¿el valor agregado de man.days sería de alguna utilidad? No estoy realmente seguro de que los desarrolladores hagan pruebas (sin ofender aquí, pero todos sabemos que es bastante difícil romper con unos pocos clics lo que has hecho en varios días).
Gracias por compartir tus pensamientos.
(*) Por razones oscuras, aumentar el número de probadores no es una opción a partir de hoy.
(Solo por adelantado, no es un duplicado de ¿Deberían los programadores ayudar a los evaluadores a diseñar las pruebas? Que habla sobre la preparación de la prueba y no la ejecución de la prueba, donde evitamos la implicación de los desarrolladores)
fuente
Respuestas:
Mirando su pregunta muy literalmente ("involucrado en") Mi única respuesta es absolutamente inequívoca
SI
Los desarrolladores nunca deberían tener la última palabra en su propio código.
Pero, los desarrolladores deben participar en la prueba del trabajo de otros desarrolladores. Hace dos cosas:
Finalmente, ¿por qué no usarías tantos ojos como sea posible? Rara vez puede darse el lujo de pasar por el proceso de contratación e incorporación para incorporar a otras personas de control de calidad durante el momento crítico. Entonces, ¿dónde encuentras los ojos adicionales que necesitas? ¿O intenta pasar el tiempo de crisis con la misma cantidad de control de calidad que tuvo todo el tiempo? Incluso si los desarrolladores pasan el 20% de su tiempo probando y el 80% reparando cualquier error que surja, todavía hay más ojos en la aplicación que antes. Las pruebas automatizadas solo le brindan un cierto nivel de seguridad y nunca serán del 100%.
http://haacked.com/archive/2010/12/20/not-really-interested-in-lean.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29
fuente
Para cualquier cosa menos pruebas de unidad, absolutamente no. Los desarrolladores simplemente saben demasiado sobre la aplicación y cómo se "supone" que funciona para ser probadores objetivos.
fuente
La diferencia fundamental en las filosofías de prueba entre desarrolladores y Qs es la siguiente: el programador generalmente prueba su programa para demostrar que su código funciona (prueba "positiva"). El control de calidad puede y lo hace, pero también tiene un enfoque adicional en descubrir qué no funciona al intentar romper el software (usando pruebas "negativas").
En la medida en que el personal de QA podría corromperse potencialmente por las pruebas de los programadores que "prueban" que el software funciona, debe haber un aislamiento entre la prueba del desarrollador y la prueba de QA. El desarrollador ciertamente puede ayudar a las pruebas de control de calidad demostrando lo que funciona, pero depende del control de calidad verificar independientemente que el software no se rompa.
Lo mejor que puede hacer el programador para ayudar en el esfuerzo de prueba es proporcionar un conjunto de pruebas de unidad completo, de alta calidad y verificable, que contenga pruebas que se alineen con los requisitos individuales en el documento de requisitos.
fuente
Bueno, en términos de pruebas, hay 3 tipos.
Caja negra, caja gris y caja blanca.
El recuadro negro se refiere a los usuarios que prueban el producto, sin saber cómo funciona internamente.
El recuadro gris se refiere a usuarios avanzados que tienen conocimientos sobre programación de computadoras, pero que no están en el equipo de desarrollo. Estas personas comprobarán si el producto tiene pérdidas de memoria, problemas con los requisitos del sistema, etc.
Aquí está la parte principal: el cuadro blanco se refiere a los desarrolladores que prueban el producto a nivel de código. Esto significa decir que hacen pruebas unitarias, depuración, ... etc.
Por lo tanto, es bueno que los usuarios y el equipo de desarrollo estén involucrados en la fase de prueba, pero cada una de las pruebas requiere un nivel de compromiso adecuado por parte de los usuarios y el equipo de desarrollo, dependiendo de lo que se pruebe.
fuente
UNIT TESTING es imprescindible para todos los desarrolladores
Para obtener información sobre cómo se podría utilizar para su beneficio, lea los siguientes enlaces si está en desarrollo de C ++:
NO HAY MANERA DE QUE UNA PERSONA DE CONTROL DE CALIDAD PUEDA HACER ESTAS PRUEBAS. DE NINGUNA MANERA.
fuente
Suponiendo que el proyecto tiene un número significativo de desarrolladores, entonces, por supuesto, haga que los desarrolladores trabajen en las pruebas. Una advertencia sería que los desarrolladores no trabajan en las pruebas (esto no incluye pruebas unitarias) para su propio código.
fuente
Prefiero ver al personal administrativo (o usuarios potenciales reales) haciendo la prueba de control de calidad que a los desarrolladores. Alguien que no sabe cómo se diseñó el producto para funcionar, debe intentar usarlo. Los desarrolladores tienden a ser muy limitados en la forma en que abordan las pruebas y, francamente, también son demasiado caros por hora para usar en las pruebas de control de calidad.
fuente
Usted escribe:
Es como hacer que los trabajadores de la construcción construyan su casa, pero que un equipo diferente se asegure de que el edificio realmente esté en pie, que las puertas se abran y se cierren, que el aire acondicionado funcione, etc. siendo poco confiable
fuente