UF2: OPT SW Flashcards
Un CASO DE PRUEBA son
-Son los tipos de entrada que establecemos a través de unas condiciones de ejecución y unos resultados que se esperan para cumplir un objetivo.
- Precondición (condición a cumplir por un conjunto de parámetros)
- Postcondición (condición que cumplirá el valor devuelto)
- Aserción (predicado, incluido código del programador).
TÉCNICAS
para los CASOS DE PRUEBA (2 tipos)
- CAJA BLANCA (o de cristal)
- CAJA NEGRA (o de comportamiento)
Pruebas de CAJA BLANCA (estructurales o de cristal)
1ª Técnica para casos de prueba
Centrada en validar estructura interna del programa
Su funcionamiento se basa en el examen detalles procedimentales
Tendremos acceso al código fuente.
Se analizarán todas las posibilidades del código (inviable). Lo que si se puede es análisis de un conjunto de caminos independientes para crear casos de prueba
Asegurar por lo menos 1 vez se ejecuten y recorran: todos los caminos, sentencias, decisiones lógicas, bucles, estructuras de datos interna.
- Que se ejecutan por lo menos 1 vez todos los caminos del módulo
- Todas las sentencias sean ejecutadas al menos 1 vez.
- Todas las decisiones lógicas se ejecuten al menos 1 vez en parte verdadera y otra en la falsa.
- Todos los bucles sean probados en sus límites
- Se usen las estructuras de datos internas que aseguren su validez.
Técnica: Prueba del camino básico (diagrama de grafos)
Pruebas de CAJA NEGRA (o de comportamiento)
2ª Técnica para casos de prueba:
Basada en requisitos funcionales, sin fijarse en el funcionamiento interno del programa.
Se realiza sobre la interfaz (no conoce la estructura interna del programa).
El Código fuente no está disponible.
Busca errores en: interfaz, en estructuras de datos y bd externas | en funcionalidades erróneas en inicio o fin de programa.
Algunas técnicas:
- Clases de equivalencia
- Análisis de valores límite
TIPOS DE ERRORES
- Errores de compilación
- Errores en tiempo de ejecución
- Errores lógicos
Errores de COMPILACIÓN
Impiden la ejecución de un programa
Errores en tiempo de EJECUCIÓN
Aparecen durante la ejecución del programa (normalmente cuando se pretende realizar una operación que no tiene solución, por ejemplo división por 0).
ESTRATEGIAS DE PRUEBAS DE SOFTWARE
- Pruebas de UNIDAD (código)
- Pruebas de INTEGRACIÓN (diseño)
- Pruebas de VALIDACIÓN (requisitos)
- Prueba de SISTEMA (ingeniería del sistema)
Prueba de UNIDAD
Estrategias de Pruebas de Software:
Se CENTRA en la parte más pequeña (el módulo) tal cual está en el código fuente. (Se comprueba cada módulo para eliminar cualquier tipo de error en la interfaz o lógica interna).
El OBJETIVO es eliminar cualquier tipo de error en la interfaz o prueba lógica interna.
UTILIZA PRUEBAS de caja blanca y de caja negra.
Se realizarán pruebas SOBRE:
- La interfaz del módulo (comprobación de integridad)
- La estructura de datos locales (integridad)
- Las condiciones límite (que funciona con los límites establecidos)
- Caminos independientes de la estructura de control (asegurando por tanto que se ejecutan las sentencias al menos 1 vez)
- Todos los caminos de manejo de errores.
HERRAMIENTAS usadas: JUnit, CPPUnit, PHPUnit. Pruebas unitarias con JUnit (con métodos para realizar comprobaciones
- assertTrue(), assertFalse(),
- assertEquals(),
- assertNull(), assertNotNull(),
- assertSame(), assertNotSame(),
- fail()
Creación de pruebas con NetBeans
Prueba de INTEGRACIÓN
Estrategias de Pruebas de Software:
CONSTRUYE una estructura con los módulos probados en la prueba anterior de unidad. -
El diseño será el foco de atención.
2 enfoques:
- Integración no incremental (big bang): todo a la vez (se detectan muchos errores, pero la corrección es difícil).
- Integración incremental:
- Ascendente (empezando por los módulos más bajos).
- Descendente (empezando por el módulo principal* y descendiendo por la *jerarquía de control).
Prueba de VALIDACIÓN
Estrategias de Pruebas de Software:
Prueba que realizará el usuario en el entorno final de trabajo. (Las pruebas están realizadas de tal forma que las acciones ya son visibles para el usuario)
Se consigue la validación cuando el programa funciona de acuerdo con las expectativas expuestas por el cliente y además cumpla con lo indicado en el documento de especificación de requisitos de software (ERS). - (El software ya está ensamblado y se han detectado y corregido los errores).
Se realizan pruebas de Caja Negra de 2 tipos:
- Alfa (usuario + observación del desarrollador)
- Beta (usuario: usuarios finales en su lugar del trabajo sin la presencia del desarrollador, el usuario registra errores y se los comunica al desarrollador después para que cree una nueva versión del producto).
Prueba de SISTEMA
Estrategias de Pruebas de Software:
Se probará que cada elemento esté construido de forma eficaz y funcional.
El software del sistema se prueba como un todo. - Su misión es ejercitar en profundidad el software.
Tipos:
- Recuperación (se fuerza el fallo del sw y se comprueba la recuperación del sistema se realiza correctamente).
- Seguridad (se comprueba que el sistema esté protegido frente a acciones ilegales).
- y Resistencia (Stress): se lleva el sistema al límite de los recursos, sometiéndose a cargas masivas (objetivo: comprobar los extremos del sistema).
Pruebas de código:
Ejecución del programa para localizar errores.
Se comienza para su ejecución con varias entradas y una serie de condiciones de ejecución y observamos y registramos los resultados al compararlos con los resultados que esperamos - comprobaremos si el resultado es el esperado o no y porque).
Encontramos 3 tipos de pruebas:
- Prueba del camino básico
- Partición o clases de equivalencia
- Análisis de valores límite
PRUEBA DEL CAMINO BÁSICO
(Pruebas de código)
Técnica que mediante prueba, permite obtener la medida de la complejidad del sistema.
A partir de esta medida se puede definir un conjunto de caminos de ejecución.
Para obtener esta medida de complejidad utilizaremos la técnica de representación de GRAFO DE FLUJO.
Grafo de flujo
PRUEBA DEL CAMINO BÁSICO (Pruebas de código)
Cada CÍRCULO (nodo) representa 1 o más bifurcaciones (se enumeran en el diagrama.
Las FLECHAS del grafo se llaman aristas o enlaces (representan el flujo del control) terminarán en un nodo aunque no tenga ninguna sentencia procedimental.
Las REGIONES son áreas que estarán delimitadas por aristas y nodos (el área exterior del nodo es otra región más).
El nodo predicado contendrá una condición (salen 2 aristas dependiendo de esa condición)
- Secuencial
- IF condición ELSE
- IF condición AND
- IF condición OR
- Hacer mientras
- Repetir hasta
- Control múltiple (Case Switch)
Secuencial
(Grafo de Flujo)
IF Condición ELSE
(Grafo de Flujo)
IF Condición AND
(Grafo de Flujo)
IF Condición OR
(Grafo de Flujo)
Hacer mientras
(Grafo de Flujo)
Repetir hasta
(Grafo de Flujo)