2012-03-27 8 views
17

¿Las "Pruebas unitarias" se incluyen en las pruebas de caja blanca o caja negra? ¿O es un tipo de prueba diferente a los otros dos?¿Las "Pruebas unitarias" corresponden a las pruebas de caja blanca o caja negra?

+0

Honestamente, el artículo de wikipedia sobre las pruebas de caja blanca lo explica bastante bien. –

+3

He notado que las pruebas de unidad de caja blanca para el código que a menudo se refactoriza crean mucho trabajo para simplemente mantener las pruebas por sí mismas. – airboss

Respuesta

18

Creo que esto article by Kent Beck refiriéndose más a TDD y a las pruebas de unidad lo resume bastante bien. Básicamente, depende de cómo se escriban las pruebas *. Here is another article on the subject que podría ayudar a aclarar las cosas.

* Si está probando desde su aplicación, entonces es whitebox. Si lo está probando como si un extraño hiciera las llamadas solo a su API pública, entonces es Blackbox.

+3

En ambos casos, son pruebas de Whitebox. Parece que muchos confunden las definiciones de ambos tipos de pruebas. La prueba unitaria simplemente prueba cada clase de unidad de su "código". Es una prueba de Whitebox. La prueba de Blackbox prueba la funcionalidad general de su "aplicación". Puede escribir de cualquier forma y automatizarlo si lo desea. Pero las pruebas unitarias ... bueno, siempre es prueba de whitebox :) –

+3

Si escribe pruebas unitarias después del código y * con la ayuda/sobre la base * del código - las pruebas unitarias son pruebas de caja blanca. Si escribe pruebas unitarias * antes del código * o escribe pruebas unitarias según la especificación, las pruebas unitarias son pruebas de la caja posterior. – hellboy

9

El criterio habitual para las pruebas de caja blanca es la ruta de ejecución y la sensibilización de la estructura de datos. A veces se los llama "prueba de ramificación", "prueba de ruta", "prueba de flujo de datos". Vea Wikipedia en las pruebas de caja blanca.

Es decir, la prueba unitaria se refiere al nivel en el que se realiza la prueba en la estructura del sistema, mientras que las pruebas de caja blanca y negra se refieren a si, en cualquier nivel, el enfoque de prueba se basa en diseño interno o solo en la especificación externa de la unidad.

Si su prueba unitaria sensibiliza todas las rutas de ejecución y estructuras de datos en la unidad que está probando, entonces es una prueba de caja blanca. Sin embargo, si su unidad no puede sensibilizar la mayoría de las rutas y estructuras de datos de la unidad, entonces no puede pretender ser una prueba de caja blanca.

Tenga en cuenta que, en algunas organizaciones, las pruebas unitarias se denominan pruebas de caja blanca, independientemente de si la prueba de unidad se basa en el diseño de la unidad y no solo en su API. Lo mejor es no discutir con tu jefe sobre este punto.

Cuestiones relacionadas