unit-testing
Pruebas unitarias de Loops (Java)
Buscar..
Introducción
Los bucles considerados como una de las estructuras de control importantes en cualquier lenguaje de programación. Hay diferentes maneras en que podemos lograr la cobertura de bucle.
Estos métodos difieren según el tipo de bucle.
Bucles individuales
Bucles anidados
Bucles concatenados
Prueba de un solo bucle
Estos son bucles en los que su cuerpo de bucle no contiene otros bucles (el bucle más interno en el caso de anidados).
Para tener cobertura de bucle, los evaluadores deben realizar las pruebas que se indican a continuación.
Prueba 1: Diseñe una prueba en la que el cuerpo del bucle no se ejecute en absoluto (es decir, cero iteraciones)
Prueba 2: Diseñe una prueba en la que la variable de bucle-control sea negativa (número negativo de iteraciones)
Prueba 3: Diseñe una prueba en la que el bucle se repita una sola vez.
Prueba 4: Diseñe una prueba en la que el bucle se repita dos veces
Prueba 5: Diseñe una prueba en la que el bucle itere cierto número de veces, digamos m donde m <número máximo de iteraciones posible
Prueba 6: Diseñe una prueba en la que el bucle itere uno menos que el número máximo de iteraciones
Prueba 7: Diseñe una prueba en la que el bucle recita el número máximo de iteraciones
Prueba 8: Diseñe una prueba en la que el bucle se repita una vez más que el número máximo de iteraciones
Considere el siguiente ejemplo de código que aplica todas las condiciones especificadas.
clase pública SimpleLoopTest {
números int [] privados = {5, -77,8, -11,4,1, -20,6,2,10};
/** Compute total of positive numbers in the array
* @param numItems number of items to total.
*/
public int findSum(int numItems)
{
int total = 0;
if (numItems <= 10)
{
for (int count=0; count < numItems; count = count + 1)
{
if (numbers[count] > 0)
{
total = total + numbers[count];
}
}
}
return total;
}
}
clase pública TestPass extiende TestCase {
public void testname() throws Exception {
SimpleLoopTest s = new SimpleLoopTest();
assertEquals(0, s.findSum(0)); //Test 1
assertEquals(0, s.findSum(-1)); //Test 2
assertEquals(5, s.findSum(1)); //Test 3
assertEquals(5, s.findSum(2)); //Test 4
assertEquals(17, s.findSum(5)); //Test 5
assertEquals(26, s.findSum(9)); //Test 6
assertEquals(36, s.findSum(10)); //Test 7
assertEquals(0, s.findSum(11)); //Test 8
}
}
Prueba de bucles anidados
Un bucle anidado es un bucle dentro de un bucle.
El bucle externo cambia solo después de que el bucle interno esté completamente terminado / interrumpido.
En este caso, los casos de prueba deben diseñarse de tal manera que
Comience en el bucle más interno. Establecer todos los bucles externos a sus valores mínimos. Realice pruebas de bucle simple en el bucle más interno (Test3 / Test4 / Test5 / Test6 / Test7). Continuar hasta que todos los bucles probados
Prueba de bucles concatenados
Se concatenan dos bucles si es posible alcanzar uno después de salir del otro en el mismo camino de entrada a salida. A veces estos dos bucles son independientes entre sí. En esos casos, podemos aplicar las técnicas de diseño especificadas como parte de las pruebas de bucle único.
Pero si los valores de iteración en un bucle están relacionados directa o indirectamente con los valores de iteración de otro bucle y pueden ocurrir en la misma ruta, entonces podemos considerarlos como bucles anidados.