Documentos de Académico
Documentos de Profesional
Documentos de Cultura
verificación de
software mediante
pruebas
Definición Myers (1979): “Prueba es el proceso de
ejecución de un programa con la intención de hallar
errores.”
Definición IEEE Std 610.12 (1990): ”(1) El proceso de
operar un sistema o componente bajo condiciones
especificadas, observando o registrando los
resultados, y haciendo una evaluación de algún
aspecto del sistema o componente. (2) ”El proceso de
analizar un elemento de software para detectar las
diferencias entre las condiciones existentes y las
Definición requeridas (es decir, errores) y para evaluar las
de prueba características del elemento de software.”
Definición Galin (2004): ”Las pruebas de software son
un proceso formal llevado a cabo por un equipo de
pruebas especializado en el que se examinan una
unidad de software, varias unidades de software
integradas o un paquete de software completo
ejecutando los programas en una computadora.
Todas las pruebas asociadas se realizan de acuerdo
con los procedimientos de prueba aprobados en
casos de prueba aprobados.”
Componentes clave de
cualquier proceso de pruebas
Fuente: Walkinshaw, Neil (2017). Software Quality Assurance Consistency in the Face of Complexity and Change.
Editorial Springer.
Conjunto de entradas de prueba, condiciones de ejecución y
resultados esperados, desarrollados para un objetivo
concreto.
Consideraciones:
• Todos los casos de uso e historias de usuario tienen casos de
prueba.
• Para cada caso de uso e historia de usuario siempre existen
por lo menos un caso de prueba exitoso y uno no exitoso.
• Existen tanto casos de prueba específicos como generales.
Casos de prueba
Ejemplos simples
No depende de un
estado del sistema.
Fuente: Walkinshaw, Neil (2017). Software Quality Assurance Consistency in the Face of Complexity and Change.
Editorial Springer.
Un buen caso de prueba debe ser:
• Relativamente simple
• Preciso: de 10 a 15 pasos o
menos, no explicar la
funcionalidad una y otra vez.
Características • Repetible y reusable: fácil de
ejecutar.
• Rastreable.
• Un caso activo: de clic en…, el
sistema muestra…, aparece una
pantalla…
• Independiente.
Diseño de pruebas
Implica diseñar casos de pruebas con entradas y
salidas definidas para evaluar el sistema.
• Cadena vacía.
• Cadena consistente de únicamente un
espacio vacío.
Clases de • Cadena que empieza o termina en un
espacio en blanco.
equivalencia • Sintácticamente correcta: valores cortos
y largos.
• Valor sintácticamente incorrecto:
caracteres o combinaciones ilegales
(probar caracteres especiales como #, ",
', &, <, ... y caracteres "extranjeros"
escritos desde teclados internacionales)
Ejemplos de clases de equivalencia
para números:
• Cadena vacía.
• Cero
• Grandes y pequeños en rangos
Clases de positivos.
equivalencia • Grandes y pequeños en rangos
negativos.
• Fuera del rango de positivos.
• Fuera del rango de negativos.
• Que comiencen con ceros.
• Sintácticamente inválidos (por
ejemplo, que incluya letras).
Ejemplos de clases de equivalencia
para archivos:
• Blanco.
• Archivo de 0 bytes.
• Archivos grandes.
Clases de • Archivo con nombre corto.
equivalencia • Archivo con nombre grande.
• Nombre de archivo sintácticamente
incorrecto, si es posible (por
ejemplo, "Nombre Con$ Caracteres
Especiales.tar.gz").
Análisis de límites
Esta técnica se enfoca en los límites de los valores de entrada y
salida para una función.