Академический Документы
Профессиональный Документы
Культура Документы
y Blanca
Sesión 05
Ing. Henry Joe Wong Urquiza
pcsihewo@upc.edu.pe
Agenda
• Logro
• Introducción
• Clean Code
• Testeo de caja blanca
• Conclusiones
LOGRO
Logro
El estudiante al finalizar la
unidad desarrolla pruebas de
caja blanca, gris y difusas y su
implementación usando
herramientas CASE.
INTRODUCCIÓN
Definición
Entrada Salida
CLEAN CODE
Clean Code
Clean Code
Clean Code
Definición de Clean Code
-Ward Cunningham
URL: https://www.youtube.com/watch?v=9tJbunCrOmE
Stubs y Drivers
• Es necesario ejercitar las diferentes líneas de código
fuente.
• Un stub es una declaración de código que sustituye a la
funcionalidad de un programa.
• Ejemplo:
calcularVelocidad(int metros, int segundos) {
Auto.fijarVelocidad(20);
}
• Caminos Básicos
– 1-2-3-4-5-10
– 1-2-3-4-6-10
– 1-2-3-10
– 1-2-7-10
– 1-2-7-8-10
– 1-2-7-8-9-10
Análisis Estático por medio de
herramientas
• Propósito
– Detectar defectos causados por un desarrollo anómalo del código (ramas muertas,
código muerto, etc)
• Método
– La estructura del código se representa como un diagrama de control de flujo.
– Grafo dirigido.
– Los nodos representan sentencias o secuencias de sentencias.
– Las aristas representan las transferencias del flujo de control como decisiones y
bucles.
– Construcción mediante herramientas.
• Resultados
– Visión del conjunto del código del programa comprensible.
– Las anomalías pueden ser fácilmente detectadas, los defectos se hacen evidentes.
• Bucles abandonados por saltos.
• Ramas muertas.
• Retornos múltiples
Análisis de Flujo de Datos
• Propósito
– Detección de anomalías en el flujo de datos con la
asistencia de los diagramas de control de flujo y conjeturas
racionales respecto de las secuencias del flujo de datos
• Beneficios
– Detección fiable de anomalías en el flujo de datos.
– Se puede detectar fácilmente la localización exacta de
defectos.
– Es un buen complemento para otros métodos de pruebas.
• Desventajas
– Limitado a un rango reducido de tipos de defectos.
Análisis de Flujo de Datos
a y b se utilizan, S se define
n := 0
read (x) Anomalías de flujo de datos: n es
redefinido sin ser utilizado
n := 1
while x > y do Fallo de flujo de datos: y se utiliza
antes de que se ha definido
begin (primera vez alrededor del bucle)
read (y)
write( n*y)
x := x - n
end
Análisis de Flujo de Datos
– La métrica de McCabe ha •
•
n : # de nodos.
r : # de regiones cerradas del grafo.
sido muy popular en el • c : # de nodos de condición.
diseño de pruebas.
– Es un indicador del
número de caminos
independientes que
existen en un grafo.
¿Para que sirve V(G)?
2
3 5
Implicaciones de la Complejidad Ciclomática
• Test 3:
Línea Predicado Verdadero Falso
3 (a == 0) Test 1 Test 2
foo(0, 0, 0, 0, 0) foo(1, 1, 1, 1, 1)
return 0 return 1
7 ((a==b) OR ((c == d) AND bug(a) )) Test 2 Test 3
foo(1, 1, 1, 1, 1) foo(1, 2, 1, 2, 1)
return 1 return división
entre cero!
• Es necesario escribir
métodos cortos y
mantener número
ciclomático bajo.
Técnicas Comunes
Unitarias
Módulo Pruebas que afectan un grupo de clases
relacionadas a un módulo. Basado en escenarios
funcionales.
• JUnit
• TestNG
• PHPUnit
CONCLUSIONES
Conclusiones
• Las pruebas de caja blanca (también conocidas
como pruebas de caja de cristal o pruebas estructurales) se
centran en los detalles procedimentales del software, por
lo que su diseño está fuertemente ligado al código fuente.
El testeador escoge distintos valores de entrada para
examinar cada uno de los posibles flujos de ejecución del
programa y cerciorarse de que se devuelven los valores de
salida adecuados.
Entrada Salida
Gracias!