Calidad en la Prueba de
Software
M.C. Juan Carlos Olivares Rojas
Diciembre 2009
http://antares.itmorelia.edu.mx/~jcolivar/documents/qualitytest.ppt
Competencia
• Genéricas: Análisis, Diseño de soluciones, Creatividad,
Trabajo en equipo, Aprender a Aprender
• Específicas: Diseñar planes de pruebas e implementarlos
utilizando alguna herramienta automatizada de pruebas.
¿Qué tiene mayor calidad?
Los dos tienen la
misma calidad
siempre y cuando
cumplan con sus
requerimientos
Para ello
debemos probar
sus
especificaciones
Pruebas
• La fase de pruebas se realiza de distintas formas tratando
de encontrar la mayoría de los errores que se encuentran de
manera inherente en el software.
• Pruebas: verificación y validación
• Depuración: es la detección, corrección y eliminación de
errores de software.
Pruebas
• Los errores del software le salen muy caros a Estados
Unidos: 59 500 millones de dólares al año.
• 50% de los fallos corresponde a los usuarios el resto a los
programadores y vendedores.
• Las pruebas al inicio del ciclo reducirían los costos por
fallos en 22 200 millones de dólares.
Pruebas
• Pruebas: mecanismo de control para asegurar la calidad
de un software.
• ¿Por qué tenemos que probar?
• Toda actividad de construcción (codificación) es
susceptible de cometer errores dado que se trata de una
actividad humana.
• Al realizar la depuración de un programa existe la
posibilidad de un 50% de cometer otro error.
Pruebas
• En el pasado se hacían pruebas previas antes de codificar
dado que no se tenían sistemas on-line como ahora.
Pruebas
• En el presente el software es más complejo y dinámico por
lo que en muchas ocasiones se empieza a construir software
sin probarlo de manera adecuada.
Pruebas
• El tener un plan de pruebas ayuda a clarificar el proceso de
depuración.
• El plan de pruebas debe de estar mucho antes de la
construcción del software.
• Existen muchos tipos de prueba dependiendo de la forma
en como se llevan acabo y dependiendo del autor. Nosotros
tomaremos el siguiente criterio.
Ejercicio 1
• Llenar los siguientes formatos para figuras chicas,
medianas e indistintas
Rojo Azul Amarillo Color
Indistinto
Triángulo
Cuadrado
Círculo
Forma
Indistinta
Tamaño:______
Solución Ejercicio 1
Rojo Azul Amarillo Color
Indistinto
Triángulo 0 0 2 2
Cuadrado 1 1 2 4
Círculo 0 0 0 0
Forma
Indistinta
1 1 4 6
COLOR
FORMA
Tamaño: Chico
Solución Ejercicio 1
Rojo Azul Amarillo Color
Indistinto
Triángulo 1 1 2 4
Cuadrado 1 0 1 2
Círculo 0 2 1 3
Forma
Indistinta
2 3 4 9
COLOR
FORMA
Tamaño: Grande
Solución Ejercicio 1
Rojo Azul Amarillo Color
Indistinto
Triángulo 1 1 4 6
Cuadrado 2 1 3 6
Círculo 0 2 1 3
Forma
Indistinta
3 4 8 15
COLOR
FORMA
Tamaño: Indistinto
Pruebas “Lean”
• Mito: trabajo del tester es encontrar defectos
• Inspección para prevenir o para detectar defectos (función del
SQA).
• Pruebas automatizadas antes que el código
– De aceptación
– Unitarias
• Eliminar el desperdicio: Lista de bugs.
Pruebas: Mejores Prácticas
• Diseñar un caso de prueba para cada funcionalidad del
software.
• Establecer como mínimo un caso de prueba de datos
correcto.
• Establecer como mínimo un caso de prueba de datos
incorrecto.
Pruebas
• Se recomienda probar lo antes posible cualquier fragmento
de código.
• Las pruebas ayudan al aseguramiento de calidad pero no
garantizan que un software esté 100% libre de errores.
• No se pueden tener pruebas que abarquen el 100% de los
casos de uso. Se deben realizar pruebas de segmentos
Mejores Prácticas
• Se necesita especificar las salidas o resultados esperados.
• Un programador debe de evitar probar sus propios
programas.
• Una organización no debe de probar sus propios
programas.
• Inspeccionar los resultados obtenidos de cada prueba.
Plan de Pruebas
• Se recomienda utilizar la metodología y formatos del
estándar IEEE 829 para documentación de pruebas de
software.
• Se simplificará el plan de pruebas con el siguiente formato.
Formato Plan de Pruebas
ID: 1 Nombre: Enviar artículo
Probado por: Fulanito
Descripción: Se introducen los datos del
artículo y de los autores.
Condiciones de Entrada:
nombreArticulo=“Calidad del Sw” …
emailAutor=“jcolivar@itmorelia.edu.mx”
Resultado Esperado: El sistema confirma la
correcta recepción del artículo enviando
un e-mail al autor de contacto con un
userid y password para que el autor pueda
posteriormente acceder al artículo.
Práctica de Laboratorio
• Realizar un programa que permita calcular el área de un
triángulo conociendo tres lados utilizando la fórmula de
herón.
• Realizar el plan de pruebas que garantice que el programa
está libre de errores
Casos de Pruebas
• ¿Con cuantos casos de prueba valido que el software está
correcto?
• Para cada caso de prueba sólo indicar las posibles
entradas.
• Por ejemplo:
• Caso de Prueba 1: A=3 B=4 C=5, el resultado
esperado debe de ser 6.
• ¿Es diferente el caso A=4 B=3 C=5?
Casos de Prueba
• Tipos de Triángulo en Base a sus lados:
• Se deben tener al menos un caso de cada uno de ellos y al
menos un caso no válido: A=0 B=-1 C=“Hola”.
Caso de Prueba
• ¿Cuál es el resultado esperado para el caso de prueba
A=1 B=2 C=3?
• Area=0
• ¿Qué pasó?
• !Exento este parcial quien pueda dibujar un triangulo de
dimensiones 1, 2 y 3 cm para cada lado!
Pruebas Unitarias con JUnit
• JUnit es la herramienta de pruebas unitarias
automatizadas más popular del mundo. Está enfocada en
Java aunque se ha migrado a varios lenguajes
denominándose XUnit.
• La mayoría de los IDEs actuales como NetBeans la
tienen integrada de forma automatizada.
•DEMO DE JUNIT
Conclusiones
• Las pruebas son el mecanismo de aseguramiento de la
calidad más importante que existe.
• El diseño de planes de pruebas es una de las actividades
más importantes del desarrollo de software.
• “Si se como probar un software, se lo que debe de hacer”.
Referencias
• Myers, et al. (2004), “The Art of Software Testing”,
Wiley, Estados Unidos, 2004, ISBN: 0-471-46912-2
• Roger S. Pressman, Ingeniería de software un enfoque
práctico.Ed. McGraw Hill.
• Piattini M.G. y F.O, Calidad en el desarrollo y
mantenimiento del software. Ed. RAMA.