Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE
Introducc
ión
• ¿Es posible construir software que no falle?.
• Hoy en día estamos acostumbrados a que el software
falle.
• Al construir software habitualmente se comenten
errores.
• En la industria, la técnica para solucionar los problemas
derivados de dichos errores, serán las pruebas de
software (‘testing’)
• Esta técnica consiste en una serie de pasos realizados
antes y después de la construcción de este software.
Introducc
ión
Analice las siguientes percepciones que tienen los
desarrolladores acerca de las pruebas:
• “Las pruebas son el proceso de demostrar que no hay
errores presentes”.
• “El propósito de las pruebas es demostrar que un
programa realiza las funciones indicadas
correctamente”.
• “Las pruebas son el proceso de establecer confianza en
que un programa hace lo que se supone que debe
hacer” .
Introducción
Analice las siguientes percepciones que tienen los
desarrolladores acerca de las pruebas:
El desarrollador desea salir bien de las pruebas
• No me equivoco
• Cumple con los requerimientos
• Está a tiempo
• De acuerdo al presupuesto
Definición
¿Qué es probar software?
• Probar es el proceso ejecución de un programa con el fin de
encontrar errores.
Validación: El proceso
de evaluación de un
sistema o de uno de sus
componentes durante o
al final del proceso de
desarrollo para
determinar si satisface
los requisitos marcados
por el usuario.
Conceptos
fundamentales
Conceptos
fundamentales
Técnicas para Verificación y Validación
Conceptos
fundamentales
Técnicas para Verificación y Validación
Conceptos
fundamentales
• Para entender las pruebas se debe diferenciar los
términos error, fallo y defecto.
• Estos conceptos están relacionados entre si, pero
tienen significados diferentes
Conceptos
fundamentales
Error (error): Una equivocación humana
Defecto (defect, fault, «bug»): «Se produce
cuando una persona comete un error.
• Fallo (failure): «La incapacidad de un sistema o de
alguno de sus componentes para realizar las
funciones requeridas dentro de los requisitos de
rendimiento especificados»
Conceptos
fundamentales
Un resultado incorrecto ----- Fallo
Condición de
Clases Válidas Clases Inválidas
Entrada
Código de Área 2) Código < 200.
# de 3 dígitos que no 1) 200≤ código ≤ 999 3) Código > 999.
empieza con 0 ni 1: 4) No es número.
Nombre 6) Menos de 6
Para identificar la 5) Seis caracteres. caracteres.
operación 7) Más de 6 caracteres.
8) “Cheque”
Orden 9) “Depósito” 12) Ninguna orden
Una de las Siguientes 10) “Pago factura” válida
11)“Retiro de fondos”
Caso de prueba: Es un conjunto de
entradas, condiciones de ejecución y
resultados esperados, que son desarrollados
para cumplir con un objetivo en particular
Dato Resultado
Valor Escenario
entrada esperado
Correcto /
incorrecto
Clases de equivalencia
TALLER
Ingenieria de Software II -
Universidad Popular del Cesar
TALLER
Considérese una aplicación bancaria, donde el usuario puede conectarse al
banco por Internet y realizar una serie de operaciones bancarias. Una vez
accedido al banco con las consiguientes medidas de seguridad (clave de
acceso y demás), la información de entrada del procedimiento que gestiona
las operaciones concretas a realizar por el usuario requiere la siguiente
entrada:
• Código del banco. Número de tres dígitos. En este último caso, el primero
de ellos tiene que ser mayor que 1.
• Código de sucursal. Un número de cuatro dígitos. El primero de ellos
mayor de 0.
• Número de cuenta. Número de cinco dígitos.
• Clave personal. Valor alfanumérico de cinco posiciones.
• Orden. Este valor se introducirá según la orden que se desee realizar.
Puede estar en blanco o ser una de las dos cadenas siguientes:
• “Talonario”
• “Movimientos”.
Técnica de Caja Negra.
Método de análisis de
valores limite
Conjetura de Errores
Ingenieria de Software II -
Universidad Popular del Cesar
Técnica de Caja
•. Blanca
Técnica de Caja
Blanca
• Garanticen que se ejercita por lo menos una vez todos
los caminos independientes de cada módulo.
• Ejerciten todas las decisiones lógicas en sus vertientes
verdadera y falsa.
• Ejecuten todos los bucles en sus límites y con sus límites
operacionales.
• Ejerciten las estructuras internas de datos para asegurar
su validez.
Técnica de Caja
Blanca
Criterios de
Cobertura
La cobertura es una medida porcentual quelógica
indica la
cantidad de código. Menos Riguroso
• Cobertura de Sentencias. (Mas Barato)
• Cobertura de decisiones.
• Cobertura de Condiciones.
• Criterios de decisión/Condición.
• Criterio de Condición Múltiple.
• Criterio de Cobertura de Caminos (impracticable)
Más Riguroso
(Más Caros)
Técnica de Caja
Blanca
Criterios de
Cobertura lógica
Cobertura de Sentencias: Que cada sentencia se ejecute al
menos una vez
Cobertura de decisiones: Que cada decisión tenga, por lo menos
una vez, un resultado verdadero y, al menos una vez, uno falso.
Cobertura de Condiciones: Que cada condición de cada decisión
adopte el valor verdadero al menos una vez y el falso al menos
una vez.
Criterios de decisión/Condición: Que se cumplan a la vez el
criterio de condiciones y el de decisiones.
Criterio de Condición Múltiple: La evaluación de las condiciones
de cada decisión no se realiza de forma simultánea.
Criterio de Cobertura de Caminos (impracticable)
Variantes de Técnica de Caja
Blanca
• a) Prueba del Camino Básico.
• b) Prueba de Condición.
• d) Prueba de Bucles.
Técnica de Caja Blanca
Prueba del camino Básico
X X
Región 4
7 8
a13
9
a14 • c) V (G) = 4+1= 5
10 Condiciones
Región 5
11
Taller
import java.util.*;
public class MayorDeTres {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2, n3;
System.out.print("Introduzca primer número: ");
n1 = sc.nextInt();
System.out.print("Introduzca segundo número: ");
n2 = sc.nextInt();
System.out.print("Introduzca tercer número: ");
n3 = sc.nextInt();
if(n1 > n2)
if(n1>n3)
System.out.println("El mayor es: " + n1);
else
System.out.println("el mayor es: " + n3);
else
if(n2>n3)
System.out.println("el mayor es: " + n2);
else
System.out.println("el mayor es: " + n3);
}}
PREGUNTAS
Lecciones aprendidas
Ingenieria de Software II -
Universidad Popular del Cesar
Prueba de
Condición
La cobertura de la prueba de las condiciones de un
programa da una orientación para generar pruebas
adicionales del programa.
• Prueba de Ramificaciones.
• Prueba de Dominio.
E1<operador-relacional>E2
Se necesitan 2n (n>0) pruebas como máximo
para encontrar errores.
Prueba de flujo
de datos
• Esta técnica selecciona caminos de un programa
de acuerdo a las definiciones y uso de las
variables.
• Bucles simples.
• Bucles Anidados.
• Bucles Concatenados.
• Bucles no estructurados.
Ejercicio
Se desean realizar pruebas de la caja negra sobre un programa
utilizado por una empresa que toma como entrada los siguientes
datos:
• Número-empleado es un campo de números enteros positivos de 3
dígitos (excluido el 000).
• Nombre-empleado es un campo alfanumérico de 20 caracteres.
• Meses-Trabajo es un campo que indica el número de meses que
lleva trabajando el empleado; es un entero positivo (incluye el 000)
de 3 dígitos.
• Directivo es un campo de un solo carácter que puede ser «D» para
indicar que el empleado es un directivo y «N» para indicar que no lo
es.
• Prima El programa asigna una prima (que se imprime en un listado) a
cada empleado, teniendo en cuenta al menos 12 meses de
antigüedad.
BIBLIOGRAFI
A
• Fairley R. Ingeniería de Software.