Está en la página 1de 24

Prueba del Software

Pruebas en gran escala

(c) Carlos Alberto Fau

Contenido
Pruebas en gran escala
Prueba Prueba Prueba Prueba de de de de Unidad Integracin Sistema Aceptacin

Plan de Pruebas
Estrategia Ambientes de Prueba

Depuracin
(c) Carlos Alberto Fau 2

Prueba y Ciclo de Vida


Requerimiento Cons. Prueba Sistema Cons. Prueba Funcional Cons. Prueba Integracin Prueba de Sistema Prueba Funcional Prueba Integracin Prueba de Regresin Diseo Detallado Cons. Prueba Unitaria Prueba Unitaria Prueba de Aceptacin

Especificacin

Arquitectura

Codificacin

Prueba de Unidad
Prueba un mdulo en forma independiente Generalmente la realiza el rea que construy el mdulo Se basa en la Descripcin del Diseo Detallado Conductor Tipos de prueba
Interface Estructuras de datos locales Condiciones lmites Caminos independientes Caminos de manejo de errores
En Prueba

Mun

Mun

Suele usar Conductores y Muones


(c) Carlos Alberto Fau 4

Prueba Unitaria
Se aplica lo visto en Prueba en pequea escala
Caja Blanca Caja Negra Suposiciones Bordes ...

Comienza una vez codificado, compilado y revisado el mdulo Los mdulos altamente cohesivos son los ms sencillos de probar
(c) Carlos Alberto Fau 5

Prueba Unitaria: Ejemplo


Emitir Factura Procesar Renglones

Saltar Hoja

Procesar Rengln

Imprimir Encabezado

Imprimir Totales

Obtener Producto

Acumular

Imprimir Rengln

Leer Datos Cliente

Calcular Importe IVA

Leer Producto

Calcular Importe Impuestos Inter

Calcular Precio Unitario

Prueba de Integracin
Es un tcnica sistemtica para construir la estructura del programa mientras que voy probando las interacciones Puedo hacerla:
big bang ascendente descendente sndwich
Grupo 2 Grupo 3
7

Grupo 1
(c) Carlos Alberto Fau

La Prueba de Integracin
Comenzamos a unir las partes probadas aisladamente de nuestro sistema El enfoque depende del tipo de tecnologa
Sistema organizado jerrquicamente
Top-down, bottom up, combinacin de ambos

Sistema batch de procesamiento secuencial


Por partes del flujo de corrida

Sistema sin jerarqua (ejemplo: objetos)


Por escenarios

Los puntos clave son:


Conectar de a poco las partes mas complejas Minimizar la necesidad de programas auxiliares
(c) Carlos Alberto Fau 8

Prueba de Integracin: Ejemplo


Lneas en OPS

Bloque 3 Bloque 2
Pantalla para Actualizar Empresas Empresas

Sucursal/Oficina en OPS

Empresas

11 Actualizar Empresas

Pantalla para importar Facturacin

Facturacin en OPS

Pantalla para Ingreso de la Facturacin

Cuentas

Pantalla para Actualizar Lneas de Uso Interno

Empresas

Sucursales/ Oficinas de Uso Interno

Pantalla para Actualizar Sucursales/ Oficinas de Uso Interno

3.1 Importar Facturacin a OPS

3.2 Ingresar Facturacin Manual

8 Actualizar Lneas de Uso Interno


Facturacin en OPS

6 Actualizar Sucursal/ Oficina de Uso Interno

Bloque 1

Lneas en OPS

Sucursal/Oficina en OPS

Cuentas

Sucursal/Oficina de Uso Interno

Empresas

Lneas en OPS

Pantalla para Ingresar Lneas de Gasto Vigentes

Empresas

Pantalla para Ingresar Lneas de Gasto de uso interno

3.3 Informe de Facturacin de OPS

7 Actualizar Lneas de Gasto Vigente

Facturacin de OPS

Bloque 2

3.4 Aprobacin de la Carga


Diagrama de E/S del Evento 3 Bloques de Prueba de Integracin
Documento : DRAWING1 a las 09:43 AM Impreso el : 18/04/96

Diagrama de E/S de OPS Bloques de Prueba (Parte 1)

Lneas en OPS

Bloque 3

Documento : Impreso el :

DRAWING2 18/04/96 a las 09:46 AM

Bloque 4

A lo alto
Informar Detalle Estados Contables

Obtener Rango DetEstCont

Seleccionar Entidades

Seleccionar Grupos de Entidades

Construir Informe Seleccionar Cuentas

Mostrar Resultado en Pantalla

Exportar Estados Contables

Emitir Informe Estados Contables

Obtener Lista de Entidades

Obtener Lista Grupos Entidades

Obtener Lista de Cuentas

Obtener Valores a Informar

Obtener Entidades de Grupos

Obtener Referencias Cruzadas

Obtener Valores Estados Contable

Obtener Valores Adicionales

Obtener Valores Ratios Calculado

Obtener Totales

Obtener Porcentajes

A lo ancho
Construir Informe

Obtener Valores a Informar

Obtener Entidades de Grupos

Obtener Referencias Cruzadas

Obtener Valores Estados Contable

Obtener Valores Adicionales

Obtener Valores Ratios Calculado

Obtener Totales

Obtener Porcentajes

Integracin

Recalcular Ratios

Actualizar Ratios

Obtener Rango a Recalcular

Informar Avance Reclculo

Obtener Formula de Ratio

Compilar Formula de Ratio

Actualizar un Ratio

Obtener Lista de Ratios

Calcular Ratio por Formula

Grabar Ratio Calculado

Obtener Valor de Dato

Pruebas de Regresin
Pruebas orientadas a verificar que, luego de introducido un cambio en el cdigo, la funcionalidad original no ha sido alterada
Tengo que probar lo nuevo y lo viejo Para esto necesitamos condiciones y casos de prueba reusables; si no, esta tarea no puede hacerse
Por cambiar un par de lneas no va a pasar nada... Yo me juego y catalogo sin probarlo...
Famosas ltimas palabras...

(c) Carlos Alberto Fau

13

Pruebas del Sistema


La aplicacin de software desarrollada es parte de un sistema ms grande. Pruebo el sistema en un ambiente similar al real Hay otras aplicaciones Hay hardware y otros equipos Tipos de Pruebas de Sistema
Pruebas de Recuperacin Prueba de Seguridad Prueba de Resistencia (Stress) Prueba de Rendimiento (Volumen y Performance)

(c) Carlos Alberto Fau

14

Pruebas de Volumen y Desempeo


Prueba que tiene como objetivo verificar que el sistema soporta los volmenes mximos definidos en la cuantificacin de requerimientos
Capacidad de Almacenamiento Capacidad de Procesamiento
(c) Carlos Alberto Fau 15

Prueba de volumen y desempeo


La cuantificacin de volmenes es la base para las pruebas de volumen y performance A partir de la cuantificacin de eventos y entidades se deben definir las condiciones para estas pruebas
Cuantificacin de eventos: pruebas de desempeo Cuantificacin de entidades: pruebas de volumen

Estas pruebas no siempre son necesarias Lo que es necesario es analizar si son necesarias
(c) Carlos Alberto Fau 16

Perfil de Uso
Ante problemas de volumen y desempeo debe estudiarse dnde estn los puntos crticos Analizadores de Cobertura o Monitores
Permiten detectar
zonas no cubiertas (no ejecutadas) porcentaje o total de utilizacin tiempo de ejecucin (por zona)

Puede contrastarse este perfil contra el diseo


(c) Carlos Alberto Fau

~~~~~ ~~~~~ ~~~~~ ~~~~~

17

Prueba de Resistencia
Prueba del Sistema, excediendo los lmites de su capacidad de procesamiento y almacenamiento
Teniendo en cuenta situaciones no previstas originalmente

(c) Carlos Alberto Fau

18

Pruebas de Versin Alfa y Beta


Entrego a los usuarios una primera versin amistosa del sistema, que consideramos est lista para ser probada por ellos
normalmente plagada de defectos una forma econmica de identificarlos, el trabajo lo hace otro... VERSION En muchos casos no BETA puede hacerse
alternativa: paralelo

Alfa: Lo hace el usuario en mis instalaciones (laboratorio) Beta: Lo hace el usuario en sus instalaciones
(c) Carlos Alberto Fau 19

Prueba de Aceptacin del Usuario


Pruebas realizadas por los usuarios, para verificar que el sistema se ajusta a sus requerimientos
Los casos de prueba estn basados en la especificacin de requerimientos Es una tcnica de caja negra
Que no se le ocurra apretar F5...

(c) Carlos Alberto Fau

20

10

Prueba de Aceptacin
Definicin de Condiciones y Casos

(c) Carlos Alberto Fau

21

Casos de Prueba a partir del Anlisis de Requerimientos


Qu componentes se genera en la fase de Anlisis de Requerimientos?
Diagrama de Contexto + DD (diccionario de datos) Lista de Eventos DER (diagrama de relaciones entre entidades) +DD Especificacin de Procesos Cuantificacin de Volmenes Requerimientos No Funcionales

Cules nos sirven?


(c) Carlos Alberto Fau 22

11

Eventos
Los eventos son requerimientos funcionales Tomando al sistema completo como una caja negra, podemos definir las condiciones de prueba de aceptacin a partir de los eventos, con la ayuda del diccionario de datos del contexto y el modelo de datos Un requerimiento que no es testeable no es implementable
Si para un evento, no podemos definir cmo va a ser probado, tenemos un problema

La idea es identificar variaciones de eventos


(c) Carlos Alberto Fau 23

Casos a Partir de Eventos Ejemplo


Un oficial de entrenamiento actualiza el entrenamiento planeado para una posicin
entrenamiento planeado =
cdigo posicin nombre posicin entrenamiento planeado (1-n)
cdigo de curso nombre de curso habilitante a la posicin secuencia curso para la posicin
Oficial de Oficial de entrenamiento entrenamiento

entrenamiento planeado

Plan de Capacitacin

(c) Carlos Alberto Fau

24

12

Ejemplo (continuacin)
Deber probarse el ingreso de entrenamiento planeado para una posicin, teniendo en cuenta las siguientes alternativas:
Condicin de Entrada
Cdigo posicin nombre posicin cdigo curso nombre curso habilitante a la posicin secuencia curso para la posicin

Clases Vlidas
cdigo existente --cdigo existente --S/No entre 0 y 9

Clases Invlidas
cdigo inexistente --cdigo inexistente --otro < 0, >9

(c) Carlos Alberto Fau

25

Dnde hay que concentrar el esfuerzo?


La idea de clases vlidas e invlidas puede ayudar a pensar en variaciones de los eventos, pero... La prueba de usuarios no debe concentrarse en aspectos tcnicos
datos invlidos referencias inexistentes

La prueba de usuarios puede verificar que esa funcionalidad exista, pero no debe probar todos los casos
Para eso est la prueba tcnica...

(c) Carlos Alberto Fau

26

13

Entonces? - Cardinalidad en el DER


La cardinalidad de las relaciones define reglas del negocio que deben ser probadas Puedo informar una posicin con:
ningn curso Posicin un curso ms de un curso
Curso

Entrenamiento Planeado

Si el n estuviese acotado, puedo aplicar el concepto de condiciones de borde


(c) Carlos Alberto Fau 27

Casos que Relacionan Eventos con el Modelo de Datos


Un oficial de entrenamiento actualiza los cursos que se dictan en la compaa
Oficial de Oficial de entrenamiento entrenamiento
Proveedor de Capacitacin Proveedor Habilitado

actualizacin de cursos
Instructor Curso

Plan de Capacitacin
Instructor Habilitado
(c) Carlos Alberto Fau 28

14

Qu Probar?
Alta de un curso sin instructor habilitado (INV) Alta de un curso con un instructor habilitado (V) Alta de un curso con muchos instructores habilitados (V) Idem 2 y 3 con instructores inexistentes (INV) Idem 2 y 3 con instructores de proveedores no habilitados al curso (INV) Si supongo que los instructores internos son tratados de forma diferente que los externos, debo repetir 2, 3 y 4 para instructores internos
(c) Carlos Alberto Fau 29

Ciclo de Vida de las Entidades


Visin temporal del modelo de datos Debo probar tanto las transiciones vlidas como las invlidas
una edicin, puede pasar de planificada a realizada?

Inicio
c: evento 11 a: alta de edicin P de un curso Edicin Planificada c: evento 9 a: edicin.estado = C Edicin Confirmada c: evento 10 a: edicin.estado = R Edicin Realizada

(c) Carlos Alberto Fau

30

15

Cmo Utilizar los Casos Definidos


Los casos que obtuvimos pueden tener dos destinos
una transaccin para probar un programa on-line un archivo, para probar un programa batch

Los casos vlidos, adems, definen la poblacin necesaria de los archivos de prueba En nuestro ejemplo
La posicin AS = Analista de Sistemas deber ser un registro del archivo de pruebas de posiciones El curso AR = Anlisis de Requerimientos deber ser un registro del archivo de pruebas de cursos

Los casos definidos deben ser asignados a los archivos fsicos del sistema

(c) Carlos Alberto Fau

31

Resumen
Los eventos tienen variaciones, indicadas por su texto, por sus flujos de datos y por las reglas de negocio expresadas en el modelo de datos Cada variacin de un evento constituye una condicin de prueba Cada condicin debe ser ejercitada por, al menos, un caso de prueba Cada caso ejercitar uno o mas programas El conjunto de condiciones y casos constituye la base de la prueba de aceptacin funcional Este trabajo no puede hacerse si no se aplica la fase de Anlisis de Requerimientos

(c) Carlos Alberto Fau

32

16

Prueba basada en escenarios


Un escenario representa una secuencia de eventos de un caso particular de uso del sistema
Fbrica Fbrica Cliente Cliente

pedido orden fabricacin


Recibir pedido

aviso de fabricado
entregar mercadera

pago factura
Cobrar factura

pedido
(c) Carlos Alberto Fau

factura
33

Depuracin
La depuracin NO es una tarea de prueba Depurar es: eliminar un defecto que posee el software Sigue normalmente a las tareas de prueba La prueba detecta el efecto (sntoma) de un error La depuracin debe:
Primero encontrar la causa (esto es muy caro) Eliminar el defecto Volver a probar
(c) Carlos Alberto Fau

La depuracin es la fuente de numerosos defectos !!


34

17

Dificultad de la depuracin
Sicologa humana
Frustrante: Es un rompecabezas y solo para arreglar un error Ansiedad y tensin

El sntoma est alejado de la causa (acoplamiento) La correccin de un error enmascara un sntoma Sntoma no producido por un error (redondeo) Participan condiciones no deterministas (otros sistemas) Sntomas intermitentes Sntomas de varias causas que interactan

(c) Carlos Alberto Fau

35

Deteccin
Dada la falla debo hallar el defecto Enfoques
Fuerza bruta Vuelta atrs Eliminacin de causas

Herramientas
Trazadores Ejecucin paso a paso Cuando todo lo dems falle, pida ayuda
(c) Carlos Alberto Fau 36

18

Correccin
Encontrado el defecto hay que eliminarlo Antes de hacer la correccin pregntese
Se repite la causa en otro lado? Qu error puede surgir debido a la correccin? Qu se puede hacer para prevenir este tipo de error?

La ltima pregunta es la ms importante, pues es la que permite mejorar el proceso


Aprendizaje Proceso
(c) Carlos Alberto Fau 37

Abaratamiento de la prueba
Hacer pruebas es caro y trabajoso La forma de abaratar y acelerar las pruebas (sin degradar su utilidad) es: Diseando el Software para ser Probado Algunas herramientas son:
Diseo modular Ocultamiento de informacin Uso de puntos de control Programacin NO egosta

Lo ms barato para encontrar y eliminar defectos es NO introducirlos


(c) Carlos Alberto Fau 38

19

Planificacin de Pruebas

(c) Carlos Alberto Fau

39

Planificacin de las Pruebas


Un plan de pruebas define:
Objetivos de la prueba
qu puede ser probado y qu no puede ser probado

Estrategia de pruebas
qu tipos de pruebas se van a realizar

Criterios de aceptacin
defectos tolerables grado de cobertura

Recursos necesarios y planificacin de tareas


cantidad y tipo de personal cundo, dnde se realizar cada tarea input y output de cada tarea

Casos de prueba nuevos y existentes


uso de casos de prueba de regresin
(c) Carlos Alberto Fau 40

20

Otros contenidos
La planificacin de pruebas debe incluir tiempos para:
Seleccin de Estrategia Diseo de Condiciones y Casos Diseo y Construccin de Conductores y Muones Preparacin del Ambiente Ejecucin de las Pruebas y registro de resultados Depuracin y Correccin
(c) Carlos Alberto Fau 41

Dos Puntos Importantes sobre la Planificacin de las Pruebas


Cuanto ms avanzo en el desarrollo, ms detalles tengo para incluir en el plan de pruebas
nuevos tipos de prueba planificacin detallada de tareas
cundo se hace cada una y quin participa

No es posible planificar las pruebas sin la participacin de los usuarios


ellos tienen que probar, por lo tanto, ellos tienen que formar parte de la planificacin
(c) Carlos Alberto Fau 42

21

Definicin de Estrategias de Prueba


Las siguientes ideas pueden ayudarlos a identificar qu tipos de pruebas pueden ser ms tiles
Prueba de caja negra
siempre debe ser usada

Prueba de caja blanca


componentes crticos componentes sospechosos anlisis Pareto de fallas

Pruebas de versin alfa y beta


para sistemas con comportamiento poco predecible del usuario (ej: MS PowerPoint) que puedan ser probados fuera del entorno de produccin
por usuarios internos !

(c) Carlos Alberto Fau

43

Ms Ideas
Pruebas de Volumen y Desempeo
siempre que Soporte Tcnico y Procesamiento hayan mostrado preocupacin en la cuantificacin de volmenes del anlisis de requerimientos

Pruebas de Regresin
Esto tiene pinta de telfono pblico...

siempre, todo lo que se pueda (hay que pensar en casos reusables)

Pruebas de Estrs
cuando hay poco control sobre los usuarios u otros sistemas que interactan con el nuestro componentes crticos en cuanto al nivel de servicio Todos los sistemas operados por nuestros clientes!

(c) Carlos Alberto Fau

44

22

Ms ideas an
Utilice su Anlisis de Riesgo del Proyecto para determinar cuales son los problemas ms indeseados. Utilice estos para concentrar sus esfuerzos de prueba Utilice su historia de defectos (para ello se registran)

(c) Carlos Alberto Fau

45

ISO 9000-3
Debe haber diferentes niveles y enfoques El plan
debe contener Casos de Prueba, Datos y Resultados Esperados debe describir los tipos de prueba a ser realizadas (funcional, de desempeo, ...) describir el ambiente de pruebas, incluidas las herramientas

La prueba de legibilidad debe incluir al manual de usuario, criterio para finalizacin de las pruebas

(c) Carlos Alberto Fau

46

23

ISO 9000-3
Los resultados de las pruebas deben registrarse Cualquier inconveniente debe ser identificado y ser comunicado al responsable Los cambios deben ser vueltos a probar Debe instrumentarse SCM

(c) Carlos Alberto Fau

47

Resumen
Existen varias pautas para encarar las pruebas Las pruebas se deben planificar El buen diseo y construccin no solo benefician a las pruebas, sino tambin a la correccin de los componentes y su mantenimiento Las pruebas No mejoran al software, solo muestran cuantos defectos tiene El No probar No elimina los errores, ni acorta tiempos, ni abarata el proyecto:
Si puede fallar fallar y en el peor momento posible

Evitarlo es nuestra responsabilidad


(c) Carlos Alberto Fau 48

24

También podría gustarte