clase 01 de prueba de software - 29032014
TRANSCRIPT
Ingeniería de la Información
Agenda
1. Introducción2. Fundamentos3. Asegurar la Testeabilidad4. Principios5. Criterios 6. Estrategias7. Técnicas8. Anexos
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
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
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