Recientemente tuve mi examen final para un curso de ingeniería de software para mi programa de maestría y una de las preguntas en el examen fue la siguiente:
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
En mis 7 años de experiencia en desarrollo de software, las pruebas unitarias siempre han tenido un enfoque de caja blanca. El probador siempre ha tenido pleno conocimiento de la implementación de la unidad al escribir las pruebas. Las pruebas de caja negra siempre llegaron más tarde en las formas de integración, sistema y pruebas de aceptación.
Sin embargo, la respuesta correcta al examen (según el profesor) es que las pruebas unitarias pueden ser pruebas de caja blanca o negra.
He investigado un poco, y parece que muchos casos de "prueba de unidad de caja negra" se utilizan para describir un enfoque de prueba primero donde las pruebas de unidad se escriben antes que el código. Sin embargo, en mi opinión, esto sigue siendo una prueba de caja blanca. Si bien la implementación aún no existe, quienquiera que esté escribiendo la prueba generalmente tiene una idea bastante buena sobre cómo se implementará el código fuente.
¿Puede alguien explicarme cómo funciona la prueba de unidad de caja negra (si realmente es una cosa) y cómo difiere de la prueba de unidad de caja blanca?
fuente
While the implementation does not yet exist, whoever is writing the test generally has a pretty good idea about how the source code is going to be implemented.
- Sí, pero la prueba en sí no. La prueba de caja blanca significa probar algo interno al método o clase, como el valor de una variable. No significa que el escritor de pruebas sepa cómo se ve el código bajo prueba.