
| Códigos disponibles en git |
¿Por qué?
|
|
¿Qué?
|
|
¿Para qué?
|
|
¿Cómo?
Lo primero es conocer los requisitos del SUT porque si no es una pérdida de tiempo. En tal caso, es necesaria la retroalimentación con los usuarios para afinar las asunciones
— Hunt & Thomas
Pragmatic Unit Testing |
Implementar pruebas sin material de referencia a menudo conduce a agujeros en las pruebas. Hacer diseño e implementación de pruebas bajo estrechas y a menudo estresantes restricciones de tiempo hace que dichos agujeros sean mayores posiblemente, incluso para probadores experimentados. Esto subraya la necesidad de un cuidadoso análisis, diseño e implementación de pruebas de antemano, que se pueden combinar durante la ejecución de la prueba con técnicas reactivas para encontrar nuevos errores
— Kaner et al
Testing Computer Software |
Valores de Entrada y Salida
|
|
| Entrada | Salida |
|---|---|
|
|
| La inyección de los datos de entrada | La consulta de los datos de salida |
|---|---|
|
|
|
|
|
|
|
|
| Sin datos | |
|---|---|
Alternativamente, la comprobación de los datos de salida se puede realizar evitando conocer el dato de salida esperado mediante 2 posibles técnicas: |
|
|
|
Estrategias de Casos de Pruebas
| Pruebas de la Caja Negra o Comportamiento | Pruebas de Caja Blanca o Estructural |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pruebas de Caja Negra
| Prueba exhaustiva | ||
|---|---|---|
|
|
|
| Variables independientes | ||
|---|---|---|
|
|
|
| Variables dependientes | ||
|---|---|---|
|
|
|
Las técnicas de Variables Dependientes son aplicables cuando: |
|
|
|
|
|
Partición en Clases de Equivalencia
|
|
| Generación de Casos de Pruebas con Partición de Clases de Equivalencia | Resultado |
|---|---|
|
|
| Factor | Ejemplo |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Análisis de Valores Límite
Los errores se esconden en los rincones y se aglomeran en los límites
— Beizer
|
|
|
|
||
Vector Ortogonal
|
|
|
|
|
|
|
Vector de Pares
|
|
|
|
||||||||
|
Pruebas de Caja Blanca
|
|||
|
|
|
|
Grafo de Control de Flujo de Ejecución
|
|
|
| Ejemplo | Grafo | Ejemplo | Grafo |
|---|---|---|---|
{
<sent1>;
<sent2>;
...
}
|
if (<cond>) <sent>; |
||
if (<cond>) <thenSent>; else <elseSent>; |
while(<cond>) <sent>; |
||
do {
<sent>;
<sent>;
...
} while(<cond>);
|
for (<init>; <cond>; <inc>) <sent>;
<init>;
while (<cond) {
<sent>;
<inc>;
}
|
|
|
|||||
|
| Ejemplo de Construcción de Grafo de Control de Flujo de Ejecución | |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Complejidad Ciclomática
| Formulaciones | ||
|---|---|---|
|
||
Sea arc el número de conexiones y nod el número de nodos |
Sea nodCond el número de nodos condición |
Sea reg el número de regiones encerradas entre conexiones |
V(G) = arc – nod + 2 |
V(G) = nodCond + 1 |
V(G) = reg + 1 |
| Sentencia | Ejemplo | Grafo | Complejidad |
|---|---|---|---|
Sentencia Compuesta |
|
|
|
Sentencia alternativa simple |
|
|
|
Sentencia alternativa compuesta |
|
|
|
Sentencia iterativa indeterminada 0..N |
|
|
|
Sentencia iterativa indeterminada 1..N |
|
|
|
Sentencia iterativa determinada |
|
|
| Ejemplo de Cálculo Complejidad Ciclomática | ||
|---|---|---|
|
|
|
Caminos Independientes del Grafo de Control
|
||
|
|
|
| Ejemplo de Cálculo Complejidad Ciclomática | ||
|---|---|---|
|
|
|
Casos de Prueba
|
|
|
|
|
|
|
|
Herramientas
|
|
|
Comparativa entre Pruebas de Caja Negra y Caja Blanca
| Caja Negra | Caja Blanca |
|---|---|
|
|
|
|
|
|
|
|
|
|
Diseño del SUT para la Prueba
|
|
|
|
Sintesis
Bibliografía
| Obra, Autor y Edición | Portada | Obra, Autor y Edición | Portada |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ponente
|
|
|


























