|
|
Códigos disponibles en git |
¿Por qué?
|
|
¿Qué?
|
|
¿Para qué?
Gestionar eficientemente el código de pruebas unitarias, de componentes, integración y sistemas |
|||
|
|
|
|
¿Cómo?
Pruebas Unitarias
Clases de Pruebas
|
|
La Orgranización de Clases de Pruebas mantiene el Código de Producción separado físicamente en distintas carpetas del Código de Pruebas |
|
|
|
|
|
La Orgranización de Clases de Pruebas mantiene el Código de Producción lógicamente junto en el mismo paquete al Código de Pruebas |
|
|
|
|
|
Método de Pruebas
Cabecera
|
|
Nombrado de métodos de test | |
---|---|
|
|
Cuerpo
Parte | Triple A | BDD | Objetivo |
---|---|---|---|
Preparacion |
Arrange/ Setup |
Given |
para la creación y relación de los objetos del SUT, DOC, gestión de recursos (ficheros de datos, bases de datos,…),… |
Acción |
Act |
When |
para el ejercicio del SUT por el objetivo establecido en la prueba |
Aserción |
Assert |
Then |
para la comprobación de que el resultado esperado coincida con el resultado obtenido |
Demolición |
TearDown, no recomendado!!! … excepto en pruebas de integración de la base de datos, …!!! |
en caso necesarío, para liberar los recursos que fueron necesarios y devolverlos al estado anterior habilitando la independencia de otros Métodos de Pruebas que comparten dichos recursos y así reutilizarlos evitando su continua re-creación |
Ejemplos: | |||
---|---|---|---|
Ejecución
|
|
Reusabilidad
|
Aserciones Avanzadas
|
|
|
|
|
|
Objetivos de Hamcrest: ejemplos | ||
---|---|---|
Aumentar la legibilidad |
|
|
Mejorar los mensajes |
|
|
Imponer seguridad de tipos |
|
|
Aumentar la flexibilidad |
|
|
|
Exepciones del SUT
|
|
||||
|
|
Clase de Pruebas Parametrizada
Justificación | Objetivo | Versión | Coordinate | ClosedInterval |
---|---|---|---|---|
|
|
Repitiendo código |
||
Sin repetir código |
||||
Parametrizada |
||||
Parametrizada sin Constructor |
Conjuntos de Pruebas
Jerarquías de Pruebas
Conjunto de pruebas | Patrón Composite |
---|---|
|
|
|
Categorías de Pruebas
Para configurar sub-conjuntos de pruebas como en el caso de pruebas alfa, beta, humo,… ejemplo |
|
|
|
|
|
|
|
Pruebas ignoradas
|
|
Expiración del Tiempo de Ejecución
|
|
Aplicaciones | ||
---|---|---|
|
||
Pruebas de Componentes
¿Todas las Clases de Pruebas mostradas anteriormente son unitarias? Existe un debate: |
|||
Ejemplo: ticTacToe.models.GameTest |
Ejemplo: ticTacToe.models.IntegrationTest |
||
|
|
|
|
Pruebas de Integración
|
|
Pruebas de Sistema
|
Sintesis
Bibliografía
Obra, Autor y Edición | Portada | Obra, Autor y Edición | Portada |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ponente
|
|
|