clase 01 de prueba de software - 29032014

47
PRUEBA DE SOFTWARE ALFONSO CAJACHAGUA IT Especialist Email: [email protected]

Upload: continental

Post on 11-Nov-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

PRUEBA DE SOFTWARE

ALFONSO CAJACHAGUAIT EspecialistEmail: [email protected]

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos3. Asegurar la Testeabilidad4. Principios5. Criterios 6. Estrategias7. Técnicas8. Anexos

Ingeniería de la Información

Agenda

1. Introducción

INTRODUCCION

Ingeniería de la Información

PRESENTACION DEL CURSO

Esta etapa del curso pretende introducir los conceptos básicos de la

metodología del ciclo de vida completo de Pruebas de Software, así como

también las técnicas y procesos necesarios para el testeo de aplicaciones.

INTRODUCCION

Ingeniería de la Información

EL PROPOSITO

El propósito es proveer una metodología estructurada y disciplinada para

ejecutar el testeo o Prueba.

¿QUE INCLUYE?

Esta metodología incluye la planificación de las Pruebas, el gerenciamiento

y control del proceso de pruebas, y las técnicas de testeo.

INTRODUCCION

Ingeniería de la Información

CONTENIDO

Este documento será una guía que contiene los conceptos básicos para

realizar las Pruebas en forma exitosa un producto en desarrollo.

Un elemento critico en el desarrollo exitoso de cualquier aplicación de

software es el testeo efectivo. Incluye los requerimientos de pruebas, el

diseño, la documentación, y los procedimientos operacionales, y es una

parte inseparable del desarrollo de un producto. El Testeo o Pruebas es uno

de los caminos por los cuales el producto logra una alta calidad.

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos

a. Definiciónb. Objetivos de las Pruebasc. Propósito de las Pruebasd. Términos

FUNDAMENTOS

Ingeniería de la Información

DEFINICION

La Prueba o testeo es la búsqueda sistemática de defectos en los

entregables de un proyecto.

Es el proceso de examinar la salida de un proceso bajo determinadas

consideraciones, comparando los resultados contra un grupo de

expectativas predeterminadas, y trabajando sobre las diferencias

(generalmente llamados defectos).

FUNDAMENTOS

Ingeniería de la Información

LA PRUEBA

El testeo o Prueba es ejecutado para asegurar que se ha desarrollado un

producto usable desde el punto de vista del usuario final.

FUNDAMENTOS

Ingeniería de la Información

OBJETIVOS PRIMARIOS

Los objetivos primarios de las Pruebas o Testeo son:

a) El sistema debe cumplir con las necesidades del usuario. “El sistema

correcto ha sido construido”

b) Los requerimientos del usuario fueron construidos como estaban

especificados “el sistema ha sido construido correctamente”

FUNDAMENTOS

Ingeniería de la Información

OBJETIVOS SECUNDARIOS

a) Inspirar confianza en el sistema a través del involucramiento del usuario

b) Asegurar que el sistema trabajará eficientemente desde el punto de vista

funcional y desde el punto de vista de la performance

c) Establecer exactamente que es lo que el sistema hace (y que no hace)

para que el usuario no reciba sorpresas al momento de la implementación

d) Identificar áreas problemáticas donde los entregables del sistema no

están de acuerdo a las especificaciones

e) Mejorar los procesos de desarrollo que causan error.

FUNDAMENTOS

Ingeniería de la Información

PROPOSITO DE LAS PRUEBAS

Logrando estos objetivos se asegurará que:

a) Los riesgos son minimizados

b) Un producto de alta calidad es entregado

c) La habilidad para entregar aplicaciones de alta calidad es mejorada.

El propósito de un método de testeo es proveer un marco y un conjunto de

disciplinas y estrategias de testeo de una aplicación, logrando un proceso

consistente y repetible.

FUNDAMENTOS

Ingeniería de la Información

TERMINOS A UTILIZAR

El testeo o Prueba es un proceso de verificación y/o validación de una salida

contra un conjunto de expectativas y observación de las diferencias.

a) Validación

b) Verificación

c) Proceso

d) Expectativas

e) Diferencias

FUNDAMENTOS

Ingeniería de la Información

VALIDACION

Es el acto de asegurar conformidad con el requerimiento original. Un

ejemplo es la comparación de la respuesta de un sistema actual de una

transacción on-line que fue originalmente esperada, requerida y finalmente

aprobada en el diseño externo.

FUNDAMENTOS

Ingeniería de la Información

VERIFICACION

Es el acto de chequear un producto de trabajo actual para asegurar que se

ejecuta como esta especificado por su predecesor. La comparación de el

código de un modulo contra su documento de especificaciones de diseño

técnico es un ejemplo.

FUNDAMENTOS

Ingeniería de la Información

PROCESO

Es Una serie de acciones ejecutadas para lograr un resultado deseado que

transforman una serie de entradas en un conjunto de salidas relevantes

FUNDAMENTOS

Ingeniería de la Información

EXPECTATIVAS

Es un conjunto de requerimientos o especificaciones que debe cumplir la

salida resultante de un proceso para que sean aceptables

FUNDAMENTOS

Ingeniería de la Información

DIFERENCIAS

Son desviaciones en las salidas de un proceso comparándolas contra las

salidas esperadas. Estas diferencias generalmente son llamadas defectos

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos3. Asegurar Testeabilidad

ASEGURAMIENTO

Ingeniería de la Información

¿COMO ASEGURO QUE SE PUEDA TESTEAR?

En el orden de poder evaluar si una salida alcanza o excede una expectativa

dada, dicha expectativa debe ser declarada en la terminología especifica de

testeo.

Esto significa que cuando las características de una salida que esta siendo

testeada es comparada contra las características esperadas , estas podrán

ser mapeadas en una forma clara y no ambigua.

ASEGURAMIENTO

Ingeniería de la Información

¿COMO ASEGURO QUE SE PUEDA TESTEAR?

El nivel requerido de detalle cuando se documenta y testean los

requerimientos puede ser que no este aun disponible.

El proceso de especificación de requerimientos y diseño externo deberá

evolucionar hasta llegar al requerimiento funcional a partir de una colección

de declaraciones imprecisas de las necesidades del usuario.

ASEGURAMIENTO

Ingeniería de la Información

CHECKLIST DEL REQUERIMIENTO A TESTEAR

Se puede chequear la testeabilidad del requerimiento o de la especificación

del requerimiento asegurando que este sea:

• Especifico

• Medible

• Realizable o alcanzable

• Realista

• Oportuno

Estas especificaciones formaran parte de la base del criterio a utilizar al

momento de testear el sistema.

Ingeniería de la Información

CARACTERISTICAS DEL SOFTWARE O REQUERIMIENTO

Además un software fácil de probar debe tener las siguientes características:

• Operatividad,

• Observatividad,

• Controlabilidad,

• Capacidad de descomposición,

• Simplicidad,

• Estabilidad,

• Facilidad de comprensión.

ASEGURAMIENTO

Ingeniería de la Información

ÉXITO UNA PRUEBA

La prueba no puede asegurar que no existen errores, sólo puede mostrar

que existen defectos en el software.

Una prueba tiene éxito:

• Al detectar un error

• Al descubrir un error no descubierto antes

¿Qué ayuda?

Diseñar pruebas que sistemáticamente descubran diferentes tipos de

errores con menor tiempo y esfuerzo.

ASEGURAMIENTO

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos3. Asegurar4. Principios

PRINCIPIOS

Ingeniería de la Información

Algunos principios básicos son:

• Un autor no debe ser el testeador final de su propio producto de trabajo.

• Un testeo exhaustivo es deseable pero esto NO es siempre practico

• Los resultados esperados deben ser documentados para cada testeo.

• Las condiciones validas e invalidas deben ser testeadas.

• Los resultados esperados e inesperados deben ser validados.

• Los casos de testeo podrán ser reusados.

Ingeniería de la Información

Principios adicionales a tener en cuenta:

• El 80% de todos los errores se centran sólo en el 20% de los módulos.

• Hacer un seguimiento de las pruebas hasta los requisitos del Cliente.

• Plantear y diseñar las pruebas antes de generar ningún código,

• Empezar las pruebas en módulos individuales y avanzar hasta probar el

sistema entero.

• Deben realizarse por un equipo independiente al equipo de desarrollo.

PRINCIPIOS

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos3. Asegurar4. Principios5. Criterios

CRITERIOS

Ingeniería de la Información

PRE-REQUISITOS

El concepto de establecer prerrequisitos (criterio de entrada) y post-

condiciones (criterio de salida) es extremadamente útil en todos los

procesos, el testeo no es una excepción.

CRITERIOS

Ingeniería de la Información

LOS CRITERIOS DE ENTRADA

Son los factores que deben ser presentados, como mínimo, para ser

capaces de comenzar una actividad.

En el testeo de integración, antes que un modulo pueda ser integrado en un

programa, debe ser compilado sin errores y el testeo unitario debe estar

finalizado.

Si los criterios de entrada para la próxima fase han sido logrados, la próxima

fase puede comenzar aunque la fase actual se este ejecutando, esto se ve

reflejado en las actividades que se solapan en un cronograma.

CRITERIOS

Ingeniería de la Información

LOS CRITERIOS DE SALIDA

Los criterios de salida son esos factores que se deben presentar para

declarar una actividad como terminada.

El criterio de salida debe ser explícitamente expresado.

Ingeniería de la Información

CRITERIO ADICIONALES PARA REALIZACION DE PRUEBAS

Para llevar a cabo la verificación del comportamiento de un sistema pueden

servirse dos criterios:

• Descendente: Empieza a nivel de sistema, prueba los módulos y por

último las funciones que lo conforman.

• Ascendente: Da inicio a la verificación de funciones hasta llegar al

nivel superior del sistema.

CRITERIOS

Ingeniería de la Información

Agenda

1. Introducción2. Fundamentos3. Definición4. A5. C6. Estrategias

ESTRATEGIAS

Ingeniería de la Información

CLASES DE ESTRATEGIA

Las estrategias de testeo o Pruebas se catalogan en dos grandes clases:

� Testeo estático

� Testeo dinámico.

Ambas son efectivas si son aplicadas en forma apropiada y pueden ser

usadas a lo largo del ciclo de vida de testeo.

ESTRATEGIAS

Ingeniería de la Información

TESTEO ESTATICO

El testeo estático es una examinación detallada de las características de un

producto de trabajo contra un conjunto esperado de atributos, experiencias y

estándares.

Descubrir las diferencias o defectos en etapas tempranas de un proyecto,

esto resultara en cambios menos caros y con consecuencias menores.

ESTRATEGIAS

Ingeniería de la Información

TESTEO ESTATICO

En el ciclo de vida del desarrollo, el único testeo usualmente disponible

durante la fase de pre-construcción es el testeo estático .

Algunos ejemplos representativos de testeo estático son:

� Revisión de planes

� Inspecciones de diseño o código

� Inspecciones de planes de Testeo o Pruebas

� Revisión de casos de testeo o pruebas.

ESTRATEGIAS

Ingeniería de la Información

TESTEO DINAMICO

El testeo dinámico es un proceso de verificación o validación operando

sobre un producto de trabajo y observando su comportamiento a entradas

cambiantes.

Cuando un modulo es testeado en forma estática observando su código y

documentación, se ejecuta también el testeo dinámico analizando el

comportamiento de la lógica y la respuesta a las entradas .

ESTRATEGIAS

Ingeniería de la Información

TESTEO DINAMICO

Algunos ejemplos representativos de testeo dinámico son:

� Confección de prototipos de aplicaciones

� Ejecución de casos de testeo bajo un sistema en funcionamiento

� Simulación de escenarios con usuarios finales reales para testear la

usabilidad.

� Testeo en paralelo en un ambiente de producción

Ingeniería de la Información

Agenda

1. Introducción2. Definición3. A4. B5. C6. E7. Técnicas de Pruebas

Ingeniería de la Información

TIPOS DE TECNICAS

Las técnicas mas comunes de testeo son:

� Testeo de Caja Negra,

� Testeo de Caja Blanca.

Las técnicas de testeo que examinan el funcionamiento interno y los detalles

de un producto de trabajo son utilizados en la estrategia del testeo de caja

blanca .

La técnica que únicamente testea como se comporta una unidad solamente

examinando sus entradas y salidas corresponden al testeo de caja negra .

TECNICAS

Ingeniería de la Información

TESTEO DE CAJA NEGRA

En la estrategia de testeo de caja negra, los Analistas de Pruebas tienen una

visión de salida del sistema, brindándole mayor importancia a el “que esta

hecho ” y no el “como esta hecho ”.

El testeo de caja negra es usado en todos los niveles de testeo. Para testear

el sistema se ingresan todas las combinaciones de entradas posibles y las

salidas son examinadas, además, para ejecutar un testeo adecuado del

sistema se deben utilizar entradas validas e invalidas .

TECNICAS

Ingeniería de la Información

TESTEO DE CAJA BLANCA

En la estrategia de caja blanca, los Analistas de Pruebas tienen una visión

interna del sistema, deben testear el “como esta hecho ” y no solo “que

esta hecho”.

El Testeo de Caja Blanca esta lógicamente orientado.

Los Analistas de Pruebas deben probar la ejecución de todos los posibles

caminos de los flujos de control a través del programa.

TECNICAS

Ingeniería de la Información

TESTEO DE CAJA BLANCA

Esta estrategia es esencialmente un método de las Pruebas Unitarias.

Algunas veces es usado en las Pruebas de Integración o en las Pruebas de

Operabilidad (en el ambiente de producción) y es ejecutado siempre por

personas con habilidades técnicas.

TECNICAS

Ingeniería de la Información

Agenda

1. Introducción2. Definición3. A4. B5. C6. E7. Técnicas de Pruebas8. Anexos

Ingeniería de la Información

GLOSARIO

Defecto : Es una imperfección o desperfecto que puede causar que el

componente o aplicación falle al realizar una función específica. Por

ejemplo: una sentencia incorrecta o una definición errada de los datos.

Error : Una acción humana que produce un resultado incorrecto

Falla : Desviación del componente o sistema de su prevista entrega, servicio

o resultado.

Calidad : El grado en el cual un componente, sistema o proceso cumple los

requisitos especificados y/o las necesidades, expectativas del

usuario/cliente.

Ingeniería de la Información

REFLEXIONES

Las fallas de los sistemas motivan a los clientes a irse a la competencia.

El alto costo del fracaso hace del Testing una obligación para las empresas

El testing esta considerado como estrategia organizacional

El testing es una inversión

El testing esta visto como un mal necesario al final del proceso de

implementación de sistemas o soluciones.

Tercerizar el servicio de testing es la tendencia en la actualidad

Las certificaciones de Testing: ISEB/ISQTB, IIST, QAI, ASQ