Mogyorodi, Gary. Requirements-Based Testing - Cause-Effect Graphing. En: Testing Experience, The Magazine for Professional Testers (en línea) Marzo 2009, vol. 5, Berlin, Alemania. p. 40 - 44. (citado 27 abril 2009). Disponible en Internet: http://www.testingexperience.com
La revisión de ambigüedades es utilizada, durante el desarrollo de software, en la fase de especificación de requerimientos para identificar ambigüedades en los requerimientos funcionales. La intención es identificar lo que no es claro, conciso o lo que es ambiguo en los requerimientos. La eliminación de dichas ambigüedades mejora la calidad de esos requerimientos. El gráfico de Causa-Efecto es una técnica de diseño de casos de prueba que es realizada una vez que ha sido revisada la ambigüedad de los requerimientos, seguida de una revisión de su contenido. Es necesario revisar el contenido de los requerimientos para asegurarnos que son correctos y completos. La técnica del gráfico de Causa-Efecto deriva el mínimo número de casos de prueba para cubrir el 100% de la funcionalidad de los requerimientos a fin de mejorar la calidad de cobertura de un test. Este artículo trata la segunda técnica del proceso RBT: el gráfico Causa-Efecto.
Hay muchas técnicas para el diseño de casos de prueba, pero pocas nos aseguran que los casos de prueba proveerán una cobertura del 100% de la funcionalidad. La técnica del gráfico de Causa-Efecto comienza a partir del conjunto de requerimientos, y determina el mínimo número de casos de prueba para cubrir completamente los requerimientos.
· El autor de los requerimientos verifica que esta de acuerdo en como fueron trasladados los requerimientos a casos de prueba. · Los expertos en el dominio de los requerimientos revisan los casos de prueba a fin de determinar la respuesta a la siguiente pregunta: ¿Estamos construyendo el sistema correcto? · Los desarrolladores revisan los casos de prueba para clarificar su entendimiento de los requerimientos. Los desarrolladores aprenderán acerca de lo que se pondrá a prueba, pudiendo así desarrollar un software válido. Realizando estas revisiones, todos los involucrados en el equipo de proyecto podrán obtener el mismo entendimiento de lo que se va a construir.
Mientras que estas técnicas generan una combinación de casos de prueba, a menudo no están a la altura de ofrecer plena cobertura funcional. Muy seguido el flujo normal de la funcionalidad se superpone en casos de prueba redundantes, mientras que las excepciones y condiciones de error no son sometidas al test.
La técnica del gráfico de Causa-Efecto tiene también la capacidad para detectar defectos que se cancelan unos con otros, y la habilidad para detectar defectos escondidos por otras cosas que marchan bien. Estos son temas avanzados que no se tratarán en el artículo. El punto de inicio del gráfico de Causa-Efecto es el documento de requerimientos. Los requerimientos describen "que" intentamos que el sistema haga. Los requerimientos pueden describir sistemas de tiempo real, eventos, diagramas de transición de estados, sistemas basados en datos, sistemas orientados a objetos, estándares de interfaz gráfica de usuario, etc. Cualquier tipo de lógica puede ser modelada utilizando el diagrama de Causa-Efecto. Cada causa (o entrada) en el requerimiento es expresada en el gráfico de Causa-Efecto como una condición, que puede ser verdadera o falsa. Cada efecto (o salida) es expresada como una condición, que puede ser, también, verdadera o falsa.
Tengo un requerimiento que dice que: "Si A o B, entonces C". Luego, siguiendo las reglas indicadas para este requerimiento: Si A es verdadero y B es verdadero, entonces C es verdadero. Si A es verdadero y B es falso, entonces C es verdadero. Si A es falso y B es verdadero, entonces C es verdadero. Si A es falso y B es falso, entonces C es falso. El gráfico de Causa-Efecto que representa este requerimiento es el de la siguiente figura. El gráfico de Causa-Efecto muestra la relación entre las causas y los efectos. ![]() En la anterior figura, A, B y C son llamados nodos. Los nodos A y B son las causas, mientras que el nodo C es un efecto. Cada nodo puede tener una condición verdadera o falsa. Las líneas, llamadas vectores, conectan los nodos causa A y B con el nodo efecto C. Todos los requerimientos son transformados en nodos y relaciones en el gráfico de Causa-Efecto. Hay cuatro posibles relaciones entre los nodos, y son indicadas siguiendo los siguientes símbolos: 1) Donde A nos lleva a C, una linea recta ----------------------. 2) Donde A o B nos llevan a C, una V en la intersección significa "o". 3) Donde A y B nos llevan a C, una V invertida en la intersección significa "y". 4) Una tilde ~ significa "no" como en "Si no A, entonces C".
![]() Dado que hay dos entradas para este ejemplo, hay 2 x 2= 4 combinaciones de entradas que pueden ser seleccionadas para los casos de prueba. De la tabla de decisión, notar que hay sólo tres casos de prueba. Sin embargo, estos tres casos de prueba cubren el 100% de la funcionalidad para este ejemplo. La cuarta combinación de entradas (A = verdadero y B = verdadero) no agregan cobertura funcional adicional, y es un caso de prueba redundante. Cada relación es testeada con la correcta combinación de causas de modo que todos los defectos están cubiertos para esa relación, resultando en una cobertura del 100%.
![]() Para paquetes que la gente envía a América del Sur en fechas no incluidas entre el 1ro de Diciembre al 24 Diciembre de cada año, el sistema aplica los recargos en la tabla 2 además de los gastos de envío estándar de u$s5 (para este ejemplo la tabla 2 ha sido excluida). El test designer traslada los requerimientos al diagrama de causa efecto mostrado en la siguiente figura (2). ![]() El nodo I10 representa el estado en que el ítem es enviado a América del Sur Y el ítem postal es un paquete Y el ítem es enviado entre el 1ro de Diciembre y el 24 de Diciembre. Hay un gran número de estados enmascarados en el diagrama Causa-Efecto. Los estados enmascarados definen restricciones en el sistema a testear. Como un ejemplo, la máscara (Argentina, Alto_peso, Bajo_peso, 15_kilos) significa que cuando Argentina es el país, entonces las divisiones de peso asociadas con Brazil son entradas irrelevantes. El gráfico de Causa-Efecto se traduce en la siguiente tabla de decisión (salida del programa BenderRBT): ![]() Cada columna en la figura 5 representa un caso de prueba. Las entradas son listadas bajo las "causas", mientras que las salidas bajo los "efectos". Cada valor en la matriz puede ser Verdadero (T / True), Falso (F / False) o "enmascadado" (una entrada enmascarada es irrelevante a ese caso de prueba). Cada columna representa una única combinación de entradas. Los siguientes 8 casos de prueba se obtienen de los requerimientos de Regulación Postal utilizando la técnica del diagrama de Causa-Efecto. TEST #1 -- La Regulación Postal Causa(s): El ítem NO es enviado a América del Sur. Efecto(s): Estas condiciones están fuera del alcance para el problema de la Regulación Fiscal. TEST #2 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal NO es un paquete. Efecto(s): Estas condiciones están fuera del alcance para el problema de la Regulación Fiscal. TEST #3 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem NO fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. Efecto(s): Ver tabla 2 (fuera del alcance de este artículo) para recargas postales. TEST #4 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. El país es Argentina. Efecto(s): El recargo postal es de u$s 11. TEST #5 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. El país NO es Argentina El país NO es Brasil. Efecto(s): El recargo postal es de u$s 15. TEST #6 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. El país es Brasil. El ítem pesa más que 15 kilogramos. Efecto(s): El recargo postal es de u$s 21. TEST #7 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. El país es Brasil. El ítem pesa 15 kilogramos. Efecto(s): El recargo postal es de u$s 19. TEST #8 -- La Regulación Postal Causa(s): El ítem es enviado a América del Sur. El ítem postal es un paquete. El ítem fue enviado entre el 1ro de Diciembre y el 24 de Diciembre. El país es Brasil. El ítem pesa menos que 15 kilogramos. Efecto(s): El recargo postal es de u$s 17. En Resumen La figura 5 muestra que hay 8 entradas para el requerimiento de Regulación Postal (por ejemplo, Continente, Tipo_Item_Postal, Fechas, Argentina, Brasil, Alto_Peso, Bajo_Peso). Es interesante notar que con 8 entradas, hay 28 = 256 combinaciones de entradas de las cuales pueden ser seleccionados los casos de prueba. La técnica del gráfico Causa-Efecto derivó sólo 8 casos de prueba que cubren el 100% de la funcionalidad descrita en el requerimiento. Ningún otro caso de prueba es necesario para mejorar la cobertura funcional. Casos de prueba adicionales proveerán una cobertura redundante, ya suministrada por una porción de cada uno de los 8 casos de prueba originales.
El gráfico de Causa-Efecto, en conjunto con una poderosa herramienta de análisis como lo es BenderRBT , provee un riguroso, coherente y rentable enfoque para obtener casos de prueba. Dado que la técnica determina el mínimo número de casos de prueba, el esfuerzo de testeo se reduce, y el test designer puede estar confiado de que una vez que los casos de prueba se ejecutaron exitosamente, el testing está completo, y ninguna funcionalidad sin testear será puesta en producción. Notas: Un requerimiento funcional, especifica lo que el sistema debería ser capaz de hacer, en términos que son significativos para sus usuarios. (1) Test Case Designer (2) Continent = Continente / Postal Item Type = Tipo de Item Postal / Parcels = Paquete / Surcharge = Recargo / Weight High = Alto peso / Weight Low = Bajo Peso / 33 15 kg / See_table = ver_tabla / Dates =»Pounds Fechas |
Creo que todo pasa por alguna razón. La gente cambia para que puedas aprender a dejarlos ir. Las cosas van mal para que puedas apreciarlas cuando están bien. Crees mentiras para que eventualmente aprendas a no confiar en nadie que no sea tu mismo, y a veces, las cosas buenas fracasan para que otras mejores puedan venir.
martes, 8 de marzo de 2011
Testing Basado en Requerimientos - RBT
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario