41
1 Análisis y Diseño Orientado a Objetos usando UML y Patrones Dr. Ricardo R. Quintero Meza (Test Cases a partir de Use Cases)

Test cases a partir de use cases

Embed Size (px)

DESCRIPTION

Test cases a partir de use cases

Citation preview

  • *Anlisis y Diseo Orientado a Objetos usando UML y Patrones

    Dr. Ricardo R. Quintero Meza

    (Test Cases a partir de Use Cases)

  • IntroduccinUn requisito se define como una condicin o capacidad la cual un sistema debe satisfacerAlgunos ejemplos de requisitos pueden ser:Un capacidad solicitada por un cliente o usuario para resolver un problema o alcanzar un objetivo.Una capacidad que debe poseer un sistema para satisfacer un contrato, un estndar, una especificacin, regulacin o algn otro documento formalmente impuesto.Una restriccin impuesta por un stakeholder.*

  • La pirmide de los requisitos*Necesidades de los stakeholdersRequisitos a diferente nivel de detalle

  • Trazabilidad entre los requisitosLa Trazabilidad es una tcnica que provee una relacin entre los diferentes niveles de requisitos del sistema.La tcnica ayuda a determinar el origen de cualquier requisito.Las tpicas relaciones de Trazabilidad son:Cada necesidad se mapea a caractersticas.Las caractersticas se mapean a CU y requisitos suplementarios.*

  • Trazabilidad en la pirmide de los requisitos*

  • Roles que juega la TrazabilidadVerificar que una implementacin satisface todos los requisitos: todo lo que el cliente solicit fue implementado.Verificar que una aplicacin hace slo lo que fue solicitado: no implementar algo que el cliente nunca pidi.Ayudar con la gestin de cambios: cuando algn requisito cambia, deseamos conocer cuales casos de prueba debern volver a hacerse para probar el cambio.*

  • Trazabilidad en herramientas CASE*

  • Casos de Uso, Casos de Prueba y TrazabilidadEl propsito de un CU es facilitar el acuerdo entre desarrolladores, clientes y usuarios sobre lo que el sistema deber hacer.Es un contrato entre desarrolladores y clientes.A partir de los CU se pueden disear los Casos de Prueba (CP o Test cases)*

  • Diagrama de CU*

  • Formato General de un CUEl formato general de un CU es:Breve descripcinFlujo de Eventos.Flujo BsicoFlujo Alternativo 1Flujo Alternativo 2 Requisitos especialesPrecondicionesPostcondicionesPuntos de ExtensinDiagrama de ContextoDiagrama de Actividad*

  • Ejemplo de CU (de IBM)-Happy pathB1 El Usuario captura la direccin web en el navegador. El Sistema despliega la pgina de LoginB2 El Usuario captura una direccin de e-mail y el password. El Sistema autoriza la entrada, muestra la pgina principal y solicita un string de bsqueda.B3 El Usuario captura el string de bsqueda-el nombre parcial de un libro. El Sistema regresa todos los libros que empatan con el criterio de bsquedaB4 El Usuario selecciona un libro. El Sistema presenta informacin detallada del libro*

  • Ejemplo de CU (de IBM)-Happy pathB5 El Usuario agrega el libro a la cesta de compras. El Sistema muestra el contenido de la cesta de comprasB6 El Usuario selecciona la opcin Proceder a pagar. El Sistema solicita la confirmacin de la direccin destino.B7 El Usuario confirma la direccin destino. El Sistema presenta las opciones de embarqueB8 El Usuario selecciona la opcin de embarque. El Sistema pide cual tarjeta de crdito se utilizar.B9 El Usuario confirma la tarjeta de crdito que est almacenada en el sistema. El Sistema pide la confirmacin final para colocar la orden.B10 El Usuario coloca la orden. El Sistema regresa el nmero de confirmacin.*

  • Ejemplo de CU (de IBM)-Flujos alternativos*

    A1Usuario no registradoA2Password invlidoA3No hay libro que empate el criterio de bsquedaA4Declinar por un libroA5Continuar comprando despus de guardar el libro en la cesta de comprasA6Capturar una nueva direccinA7Capturar una nueva tarjeta de crditoA8Cancelar la orden

  • Derivando los Flujos Alternativos-Diagrama de Actividad*

  • Detectando Happy Path y Flujos Alternativos en el Diagrama de ActividadEl Flujo Bsico ser la lnea recta en el Diagrama de Actividad.Los Flujos Alternativos sern los ciclos que van hacia adelante y hacia atrs en el Diagrama de Actividad.*

  • Cmo crear los Casos de Prueba a partir de los Casos de Uso?Antes de crear el Caso de Prueba, se necesita identificar todos los escenarios del Caso de Uso.Un escenario es una instancia del CU. Describe una ruta especfica a travs del flujo de eventos.Los escenarios se pueden representar mediante un grafo.*

  • Encontrando escenarios en el CU*

  • Encontrando escenarios en el CUExiste un escenario por:Cada flujo alternativo y Cada combinacin de flujos alternativosExisten, entonces, ms escenarios que flujos alternativos (por ejemplo existe uno por A1, otro por A2 y otro por la combinacin de ambos).Los escenarios se pueden describir como secuencias de flujos alternativos:SC16: A2,A2, A6*

  • Qu hacer con ciclos infinitos?* Hacer el flujo bsico una vez.Hacer el ciclo una vezDespus hacer el ciclo una segunda vez.Si el programa funciona bien para ambos ejemplos de ciclos puedes suponer que lo har para todos los ciclos.

  • Explosin combinatoria de escenariosPara el CU ejemplo se tiene 1 ciclo bsico y 8 ciclos alternativos. 4 de ellos van hacia atrs y 4 hacia adelante.Si se intenta describir todos las combinaciones de CU se tendrn 4,096 escenarios. Obviamente no se necesita hacerlos todos.*

  • Explosin combinatoria de escenariosSelecciona aquellos que representan un subconjunto razonable de estos 4,096 escenarios.Los razonables son:El Flujo bsico.Los Flujos alternativosY combinaciones razonables de flujos alternativos (por ejemplo flujos alternativos distantes no valdra la pena combinar A1 y A7- pero flujos cercanos si A1 y A2-).*

  • Escenarios seleccionados para el ejemplo*

    SC1 Flujo BsicoSC9 A8SC2 A1SC10 A1, A2SC3 A2SC11 A3,A4SC4 A3SC12 A4, A5SC5 A4SC13 A3, A5SC6 A5SC14 A6, A7SC7 A6SC15 A7, A8SC8 A7

  • De los escenarios a los Casos de PruebaYa que se tienen los escenarios, ahora se pueden obtener los CP mediante los siguientes pasos:Identifica las variables para cada paso del CUIdentifica opciones diferentes significativas para cada variableCombina las opciones a ser probadas en los CP.Asigna valores a las variables.*

  • 1.- Identificar las variables para cada paso del CUNecesitas identificar todas las variables en todos los pasos de un escenario dado.Ej.- Si en un paso el usuario captura su ID y Password, existen dos variables.Ej.- Una variable puede ser la seleccin de un usuario (Salvar cambios, Cancelar).Para el ejemplo:B2: Dos variables string: e-mail y passwordB3: El string de bsquedaB4: El libro seleccionado a partir de la lista que regresa el sistema.B8: La opcin de embarque (Amazon ofrece hasta cuatro alternativas)

    *

  • 2.-Identificar opciones significativas diferentes para cada variableLas Opciones significativas diferentes sern aquellas que disparan diferentes comportamientos del sistema.Por ejemplo si seleccionamos un ID de usuario de 6 a 10 caracteres, las siguientes entradas son significativamente diferentes:Alex breve, esperamos un mensaje de error.Alexandria una entrada vlida.Alexandrena grande, esperamos un mensaje de advertencia.Sin embargo Alexandria y JohnGordon no son significativamente diferentes, causaran la misma reaccin del sistema.*

  • 2.-()Opciones significativas diferentes Lneas guaUna opcin es significativamente diferente si:Dispara un flujo diferente del proceso (usualmente un flujo alternativo). Ej.- Un password invlido disparara A2Dispara un mensaje de error diferente.Ej.- e-mail largo, el mensaje email no mayor a 50 caracteresEj.- e-mail que no tiene la @, el mensaje email invlidoCausa una apariencia diferente de la IU.Ej.- Si el mtodo de pago es con tarjeta de crdito, campos para capturar el nmero de la tarjeta de crdito, fecha de expiracin y nombre del tarjetahabiente.Causa que una seleccin diferente est disponible en los drop-downs.Ej.- En la pantalla de registro se muestran dos listas drop-down: pais y estado. Dependiendo del pas se mostraran valores distintos (USA, Canada y otros pases)*

  • 2.-()Opciones significativas diferentes Lneas guaUna opcin es significativamente diferente si:Es una entrada a alguna regla de negocio.Ej.- Suponga la regla Si la orden se coloca despus de las 6 pm y el usuario selecciona embarque nocturno el mensaje mostrar que el libro llegar despus de maana. Se podran tener 2 opciones: (1) Embarque nocturno, orden colocada despus de las 6 pm (2) Embarque nocturno, orden colocada antes de las 6 pm.Una condicin de frontera.Ej.- Si el password es de 6 caracteres, probar con 5 y 6 caracteres*

  • 2.-()Opciones significativas diferentes Lneas guaUna opcin es significativamente diferente si:Algo est cambiado VS valor por default.Ej.- En la pantalla de pago a crdito el nombre del tarjetahabiente se rellena con el nombre de la persona que porta la tarjeta, esto crea dos opciones separadas: (1) Mantener el nombre o (2) Cambiar el nombre por uno diferente.El formato de la entrada no est claramente definido y puede ser interpretado por el usuario.Ej.- Los nmeros telefnicos se pueden escribir distinto por diferentes personas: (973)1234567, 973-123-4567, 973 123 4567Cuando casos regulares difieren en pases distintos:Ej.- La fecha de expiracin de la tarjeta puede tener un formato distinto en USA y Europa*

  • 2.-()Opciones significativas diferentes Lneas guaUna opcin es significativamente diferente si:Si se estn probando nmeros se podran considerar las siguientes opciones:Nmeros regulares, razonables desde el punto de vista de la aplicacin actual.El ceroNmeros negativosUn nmero con 2 decimalesEl mayor nmero que se pueda capturar (9999999999 tantos 9s como se puedan capturar)Aspecto importante: documentar la longitud mxima y mnima de los nmeros antes de hacer las pruebas.Dnde documentarlos? Candidatos: seccin Requisitos Especiales del CU, glosario, diccionario de datos un documento especial para ello.

    *

  • 2.- Opciones identificadas para variables en el Flujo Bsico del Ejemplo*

    PasoVariableOpciones a probarB1WebsiteURL actualB2EmailRegularBlankMin allowed (1 char)Max allowed (50 char)One more allowed (51 char)Very long (257 char)Invalid (no @ sign)B2PasswordRegularBlankToo short (5 char)Min allowed (6 char)Max allowed (10 char)One more than allowed (11 char)Very long (257 char)B3Search stringRegularBlankMin allowed (1 char)Max allowed (300 char)One more than allowed (301 char)B4SelectionFirst selectionLast selection

  • 2.- Opciones identificadas para variables en el Flujo Bsico del Ejemplo*

    PasoVariableOpciones a probarB5Action selectionAdd to shopping cartB6Action selectionProceed to checkoutB7Shipping addressConfirm the address on fileB8Shipping method5 days3 days2 daysOvernightB9Payment methodConfirm the credit card on fileB10Action selectionPlace an order

  • 3.- Combinar las opciones a ser probadas en los Casos de PruebaLas opciones identificadas en el paso anterior ahora se combinarn en la secuencia de pasos del Caso de Prueba.Esto se facilita mediante una representacin grfica de las opciones a probar*

  • 3.- Combinar las opciones a ser probadas en los Casos de Prueba-Diagrama grfico*Errores que desvan del flujo bsico a flujos alternativosLas opciones de error se pueden omitir de los casos de prueba porque no forman parte del flujo bsico, se probarn en otro CP

  • 3.- Crear los Casos de Prueba conectando crculos *

  • 3.- Creando los Casos de PruebaPara crear el primer CP seleccionas y conectas cualquier opcin.Al crear el segundo CP seleccionas una de las opciones que no se utiliz en el primero.Continua agregando CP hasta que todos los nodos del grafo se cubren.Generalmente se necesitarn de 4 a 6 CP para cubrir todas las opciones que deberan probarse. Aunque tome en cuenta que se pudieran tener situaciones especficas.*

  • 3.- Casos de Prueba Representacin Matricial*

    PasoVariable o seleccinCP1CP2CP3CP4B1WebsiteActual URLActual URLActual URLActual URLB2EmailRegularMin allowed (1 char)Max allowed (50 char)RegularB2PasswordRegularMin allowed (6 char)Max allowed (10 char)Min allowed (6 char)B3Search stringRegularMin allowed (1 char)Max allowed (300 char)RegularB4SelectionFirst selectionLast selectionFirst selectionLast selectionB5Action selectionAdd to shopping cartAdd to shopping cartAdd to shopping cartAdd to shopping cart

  • 3.- Casos de Prueba Representacin Matricial*

    PasoVariable o seleccinCP1CP2CP3CP4B6Action selectionProceed to checkoutProceed to checkoutProceed to checkoutProceed to checkoutB7Shipping addressConfirm the address on fileConfirm the address on fileConfirm the address on fileConfirm the address on fileB8Shipping method5 days3 days2 daysOvernightB9Payment methodConfirm the credit card on fileConfirm the credit card on fileConfirm the credit card on fileConfirm the credit card on fileB10Action selectionAction selectionAction selectionAction selectionAction selection

  • 4.- Asignar valores a las variablesSe reemplazan los espacios como Apellido muy largo o Nmero telefnico muy largo con valores como Georgiamitsopolis o 011-48(242)425-3456 ext. 1234Adems se dividen los CP de la matriz anterior, creando una tabla separada para cada CP dando valores a las variables y dejando espacios para que el tester aplique la prueba.*

  • 4.- Tabla para el tester- 1 CP*

    PasoVariable o seleccinValorResultado esperadoResultado actualPas/FallComentariosB1Websitewww.amazon.comLogon [email protected] ScreenB3Search stringUMLList of booksB4Book selectionFirst selectionBook detailsB5Action selectionAdd to shopping cartCart contentsB6Action selectionProceed to checkoutPrompt for Address

  • 4.- Tabla para el tester- 1 CP*

    PasoVariable o seleccinValorResultado esperadoResultado actualPas/FallComentariosB7Shipping addressConfirm the address on filePrompt for paymentB8Shipping method5 daysPrompt for paymentB9Payment methodConfirm the credit card on filePrompt for confirmationB10Action selectionPlace en orderOrder number

  • Ubicacin de los CP respecto al UP*

    *