Técnicas combinatorias y de mutación para testing de sistemas software
Macario Polo Usaola
Las pruebas de software son un elemento fundamental para garantizar la calidad de los sistemas que se construyen. Sin embargo, es frecuente que tanto los gestores como los desarrolladores, presionados por los plazos de entrega, no las ejecuten con la suficiente profundidad y no se detecten errores que, a la hora de pasar el sistema a producción, evidencien problemas con los usuarios.
En la literatura técnica y en todos los planes de estudio de Informática se incluyen una serie de técnicas de prueba bien conocidas (clases de equivalencia, valores límite, etc.). Además de recordar estos conceptos, este libro describe con profundidad estrategias combinatorias para testing, presentando ejercicios y dando al texto un enfoque muy práctico y claro, con la finalidad de que sus contenidos puedan ser aplicados con facilidad.
En una segunda parte del libro se describen las pruebas mediante mutación que, durante años, han sido objeto de investigación pero que, ahora, se revelan ya como una técnica muy útil aplicable a nivel industrial.
El libro resultará de utilidad tanto para gestores, desarrolladores y equipos de testers, que podrán repasar y actualizar sus conocimientos, si bien es también especialmente adecuado como texto para las asignaturas de ingeniería de software.
- Escritor
- Macario Polo Usaola
- Colección
- Profesional
- Materia
- Programación informática/desarrollo de softwar
- Idioma
- Castellano
- EAN
- 9788499641461
- ISBN
- 978-84-9964-146-1
- Páginas
- 170
- Ancho
- 17 cm
- Alto
- 24 cm
- Peso
- 369 g
- Edición
- 1
- Fecha publicación
- 06-09-2012
497,32 MX$24,58 US$
Índice de contenido
AUTORES
PREFACIO
PRÓLOGO
CAPÍTULO 1. CONCEPTOS FUNDAMENTALES
1.1 IMPOSIBILIDAD DE LAS PRUEBAS EXHAUSTIVAS
1.2 ERROR, DEFECTO O FALTA Y FALLO
1.3 CASO DE PRUEBA
1.4 OBJETIVO DE LAS PRUEBAS
CAPÍTULO 2. NIVELES DE PRUEBA
2.1 PRUEBAS DE CAJA NEGRA
2.2 PRUEBAS ESTRUCTURALES O DE CAJA BLANCA
2.3 PRUEBAS UNITARIAS
2.4 PRUEBAS DE INTEGRACIÓN
2.5 PRUEBAS DE SISTEMA
2.6 EJERCICIOS
CAPÍTULO 3. CRITERIOS DE COBERTURA PARA ARTEFACTOS SOFTWARE
3.1 CRITERIOS DE COBERTURA
3.2 UTILIDAD DE LOS CRITERIOS DE COBERTURA
3.3 UN POSIBLE MODELO DE TRABAJO
3.4 CRITERIOS DE COBERTURA PARA CÓDIGO FUENTE
3.4.1 Cobertura de sentencias
3.4.2 Cobertura de decisiones, de ramas o de todos los arcos
3.4.3 Cobertura de condiciones
3.4.4 Cobertura de condiciones/decisiones (Decision/Condition coverage o DCC)
3.4.5 Cobertura múltiple de condiciones (Multiple Condition Coverage, MCC)
3.4.6 Cobertura modificada de condiciones/decisiones (Modified Condition/ Decision Coverage, MC/DC
3.5 CRITERIOS DE COBERTURA PARA MÁQUINAS DE ESTADO
3.5.1 Cobertura de estados
3.5.2 Cobertura de transiciones
3.5.3 Cobertura de pares de transiciones
3.5.4 Cobertura de secuencia completa
3.6 EJERCICIOS
CAPÍTULO 4. VALORES DE PRUEBA
4.1 CLASES O PARTICIONES DE EQUIVALENCIA
4.2 VALORES LÍMITE (BOUNDARY VALUES)
4.3 CONJETURA DE ERRORES (ERROR-GUESSING)
4.4 APLICACIÓN DE LAS TÉCNICAS AL CONJUNTO DE DATOS DE SALIDA
4.5 CRITERIOS DE COBERTURA PARA VALORES DE PRUEBA
4.5.1 Cada uso (each use)
4.5.2 Todos los pares (pairwise)
4.5.3 Todas las tuplas de n elementos (n-wise)
4.6 EJERCICIOS
CAPÍTULO 5. ESTRATEGIAS DE COMBINACIÓN PARA LA OBTENCIÓN DE CASOS DE PRUEBA
5.1 ESTRUCTURA DE UN CASO DE PRUEBA
5.1.1 Ejemplo
5.2 EL ORÁCULO
5.2.1 Obtención de casos de prueba con oráculos a partir de máquinas de estado
5.3 ESTRATEGIAS DE COMBINACIÓN
5.3.1 Todas las combinaciones (All combinations)
5.3.2 Cada elección (Each choice)
5.3.3 AETG (Automatic Efficient Test Generator)
5.3.4 PROW (Pairwise with Restrictions, Order and Weight)
5.3.5 Antirandom
5.3.6 Algoritmo del peine (Comb)
5.3.7 Algoritmos aleatorios
5.4 CTWEB, UNA APLICACIÓN WEB PARA TESTING COMBINATORIO
5.5 EJERCICIOS
CAPÍTULO 6. PRUEBAS MEDIANTE MUTACIÓN
6.1 CONCEPTOS IMPORTANTES
6.2 OPERADORES DE MUTACIÓN
6.3 PRINCIPIOS DE LA MUTACIÓN
6.4 EL PROCESO DE PRUEBAS UTILIZANDO MUTACIÓN
6.5 TÉCNICAS DE REDUCCIÓN DE COSTES EN EL TESTING CON MUTACIÓN
6.5.1 Reducción de costes en la generación de mutantes
6.5.2 Reducción de costes en la ejecución
6.5.3 Reducción de costes en el análisis de resultados
6.5.4 Herramientas de mutación
6.5.5 Comparativa de herramientas de mutación para el lenguaje Java
CAPÍTULO 7. HERRAMIENTA BACTERIO: MANUAL DE UTILIZACIÓN
7.1 LICENCIA
7.2 SOFTWARE EXTERNO
7.2.1 ASM
7.2.2 JODE: Java Optimize and Decompile Environment
7.2.3 Una imagen del juego DOOM2
7.3 UN VISTAZO AL PROCESO DE PRUEBAS CON BACTERIO
7.4 CONFIGURACIÓN Y EJECUCIÓN
7.4.1 Configuración de carpetas
7.4.2 Generación de mutantes
7.4.3 Selección de los elementos para mutar
7.4.4 Selección de operadores de mutación
7.4.5 Selección de opciones para la generación de versiones
7.4.6 Generación de clases y versiones mutantes
7.4.7 Ejecución de casos de prueba
7.5 ANÁLISIS DE RESULTADOS
7.5.1 Presencia de azar
7.5.2 Enriquecimiento del test suite con nuevos casos de prueba
7.5.3 Testing exploratorio
7.5.4 Ejecución en paralelo
CAPÍTULO 8. AUTOEVALUACIÓN
8.1 PREGUNTAS
8.2 SOLUCIONES
ÍNDICE ALFABÉTICO
Libros relacionados
Matemáticas y gráficos con Python
(CTRD0036) Python Avanzado
(IFCD57) Programación para videojuegos en Unity
(IFCD68) Introducción a la programación en Python
Calidad y sostenibilidad de sistemas de información en la práctica
(IFCD32CP) Programación en Python
Python para finanzas
(IFCT095PO) Python y Django
Introducción a la programación con Python
Python Práctico