Sei sulla pagina 1di 46

INGENIERA DE SOFTWARE

DEPARTAMENTO DE COMPUTACIN
FACYT UNIVERSIDAD DE CARABOBO

PRUEBAS DE SOFTWARE

Juan Snchez C.I.: 24.569.851


Flix Gonzlez C.I.: 25.600.604
Cristian Cantero C.I.: 24.443.076
Viviana Rodrguez C.I.: 25.939.869
Mariangela Goncalves C.I.: 24.327.438

Profesora: Dinarle Ortega


CONTENIDO
Conceptos Bsicos
Mtodos
Estrategias
Procesos
Pruebas para Software Convencional
Pruebas para Software Orientado a Objetos (OO)
Desarrollo Guiado por Pruebas
Automatizacin
Artefactos
Herramientas
Importancia
CONCEPTOS BSICOS
Las pruebas son un conjunto de actividades que
pueden planearse por adelantado y realizarse de
manera sistemtica.
El software se prueba para descubrir errores que se
cometieron de manera inadvertida
conforme se dise y construy.

Es una actividad dentro del


desarrollo de software, y forma
parte del proceso de control de
calidad.
CONCEPTOS BSICOS
Deben aplicarse pruebas solo sobre una
pequea parte del programa?

Deben volverse a aplicar las pruebas que


ya se realizaron?

Cmo se realizan las pruebas?

Debe probarse el programa completo?


CONCEPTOS BSICOS
No existen las "mejores prcticas" de prueba.

Toda prctica puede ser ideal para una situacin pero


completamente intil o incluso perjudicial en otra.

Dependiendo del tipo de pruebas, podrn ser


implementadas en cualquier momento del proceso de
desarrollo.

Las actividades, tcnicas, documentacin, enfoques de


las pruebas deben ser seleccionados y utilizados de la
manera ms eficiente segn contexto del proyecto.
CONCEPTOS BSICOS
Quin realiza las pruebas?
El gerente de proyecto, los ingenieros de
software y los especialistas en pruebas desarrollan
una estrategia para probar el software.
CONCEPTOS BSICOS
Caractersticas Genricas
Realizar revisiones tcnicas efectivas para
eliminar errores antes de comenzar la prueba.

La prueba comienza en los componentes y opera


hacia la integracin de todo el sistema de cmputo.

Diferentes tcnicas de prueba son adecuadas


para distintos enfoques de ingeniera de software y
en diferentes momentos en el tiempo
CONCEPTOS BSICOS
El proceso de pruebas de software tiene
dos objetivos distintos:

Demostrar al desarrollador y al
cliente que el software satisface
sus requerimientos.

Descubrir defectos en el software


en el que el comportamiento de
este es incorrecto, no deseable o no
cumple su especificacin.
CONCEPTOS BSICOS
Cundo terminan las pruebas?
No hay una respuesta definitiva para saber cundo
terminar la prueba.

Existen algunas respuestas pragmticas e intentos


tempranos a manera de gua emprica.
MTODOS
Las pruebas se consideran un elemento de la
verificacin y validacin (V&V).
La validacin es un conjunto de tareas que
aseguran que el software que se construye sigue los
requerimientos del cliente.
Se construy el producto correctamente?

La verificacin se refiere al conjunto de tareas que


garantizan que el software implementa correctamente
una funcin especfica.
Se construy el producto correcto?
MTODOS
Las revisiones, ensayos e inspecciones son
referidos como pruebas estticas.

Cuando se ejecuta un cdigo programado


con una serie de casos de prueba se refiere
como pruebas dinmicas.

Las pruebas estticas involucran la


verificacin, y las pruebas dinmicas la
validacin.
ESTRATEGIAS
Describen los pasos
que deben realizarse
como parte de la prueba,
tiempo y recursos que se
requerirn.

Toda estrategia de prueba debe incorporar:


La planificacin de la prueba.
El diseo de casos de prueba.
La ejecucin de la prueba.
La recoleccin y evaluacin de los resultados.
ESTRATEGIAS
ESPIRAL
ESTRATEGIAS
PROCEDURAL
ESTRATEGIAS
Aspectos Estratgicos

Especifican los requerimientos


del producto antes de comenzar
con las pruebas.
Establecen de manera explcita
los objetivos de las pruebas.
Entienden a los usuarios del software y desarrollan un
perfil para cada categora de usuario.
Desarrollan un enfoque de mejora continuo para el
proceso de prueba.
PROCESOS
MODELO GIL

Envuelve un enfoque que se refiere a mtodos


basados en el desarrollo iterativo e incremental.

Los requisitos y soluciones evolucionan con el


tiempo segn la necesidad del proyecto.

Su objetivo final de es conseguir que las


actualizaciones de software puedan ser
presentadas frecuentemente.
PROCESOS
CICLOS DE PRUEBA
Planificacin de la Pruebas: redacta Fase de definicin del
el Plan de Pruebas. producto

Anlisis de Pruebas: comienza a Fase de


documentar los planes detallados. documentacin

Diseo de Pruebas: ocurre en paralelo al desarrollo.

Ejecucin de las Pruebas: se tiene una versin estable


para testear.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRUEBA DE UNIDAD

Se enfocan en la lgica de procesamiento interno


y de las estructuras de datos dentro de las
fronteras de un componente.

La interfaz del mdulo se prueba para garantizar


que la informacin fluya de manera adecuada
hacia y desde la unidad de software que se est
probando.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRUEBA DE INTEGRACIN DESCENDENTE

Los mdulos se integran al moverse hacia abajo


a travs de la jerarqua de control, comenzando con
el mdulo de control principal.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRUEBA DE INTEGRACIN ASCENDENTE


Los componentes en el nivel
inferior se combinan en grupos.

Se escribe un controlador (un


programa de control para
pruebas) a fin de coordinar la
entrada y salida de casos de
prueba.

Se prueba el grupo.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRUEBA DE REGRESIN

Es la nueva ejecucin de algn subconjunto de pruebas


que ya se realizaron a fin de asegurar que los cambios no
propagaron efectos colaterales no deseados.

Ayudan a garantizar que los cambios no introducen


comportamiento no planeado o errores adicionales.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRUEBA DE HUMO
Enfoque de prueba de
integracin que se usa cuando se
desarrolla software de producto.

Se disea como un mecanismo


de ritmo para proyectos crticos
en el tiempo, lo que permite al
equipo del software valorar el
proyecto de manera frecuente.
PRUEBAS PARA SOFTWARE CONVENCIONAL

PRODUCTOS DE TRABA JO DE LA PRUEBA DE INTEGRACIN


Un plan global para integracin del software y una descripcin
de las pruebas especficas se documentan en una especificacin
de pruebas.

Este producto de trabajo incorpora un plan de prueba y un


procedimiento de prueba, y se vuelve parte de la configuracin
del software.

La prueba se divide en fases y construcciones que abordan


caractersticas del software funcionales y de comportamiento
especficas.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE UNIDAD

La encapsulacin determina la
definicin de clases y objetos.

Una clase encapsulada es el


foco de la prueba de unidad. No
obstante, los mtodos dentro de
la clase son las unidades
comprobables ms pequeas.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE INTEGRACIN

Basada en hebras: integra el conjunto de clases


requeridas para responder a una entrada o evento para
el sistema.

Basada en uso: comienza la construccin del


sistema al probar clases independientes que usan muy
pocas clases servidor. Despus de probar las clases
independientes, se prueba la siguiente capa de clases,
llamadas dependientes.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA PARA WEBAPPS

Adopta los principios bsicos


para todas las pruebas de
software y aplica la estrategia que
se usa para sistemas orientados a
objetos.

El proceso de prueba es una


actividad siempre en marcha.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE VALIDACIN

Comienzan en la culminacin de las pruebas de


integracin.

Las pruebas se enfocan en las acciones visibles para el


usuario y las salidas del sistema reconocibles por el
usuario.

La validacin es exitosa cuando el software funciona en


una forma que cumpla con las expectativas razonables
del cliente.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
CRITERIOS PARA PRUEBA DE VALIDACIN
Se satisfacen todos los requerimientos de funcionamiento.

Se logran todas las caractersticas de comportamiento.

Todo el contenido es preciso y se presenta de manera


adecuada.

Se logran todos los requerimientos de rendimiento, la


documentacin es correcta y se satisfacen la facilidad de uso.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA ALFA Y BETA

La prueba alfa se lleva a cabo en el sitio del desarrollador


por un grupo representativo de usuarios finales. El software
se usa en un escenario natural con el desarrollador y
registrando los errores y problemas de uso.

En la prueba beta es una aplicacin en vivo del software.


El cliente registra todos los problemas que se encuentran
durante la prueba beta y los reporta al desarrollador
peridicamente.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DEL SISTEMA

Es una serie de diferentes


pruebas cuyo propsito principal
es ejercitar por completo el
sistema basado en computadora.

Funciona para verificar que los


elementos del sistema se hayan
integrado de manera adecuada y
que se realicen las funciones
asignadas.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE RECUPERACIN

Es una prueba del sistema que fuerza al software a fallar


en varias formas y que verifica que la recuperacin se
realice de manera adecuada.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE SEGURIDAD
Intenta verificar que los
mecanismos de proteccin que
se construyen en un sistema en
realidad lo protegern de
cualquier penetracin impropia.

Durante la prueba de
seguridad, quien realiza la
prueba juega el papel del
individuo que desea penetrar al
sistema.
PRUEBAS PARA SOFTWARE ORIENTADO
A OBJETOS (OO)
PRUEBA DE ESFUERZO
Ejecuta un sistema en forma que demanda recursos en
cantidad, frecuencia o volumen anormales.

PRUEBA DE RENDIMIENTO
Pone a prueba el rendimiento del software en tiempo de
corrida, dentro del contexto de un sistema integrado.

PRUEBA DE DESPLIEGUE
Ejercita el software en cada entorno en el que debe
operar.
DESARROLLO GUIADO POR PRUEBAS
Tambin conocido como Test-Driven Development
(TDD), involucra dos partes:

1. Escribir las pruebas primero: se escribe una


prueba y se verifica que las pruebas fallan.

2. Refactorizacin: a continuacin, se implementa


el cdigo que hace que la prueba pase
satisfactoriamente y seguidamente se
refactoriza el cdigo escrito.
DESARROLLO GUIADO POR PRUEBAS

El propsito es lograr un cdigo limpio que funcione


DESARROLLO GUIADO POR PRUEBAS
CICLO DE DESARROLLO
1. Escribir un requisito.

2. Escribir una prueba.

3. Verificar que la prueba falla.

4. Escribir la implementacin.

5. Ejecutar las pruebas automatizadas.

6. Eliminacin de duplicacin (refactorizacin).


AUTOMATIZACIN
PRUEBAS MANEJADAS POR CDIGO

Software automatizado para hacer distintas


pruebas a otros software.

xUnit:
setup();
...
/* Cuerpo de la prueba */
...
teardown();
AUTOMATIZACIN
PRUEBAS DE INTERFAZ-USUARIO

Conjunto de pruebas que se realizan a travs de


la interfaz del software.
ARTEFACTOS

Producto tangible
resultante

Diagrama de clases

Diseo
ARTEFACTOS
CASO DE PRUEBA

Especifica una forma de probar el sistema, incluyendo


entrada o resultado.

Se da a veces para casos de pruebas que verifican


diferentes escenarios del mismo caso de uso.
ARTEFACTOS
PLAN DE PRUEBA

Describe las estrategias, recursos y planificacin de la


prueba.
HERRAMIENTAS
Posibilitan realizar pruebas autnomas y
masivas permitiendo as la verificacin en donde se
analiza el software sin ejecutarle mediante el
cdigo fuente del mismo.

Se pueden encontrar
tanto herramientas Open
Source (gratuitas) como
Comerciales (pagas).
HERRAMIENTAS
HERRAMIENTAS OPEN SOURCE
Gestin de pruebas Pruebas funcionales Pruebas de carga y
rendimiento
Bugzilla Testopia SoapUI JMeter
FitNesse Selenium FunkLoad
qaManager Watir FWPTT load testing
qaBook WatiN loadUIO

Bugzilla Testopia: basada en Web de seguimiento de errores originalmente


desarrollada y usada por el proyecto Mozilla.
SoapUI: desarrollada en java, para la realizacin de pruebas a aplicaciones con
arquitectura orientada a servicio y transferencia de estado representacional.
Jmeter: es un proyecto de Apache que puede ser utilizado como una herramienta
de prueba de carga para analizar y medir el desempeo de una variedad de servicios,
con nfasis en aplicaciones web.
HERRAMIENTAS
HERRAMIENTAS COMERCIALES
Gestin de pruebas Pruebas funcionales Pruebas de carga y
rendimiento
HP Quality Center Silk Test HP LoadRunner
Silk Central QuickTest Pro LoadStorm
QA Complete Rational Robot NeoLoad
qaBook Sahi WebLOAD Professional

HP Quality Center: es de la divisin de software de HP. Su objetivo es el control de


la calidad de software para entornos y aplicaciones IT.
Silk Central: fue adquirida por Micro Focus. Integra un framework para mejorar la
productividad, trazabilidad y visibilidad de todos los tipos de pruebas de software.
Silk Test: fue adquirida por Micro Focus. Herramienta de automatizacin de
pruebas funcionales y de regresin para aplicaciones empresariales, nativas y web.
IMPORTANCIA
El objetivo de las pruebas del software es descubrir
errores.

Cada paso de la prueba se logra a travs de una


serie de tcnicas de prueba sistemticas que auxilian
en el diseo de casos de prueba.

La prueba requiere ms esfuerzo que cualquiera otra


accin de ingeniera del software.

Es razonable establecer una estrategia sistemtica


para probar el software.
GRACIAS POR SU
ATENCIN!
Las pruebas solo pueden
demostrar la presencia de
errores, no su ausencia

Edsger Dijkstra

Potrebbero piacerti anche