Sie sind auf Seite 1von 46

Pruebas funcionales

Pruebas funcionales
Las tcnicas de prueba de comportamiento, tambin llamadas funcionales o de caja negra, prueban el comportamiento observable exterior del sistema. Este tipo de pruebas adoptan la perspectiva del usuario. Los casos de prueba pueden derivarse de los requerimientos, especificados en distintos niveles de abstraccin. Ventajas:
Pueden planificarse en forma temprana Ayudan a comprender los riesgos del proyecto No requieren conocimiento de las estructuras internas

Pruebas funcionales
Caractersticas
Se utiliza la especificacin del componente. El componente se ve como una Caja Negra. Se estudia el comportamiento a partir de entradas y salidas.

Pruebas funcionales
Tcnicas de prueba funcional:
Particin equivalente Anlisis de valores lmite Basados en casos de uso Tablas de decisin Transicin de estados Combinacin de pares (pairwise)

Pruebas funcionales
Problema del programa Triangulo
Definido por Gerald Weimberg y usado desde 1969. Fue publicado por Glenford Myers en el primer libro sobre prueba de software: The art of software testing en 1979. Lee tres nmeros (originalmente de una tarjeta perforada) y los interpreta como los lados de un tringulo. El programa luego indica si se trata de un triangulo escaleno, issceles o equilatero.

Pruebas funcionales
Posible solucin:
1. Caso vlido para equiltero. 2. Caso vlido para escaleno. 3. Tres casos vlidos para issceles cambiando los lados iguales. 4. Casos para uno, dos y tres lados cero. 5. Caso para un lado negativo. 6. Caso para cuando la suma de dos lados es igual al tercero y tres permutaciones. 7. Caso para cuando la suma de dos lados es menor al tercero y tres permutaciones. 8. No enteros. 9. Nmero de incorrecto de valores, pocos o demasiados.

Pruebas funcionales
1. {3,4,5} 2. {10,10,10} 3. {3,3,4; 2,6,6; 7,9,7} 4. {0,1,1; 2,0,2; 3,2,0; 0,0,9; 0,8,0; 11,0,0; 0,0,0} 5. {3,4,-2} 6. {1,2,3; 2,5,3; 7,4,3} 7. {1,2,4; 2,6,2; 8,4,2} 8. {N,2,3} 9. {2,4; 4,3,3,6}

Pruebas funcionales
Cuando se disean casos de prueba no podemos darnos el lujo de probar todas las combinaciones posibles. Es necesario contar con un mtodo para seleccionar unos pocos casos de prueba efectivos, que sean representativos del resto del universo posible. La particin de equivalencia y el anlisis de valores lmite son las tcnicas ms utilizadas.

Particin equivalente

Particin equivalente
Se basa en dos consideraciones:
Se debe dividir el dominio de entrada en clases de datos (clases de equivalencia). Se deben crear casos de prueba que descubran clases de errores. Se debe minimizar el nmero total de casos de prueba.

Dos pasos
Identificar las clases de equivalencia. Identificar los casos de prueba.

Particin equivalente
Identificar Clases de Equivalencia (1)
Se examina cada condicin de entrada y se divide en dos o ms grupos. Se identifican dos tipos de clases:
Clases de equivalencia vlidas Clases de equivalencia no vlidas
Condicin de entrada Clases de equivalencia vlidas Clases de equivalencia no vlidas

Particin equivalente
Identificar Clases de Equivalencia (1)
Proceso heurstico (guas):
Rango de valores: una clase vlida y dos no vlidas. Nmero de valores: una clase vlida y dos no vlidas Conjunto de valores de entrada: tantas clases vlidas como valores y una no vlida. Situacin que debe ocurrir: una clase vlida y una no vlida. Si se cree que no todos los elementos de la case se tratan igual, dividir en subclases.

Particin equivalente
Ejemplo: tabla de clases de equivalencia
Programa que suma dos enteros de uno o dos dgitos Entrada Primer nmero Clases vlidas -99 a 99 Clases no vlidas >99 <-99 >99 <-99

Segundo nmero -99 a 99

Particin equivalente
Identificacin de los casos de prueba (2)
Asignar un nmero nico a cada clase de equivalencia. Escribir un caso que cubra tantas clases vlidas no incorporadas como sea posible hasta que se cubran todas las clases de equivalencia vlidas. Escribir un caso que cubra una sola clase no vlida no incorporada hasta que se cubran todas las clases de equivalencia no vlidas.

Particin equivalente
Para aplicar la tcnica no solo deben considerarse los campos individualmente, sino todas los aspectos de la especificacin y acciones que puede realizar el usuario.

Anlisis de valores lmite

Anlisis de valores lmite


Condiciones lmite: Aquellas que se hallan en los mrgenes de las clases de equivalencia tanto de entrada como de salida.

Anlisis de valores lmite


Seleccin de valores
Rango de valores: casos de prueba para lmites del rango y para situaciones justo ms all de los extremos. Nmero de valores: casos de prueba para los valores mnimo y mximo, una unidad mayor que el mximo y una menor que el mnimo. Si la entrada o la salida es un conjunto ordenado, atencin al primero y ltimo.

Anlisis de valores lmite


Ejemplo: tabla de clases de equivalencia y anlisis de valores lmite
Programa que suma dos enteros de uno o dos dgitos
Entrada Primer nmero Segundo nmero Clases vlidas -99 a 99 -99 a 99 Clases no vlidas >99 <-99 >99 <-99 Valores lmite 99, 100 -99, -100 99, 100 -99, -100

Anlisis de valores lmite


Cuntos casos de prueba habra que generar para cubrir todas las combinaciones de entradas de este programa?

Anlisis de valores lmite


Si aplicamos la tcnica de anlisis de valores lmite, estamos cubriendo adems las clases de equivalencia vlidas y no vlidas. Esta es una forma obvia para ahorrar trabajo. Las tablas de clases y lmites son una forma eficiente de especificar las pruebas.

Anlisis de valores lmite


El concepto de lmite tiene varias dimensiones y no se restringe a rangos numricos. En el ejemplo del tringulo podemos considerar tres casos
Valores que definen un elemento no vlido (no tringulo) Valores de tipo inadecuado (no numricos) Demasiadas o pocas entradas (dos o cuatro lados)

Anlisis de valores lmite


El desafo de realizar anlisis de valores lmite es encontrar valores y combinaciones que estn en los lmites de la especificacin. Debemos considerar adems de con los lmites del campo individual, la combinacin de varios campos que pueden quedar en los lmites conceptuales de lo que define la especificacin.

Prueba de tablas de decisin

Prueba de tablas de decisin


Las tablas de decisin son una forma de modelar las reglas de negocio que implementa un sistema. Se utilizan para documentar reglas complejas y derivar de ellas los casos de prueba. Las tablas de decisin pueden utilizarse para modelar casos de uso con combinaciones de situaciones complejas. Las tablas estn basadas en dos elementos: condiciones y acciones.
25

Prueba de tablas de decisin


Esquema genrico de una tabla de decisin
Regla 1 Condicin 1 Condicin 2 Condicin n Regla 2 Regla n

Accin 1 Accin 2 Accin n


26

Prueba de tablas de decisin


Utilizacin
Las condiciones representan las entradas al sistema. Cada accin se mapea con una salida esperada o reaccin del sistema. Se debe crear al menos un CP por cada regla. Si las condiciones son binarias, un nico caso de prueba puede bastar. En casos de rangos se puede combinar con anlisis de valores lmite. Las acciones de cada regla se utilizan para determinar la salida esperada del CP.

27

Prueba de tablas de decisin


Ejemplo: envo de orden de e-commerce
Regla 1 Valor alto Nmero de tems Peso grande Fuera de zona S Regla 2 S Regla 3 S Regla 4 S

Solo por envo rpido Sin costo Preferencia cliente Revisin previa

S S N S

N N S S

S N N N

N N S N
28

Prueba de tablas de decisin


Problema de la reduccin de condiciones
En la tabla anterior Cul es la accin a tomar si ocurre ms de una condicin? Una forma de resolver esta ambigedad es realizar una tabla completa de condiciones. Se puede simplificar estableciendo un orden de preferencia para las decisiones, pero esto puede no ser suficiente en casos complejos. Desde el punto de vista de la prueba, la opcin ms segura es la tabla completa.
29

Prueba de tablas de decisin


Cuando utilizar la tcnica?
Cuando existan reglas de negocio complejas o que no estn bien documentadas. Una vez realizadas, permite derivar los CP directamente. Considerar el problema de la reduccin de condiciones. Nunca asumir correctitud de la implementacin.

30

Prueba de transicin de estados

Prueba de transicin de estados


En algunos sistemas es importante el camino ya recorrido que determina el estado del mismo. Lo que ha sucedido antes de un cierto evento determina la respuesta del sistema. Este tipo de sistemas se denominan dependientes del estado. Los diagramas de estados (grafos) y las tablas de transicin de estados son herramientas que se utilizan para modelar estas situaciones.

32

Prueba de transicin de estados


La tcnica de prueba de transicin de estados se aplica en los siguientes pasos:
Elegir una perspectiva desde donde observar y modelar el sistema. Identificar los estados en los que puede estar el sistema. Agregar las transiciones, eventos, condiciones y acciones que pueden aplicarse a cada estado. Utilizar el grafo (o una tabla equivalente) para predecir el comportamiento del sistema. Validarlo con los requerimientos del sistema. Para cada transicin (u otro criterio ms exigente) verificar que la accin y el siguiente estado ocurren.
33

Prueba de transicin de estados


Ejemplo: maquina de bebidas
Lista para vender Inserta moneda Cancelar / Devuelve moneda Selecciona opcin Esperando [no hay] / Pitido seleccin

Sensor vaso libre / cierra puerta Retirar bebida

Preparacin finalizada / abre puerta

Preparando bebida

Selecciona opcin [hay] / Mensaje espera

34

Prueba de transicin de estados


Los diagramas de estados pueden tener varios elementos:
Estado: abstraccin que representa una situacin del sistema que afecta su comportamiento. Transicin: indica la posibilidad de cambio de un estado a otro, esta asociado a un evento. La transicin puede disparar acciones. Evento: situacin que provoca el cambio en un estado. Puede tener una condicin asociada para diferenciar distintas transiciones. Accin: salida, comportamiento u otro resultado esperado.
35

Prueba de transicin de estados


Tablas de transicin de estados
Un problema de los diagramas es que no muestran todas las posibles combinaciones de estados y eventos. Las tablas son una representacin detallada de todas las posibles combinaciones de estados y eventos. Especifican en cada fila las acciones y el estado resultante. La propia realizacin de la tabla puede llevar a encontrar defectos: cuando se observan combinaciones con resultado no especificado.
36

Prueba de transicin de estados


Lista de estados
Lista para vender Esperando seleccin Preparando bebida Retirar bebida Inserta moneda Cancelar Selecciona bebida Preparacin finalizada Sensor vaso libre

Lista de acciones
Devuelve moneda Pitido Mensaje espera Abre puerta Cierra puerta

Lista de eventos

La tabla se construye en base a la combinacin de estados y eventos. Ciertas combinaciones estado evento producen acciones.
37

Prueba de transicin de estados


Los casos de prueba se derivan directamente de la tabla. La respuesta esperada es la accin asociada. Tambin se prueban los estados / eventos sin acciones. Criterios para derivar casos de prueba
Conjunto de casos que visiten todos los estados (criterio de cobertura dbil) Conjunto de casos que ejerciten todos los eventos (criterio de cobertura dbil) Conjunto de casos que recorran todas las transiciones (preferible) Conjunto de casos que recorran todos los caminos (ms exigente, puede no ser posible si hay bucles)

38

Prueba de transicin de estados


Cuando utilizar la tcnica?
Capturan cierto tipo de requerimientos, los que dependen del estado. Pueden servir para sistemas embebidos en un contexto en el que son reactivos. No son aplicables cuando los sistemas procesan informacin pero no tienen estados diferenciados o no responden a eventos exteriores.
39

Prueba de combinacin de pares (pairwise)

Prueba de combinacin de pares (pairwise)


Escenario: prueba de una aplicacin web
Debe funcionar correctamente en 5 navegadores: Firefox, Internet Explorer, Opera, Safari y Chrome. La aplicacin debe visualizarse correctamente en resoluciones de 800x600, 1024 x 768 o superiores. Tambien debe funcionar en relaciones de aspecto que no sean 4:3, como 1280 x 800. Uno de los componentes de la aplicacin es un componente Flash. En el caso que no est el plugin de Flash instalado, existe una alternativa HTML + Javascript para la misma funcionalidad. El usuario tambin puede seleccionar texto simple. La empresa tiene varias sucursales donde se utilizar la aplicacin. Algunas cuentan con una conexin de alta velocidad con la central y otras utilizan un contrato DSL.

41

Prueba de combinacin de pares (pairwise)


Cuantas combinaciones de plataforma deben probarse?
5 navegadores. 4 resoluciones de pantalla. 3 modalidades de interfaz. 2 tipos de conexin.

5 x 4 x 3 x 2 = 120 combinaciones. Se pueden configurar todas las plataformas? Cada combinacin de plataforma debe repetirse para todas las pruebas de dominio?
42

Prueba de combinacin de pares (pairwise)


Hay varios enfoques de cobertura posibles Ordenadas de peor a mejor alternativa (discutir)
Probar solo en una combinacin Probar todas las combinaciones Elegir las combinaciones ms fciles de probar o configurar Elegir combinaciones al azar Elegir un subconjunto con el criterio de combinacin de pares (pairwise)

43

Prueba de combinacin de pares (pairwise)


Definicin de la tcnica
Probar con un subconjunto de combinaciones Se cubren todas las combinaciones de pares de factores La suposicin es que la mayora de los defectos provienen de un factor o de la combinacin de dos. Hay estudios empricos que muestran la efectividad del enfoque. La tcnica puede utilizar dos enfoques: arrays ortogonales o un algoritmo allpairs.
44

Prueba de combinacin de pares (pairwise)


Matrices ortogonales
Estn relacionados con los cuadrados latinos que son utilizados para la prueba combinatoria y el diseo de experimentos. Los cuadrados latinos muestran el menor numero posible de combinaciones necesarias para combinar todas las opciones de a pares. Ejemplo: tres variables que pueden tomar dos valores. 1 2 3 L4(23)
1 2 3 4 A A B B A B A B A B B A
45

Prueba de combinacin de pares (pairwise)


Ejemplo pataforma web 20 casos (contra 120 combinaciones totales) Generado con herramienta allpairs [Bach]
Caso 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Navegador Firefox Firefox IE IE Chrome Chrome Safari Safari Opera Opera Firefox IE Chrome Chrome Safari Opera Firefox IE Safari Opera Pantalla Baja Media Baja Media Baja Media Alta Wide Alta Wide Alta Wide Alta Wide Baja Media Wide Alta Media Baja IU Flash HTML HTML Flash Simple Simple Flash HTML HTML Flash Simple Simple Flash HTML Simple Simple ~Flash ~HTML ~Flash ~Flash Conexin Directa DSL Directa DSL DSL Directa Directa DSL DSL Directa ~Directa ~DSL ~DSL ~Directa ~DSL ~Directa ~DSL ~Directa ~Directa ~DSL Pares 6 6 5 5 6 5 5 5 5 5 3 3 2 2 2 2 1 1 1 1

46

Das könnte Ihnen auch gefallen