¿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?
Respuesta
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.
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 :) –
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
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.
- 1. TDD - ¿Refactorizar en caja negra?
- 2. ¿Qué pruebas con las pruebas unitarias?
- 3. ¿Pruebas unitarias o pruebas funcionales?
- 4. pruebas unitarias con las dependencias entre las pruebas
- 5. Cuándo usar las pruebas unitarias?
- 6. ¿Pruebas unitarias o pruebas de integración?
- 7. Maven: pruebas de integración por separado de las pruebas unitarias
- 8. ¿Hay pruebas contundentes del ROI de las pruebas unitarias?
- 9. ¿Separa las pruebas unitarias de sus pruebas de integración?
- 10. Pruebas unitarias: cómo hacerlo?
- 11. Pruebas unitarias en QTestLib - ejecución de pruebas individuales/pruebas en clase/todas las pruebas
- 12. marcos de las pruebas unitarias para C
- 13. ¿Las pruebas unitarias usan el registro?
- 14. Explique las pruebas unitarias por favor
- 15. Pruebas unitarias: ¿codificación en las interfaces?
- 16. ¿Cómo deberían documentarse las pruebas unitarias?
- 17. ¿Deberían todas las pruebas unitarias ser exitosas?
- 18. ¿Cómo escribo las pruebas unitarias en PHP?
- 19. Pruebas unitarias para las bibliotecas núcleo jQuery
- 20. Pruebas unitarias de métodos privados en Xcode
- 21. ¿Por qué debería molestarme con las pruebas unitarias si solo puedo usar las pruebas de integración?
- 22. Prueba de caja blanca en Javascript: ¿cómo lidiar con la privacidad?
- 23. ¿Los contratos de código realmente ayudan a las pruebas unitarias?
- 24. ¿Cómo se separan las pruebas unitarias de las pruebas de integración en Visual Studio?
- 25. Pruebas unitarias - videos o podcasts
- 26. Pruebas de integración vs. Pruebas unitarias
- 27. ¿Por qué las pruebas funcionales no son suficientes? ¿Qué ofrecen las pruebas unitarias?
- 28. ¿Cómo deshabilitar las traducciones durante las pruebas unitarias en django?
- 29. Confusión: ¿omite las pruebas funcionales que cubren el mismo terreno que las pruebas unitarias?
- 30. ¿Qué son las pruebas unitarias y las pruebas de integración, y qué otros tipos de pruebas debo conocer?
Honestamente, el artículo de wikipedia sobre las pruebas de caja blanca lo explica bastante bien. –
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