pruebas de software -...

24
Pruebas de Software

Upload: trinhthien

Post on 23-Sep-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Pruebas de Software

Page 2: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Testing

Es el proceso orientado a demostrar que un programa no tiene errores.

1. Imposible.

2. Tentación a diseñar tests que no detecten errores.

Es la tarea de demostrar que un programa realiza las funciones para las cuales fue construido.

Es la tarea de probar que un programa realiza lo que se supone debe hacer. Aún haciendo lo esperado, puede contener errores.

Es la ejecución de programas de software con el objetivo de detectar defectos y fallas. Proceso destructivo, sádico.

Page 3: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Testing

Test Exitoso: aquel que detecta errores

Test No exitoso: aquel que no los detecta

Error: una equivocación de una persona al desarrollar alguna actividad de desarrollo de software.

Defecto: se produce cuando una persona comete un error (interno-> desarrolladores).

Falla: es un desvío respecto del comportamiento esperado del sistema, puede producirse en cualquier etapa (externo- >usuarios).

Page 4: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Justificación

1. La realización de tareas de pruebas conlleva un costo asociado que puede inducir a tomar decisiones de no realizarlas.

2. No realizarlas también conlleva un costo asociado.

El problema es determinar cuál de estos costos es mayor.

Suposición: Menores costos, menores tiempos de desarrollo y mayor satisfacción del cliente.

Page 5: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Costo

Page 6: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Principios

1. Una parte necesaria de un test es la definición de los resultados esperados.

2. Un programador debe evitar probar su propio desarrollo.

3. Una organización no debe probar sus propios desarrollos.

4. Revise los resultados de los test en profundidad.

5. Los test deben incluir entradas inválidas e inesperadas así como las válidas y

esperadas.

6. Revisar un programa para verificar que hace lo que se espera que haga es sólo

la mitad de la prueba; la otra mitad consiste comprobar que no haga lo que no

se espera.

7. No tirar los test a la basura a menos que el programa sea basura.

8. No planear esfuerzos de pruebas asumiendo que no se encontrarán errores.

9. La probabilidad de encontrar errores en una sección de un programa es

proporcional al número de errores ya encontrados en esa sección.

10. El “testing” constituye una tarea creativa e intelectualmente desafiante

Page 7: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Niveles de Prueba

Test Unitarios

Test de Componentes / Test de Integración

Test de Funcionalidad

Test de Sistema

Test de Aceptación

Test de Instalación

Page 8: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo
Page 9: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Tipos de Pruebas

Test de Facilidad

Test de Volumen

Test de Stress

Test de Usabilidad

Test de Seguridad

Test de Performance

Test de Configuración

Test de Instalación

Test de Fiabilidad Test de Recuperación

Test de Documentación

Test de Mantenimiento

Page 10: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

¿Qué debería automatizarse?

Pruebas unitarias y de componentes

Pruebas de funcionalidad sin interfaces de usuario

Pruebas de sistema con interfaces de usuario

Page 11: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

¿Qué no debería automatizarse?

Pruebas de usabilidad

Pruebas exploratorias

Tareas únicas de fácil ejecución manual y difícil automatización

Page 12: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Estrategia para comenzar la automatización

Capacitación a analistas, testers y programadores

Seleccionar una forma de trabajo

Seleccionar herramientas

Desarrollar proyectos pilotos

Institucionalizar

Page 13: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo
Page 14: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Modelo tradicional

Page 15: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Modelo “moderno”

Page 16: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo
Page 17: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Métodos de prueba

Test incrementales

Testeo continuo, distribuye las pruebas de integración en la integración diaria del código compartido

Page 18: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Top Down

⇒ Se requieren Stubs para suplantar los módulos inferiores aún no implementados

⇒ Los Stubs se quitan a medida que se desarrollan los diferentes módulos

⇒ Un test por módulo que se suma

⇒ Realizar test de regresión sobre los módulos

Desventajas

Se retrasa la prueba del procesamiento real realizado generalmente en módulos de más bajo nivel

Desarrollar Stubs que emulen a los módulos es mucho trabajo

Page 19: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Bottom Up

⇒ Las pruebas comienzan en el más bajo nivel con la integración de algoritmos que realizan procesamiento.

⇒ Se escriben test que dan el contexto de ejecución a los módulos.

⇒ Se prueban los módulos. ⇒ Se desarrolla e integran funcionalidades del módulo

superior y se repite. Desventajas Hasta que se logra un nivel determinado, la aplicación no

es visible Problemas asociados a volumen, recursos y tiempo se

prueban en etapas tardías

Page 20: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Caja Negra

Pruebas funcionales sin acceso al código fuente de las aplicaciones, se trabaja con entradas y salidas

Realizar tablas de rangos de valores

Page 21: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Caja Blanca

Pruebas con acceso al código fuente (datos y lógica). Se trabaja con entradas, salidas y el conocimiento interno.

Caminos, condiciones o decisiones

Page 22: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

PLANIFICACIÓN

⇒ Planificación General

o Objetivos

o Criterios de Completitud

o Cronograma

o Responsabilidades

⇒ Planificación Técnica

o Estándares de Casos de Pruebas

o Herramientas

o Infraestructura

o Procedimientos

Page 23: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Criterios de Completitud de las pruebas

1. Se agotó el tiempo asignado

2. Los test dan todos resultados esperados

Desventajas:

No garantiza la realización de las pruebas (1), si el tiempo asignado a los test fue usado en desarrollo

No garantiza buenos test (2), condiciona a veces a escribir test exitosos (no detectan errores)

Page 24: Pruebas de Software - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/PruebasdeSoftware.pdf · Pruebas de Software . Testing ... No planear esfuerzos de pruebas asumiendo

Otros criterios

1. Cuando todos los test den resultados esperados, los cuales fueron diseñados tal que satisfagan criterios de Condiciones y un análisis de Valores Límites

2. Cuando hayan sido detectados y reparados N errores

3. Cuando haya pasado M días sin detectar errores