ESCUELA: Ingeniera de Sistemas CURSO: Anlisis y Diseo de Sistemas DOCENTE: Ing. Daniel Maza. TEMA: Caja Negra Vs Caja Blanca SEMESTRE: 2013 - II
Marco terico
Caja negra: En teora de sistemas y fsica, se denomina caja negra a aquel elemento que es estudiado desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin tener en cuenta su funcionamiento interno. En otras palabras, de una caja negra nos interesar su forma de interactuar con el medio que le rodea (en ocasiones, otros elementos que tambin podran ser cajas negras) entendiendo qu es lo que hace, pero sin dar importancia a cmo lo hace. Por tanto, de una caja negra deben estar muy bien definidas sus entradas y salidas, es decir, su interfaz; en cambio, no se precisa definir ni conocer los detalles internos de su funcionamiento.
Caja Blanca: En programacin, se denomina cajas blancas a un tipo de pruebas de software que se realiza sobre las funciones internas de un mdulo. As como las pruebas de caja negra ejercitan los requisitos funcionales desde el exterior del mdulo, las de caja blanca estn dirigidas a las funciones internas. Entre las tcnicas usadas se encuentran; la cobertura de caminos (pruebas que hagan que se recorran todos los posibles caminos de ejecucin), pruebas sobre las expresiones lgico-aritmticas, pruebas de camino de datos (definicin- uso de variables), comprobacin de bucles (se verifican los bucles para 0,1 e interacciones, y luego para las interacciones mximas, mximas menos uno y ms uno).
Caja Negra VS Caja Blanca Anlisis de caja negra Es que elemento que es estudiado desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin tener en cuenta su funcionamiento interno. Anlisis caja blanca Esta prueba se centra en los detalles procedimentales del software, por lo que su diseo est fuertemente llegado al cdigo fuente. El testeador escoge distintos valores de entrada para examinar cada uno de los posibles flujos de ejecucin del programa y cerciorarse de que se devuelven los valores de salida adecuados. Ejemplo Trabajo en equipo. Caja negra versus Caja blanca. Usted tiene 48 alumnos y decide ponerles un trabajo, se plantea dos opciones: 1. Los alumnos realizan los trabajos de forma individual. 2. Formar 8 grupos de 6 alumnos y que hagan el trabajo en grupo. Qu opcin requerir ms esfuerzo para el profesor? Hace unos das comentaba este tema con un colega de mi departamento; mi compaero estaba plenamente convencido de que requiere menos esfuerzo para el profesor tener 8 trabajos en grupo que 48 individuales; por mi parte sostena lo contrario. Mi colega es un profesor bastante profesional; por tanto tengo que suponer que tiene razn; sin embargo mi experiencia es justamente la contraria. No hemos seguido profundizando en el debate, pero creo que puedo tener una explicacin por la que podemos tener razn los dos: el enfoque caja negra frente a caja blanca. El enfoque de caja negra para el trabajo en grupo. Se centra en el resultado del trabajo de los alumnos; evidentemente corregir 48 trabajos debe suponer ms esfuerzo que corregir 8, aunque estos ltimos sean ms completos y complejos que los individuales. Este planteamiento se centra en la calidad del trabajo conseguido y a partir del mismo deducir el esfuerzo realizado por los alumnos. El enfoque de caja blanca para el trabajo en grupo. Se centra en la participacin del profesor en el grupo de trabajo; en ese momento el rol del profesor es de asesor, supervisor, gua y suele actuar como un miembro ms del equipo, eso s, un miembro del equipo con mucha ms experiencia que el resto. Finalizado el trabajo en grupo su rol cambia a evaluador; en esa evaluacin se tiene en cuenta la calidad del trabajo, su planificacin, el reparto de tareas, la coordinacin, las responsabilidades asumidas por cada miembro del equipo, etc. En este planteamiento el profesor tiene que dedicar un tiempo considerable a cada grupo de trabajo; por tanto requiere ms esfuerzo atender a 8 grupos de 6 personas que limitarse a evaluar los 48 trabajos individuales Ahora s, la parte esperada, Cul es mejor? Sera injusto decir que uno es mejor que el otro, ya que aunque en cierto punto pueden revisar casi lo mismo, son ms un complemento, ya que con Caja Negra revisamos los resultados de una funcin, con Caja Blanca revisamos como se llegan a obtener esos resultados. Por lo tanto deberamos de utilizar ambas herramientas y hacer que un producto salga con calidad para ser entregado a nuestros clientes de la mejor manera. Son tcnicas para hacer Verificacin y Validacin de Software, en otras palabras, hacer Pruebas de Software. Si hacemos analoga entre el tipo de prueba y su nombre textual, imagina la caja Negra como una caja en la que no puedes ver lo que hay dentro. E imagina la caja Blanca como una caja en la que s puedes ver lo que hay dentro. En Pruebas de Caja Negra, solo dispones del Ejecutable, el DLL, el JAR, el Lib, el Bin, o cualquier archivo ejecutable (que no sea cdigo fuente) al cual deseas hacerle las pruebas. Solo le proporcionas las entradas y verificas la salida. No te preocupas por lo que el ejecutable haga internamente, ya que no tienes acceso al cdigo fuente del ejecutable. Solo verificas que la salida es la esperada segn los requerimientos bajo los cuales el ejecutable fue implementado. A diferencia, en Pruebas de Caja Blanca, aqu si dispones del cdigo fuente para hacer tus verificaciones y validaciones conforme a los requerimientos. En este tipo de pruebas si puedes utilizar otros recursos como puede ser el Debugging. En pruebas de Caja Blanca, incluso, puedes proveer t mismo la solucin a cualquier desperfecto que te encuentres en el cdigo a la hora de probar, o reportar a los desarrolladores la solucin al desperfecto y no solo la existencia del mismo. Ventajas y desventajas: - Para Caja Negra requieres menos habilidad tcnica, menos tiempo y menos herramientas. Por ende, menos costo. Pero solo te permite detectar errores y fallos pero no te acerca a la solucin de stos. - Para Caja Blanca requieres ms habilidad tcnica (en especfico, habilidad con la tecnologa con la que se implement lo que se est probando), ms tiempo (porque son ms rigurosas) y ms herramientas (requieres IDE's ms poderosos, debuggers, ambientes de pruebas, etc). Pero, a cambio, te provee la solucin a los desperfectos que pueden encontrarse durante la fase de pruebas.