La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Casos de prueba con JUnit

Presentaciones similares


Presentación del tema: "Casos de prueba con JUnit"— Transcripción de la presentación:

1 Casos de prueba con JUnit
Grafos de flujo Obtención de los casos de prueba

2 public static int compareInt(int v1, int v2) {
if (v1 == v2) return 0; else if (v1 > v2) return 1; return -1; } public class SearchValues { public static int BinarySearch (ArrayList v, int x) { int izq, der, medio = 0; boolean encontrado; izq = 0; encontrado = false; der = v.size(); while ((izq <= der) && !encontrado) { medio = (izq + der) / 2; int i = ((Integer)v.get(medio)).intValue(); if (SearchValues.compareInt(i, x) == 0) encontrado = true; else if ((SearchValues.compareInt(i, x) > 0)) der = medio - 1; izq = medio + 1; } if (encontrado) return medio; return 0;

3 public class SearchValues { public static int BinarySearch (ArrayList v, int x) { int izq, der, medio = 0; boolean encontrado; izq = 0; encontrado = false; der = v.size(); while ((izq <= der) && !encontrado) { medio = (izq + der) / 2; int i = ((Integer)v.get(medio)).intValue(); if (SearchValues.compareInt(i, x) == 0) encontrado = true; else if ((SearchValues.compareInt(i, x) > 0)) der = medio - 1; izq = medio + 1; } if (encontrado) return medio; return 0; 1 3 2 4 5 6 7 8 9 10 11 12 13 14 15 16

4 Existen 5 Caminos básicos
Grafo de flujo Complejidad ciclomática 1 R5 19 Aristas – 16 Nodos + 2 => 5 4 Nodos predicado + 1 => 5 5 Regiones => 5 2 R4 4 3 14 Existen 5 Caminos básicos 5 15 16 6 Camino 1: Camino 2: Camino 3: Camino 4: Camino 5: 7 8 R1 R3 9 10 11 R2 12 13

5 Modificación para la prueba del camino básico
public int PathTest(ArrayList v, int valueToFind, int izqValue, int derValue) { int izq, der, medio = -1; boolean encontrado; izq = izqValue; //0; der = derValue; //v.size(); encontrado = false; // -----> 1 while ((izq <= der) && !encontrado) { // -----> 2 y 3 medio = (izq + der) / 2; // -----> 4 Integer integer = (Integer)v.get(medio); // -----> 5 int intValue = integer.intValue(); // -----> 6 int compareResult = SearchValues.compareInt(intValue, valueToFind); // -----> 7 if (compareResult == 0) // -----> 8 encontrado = true; // -----> 9 else { compareResult = SearchValues.compareInt(intValue, valueToFind); // -----> 10 if (compareResult > 0) // -----> 11 der = medio - 1; // -----> 12 else izq = medio + 1; // -----> 13 } if (encontrado) // -----> 14 return medio; // -----> 15 return -1; // -----> 16

6 Métodos de las pruebas a realizar (1)
public void BasicPathTest() { ArrayList list = new ArrayList(); list.add(2); list.add(4); list.add(8); list.add(9); list.add(12); list.add(20); list.add(21); list.add(22); list.add(30); list.add(40); assertEquals(PathTest(list, 2, 0, 1, false), 0); // Camino 1 y 4 assertEquals(PathTest(list, 4, 0, 2, false), 1); // Camino 2 y 4 assertEquals(PathTest(list, 2, 0, 3, false), 0); // Camino 3 y 4 assertNotSame(PathTest(list, 2, 0, 1, false), -1); // Camino 1 y 5 assertNotSame(PathTest(list, 4, 0, 2, false), -1); // Camino 2 y 5 assertNotSame(PathTest(list, 2, 0, 3, false), -1); // Camino 3 y 5 } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new TestSearchValues("BasicPathTest")); return suite; }

7 Métodos de las pruebas a realizar (2)
public void testCompareInt() { assertEquals(SearchValues.compareInt(4, 9), -1); assertEquals(SearchValues.compareInt(9, 4), 1); assertEquals(SearchValues.compareInt(9, 9), 0); } public void testBinarySearch() { ArrayList list = new ArrayList(); list.add(2); list.add(4); list.add(8); list.add(9); list.add(12); list.add(20); assertEquals(“Indice no coincide con el esperado", SearchValues.BinarySearch(list, 8), 2); assertEquals("Elemento no existe, debe devolver -1", SearchValues.BinarySearch(list, 14), -1); try { SearchValues.BinarySearch(null, 8); } catch (NullPointerException e) { fail("Excepción de lista nula que no se ha tratado"); list.add(17); list.add(-1); list.add(7); list.add(17); list.add(23); list.add(14); assertEquals("La lista no está ordenada", SearchValues.BinarySearch(list, -1), 0);


Descargar ppt "Casos de prueba con JUnit"

Presentaciones similares


Anuncios Google