Engineering">
Pruebas Unitarias
Pruebas Unitarias
Pruebas Unitarias
CURSO: CONSTRUCCIÓN DE
INVESTIGADORES:
DOCENTE:
2018
I. INTRODUCCIÓN
II. OBJETIVOS
PROPIEDAD SIGNIFICADO
Identificador Código único de la prueba
Valores de entrada Descripción de los datos de entrada de
un objeto de prueba
Resultados esperados Datos de salida que se espera se
produzcan
Precondiciones Situación previa a la ejecución de la
prueba o características
de un objeto de prueba antes de
ejecutar un caso de prueba
Postcondiciones Características un objeto de prueba
tras la ejecución de la
prueba
software hasta su finalización de uso; así como los entregables que se van a
generar y entregar
• Desarrollo y pruebas son dos ramas iguales. Cada nivel de desarrollo tiene su
correspondiente
nivel de pruebas.
(rama izquierda).
Definición de requisitos
o Documentos de especificación
o Definición de arquitectura/interfaces
Programación
Son pruebas para aceptar formalmente el software. Son las pruebas de sistema
del
cliente/usuario.
52
• Herramientas de calidad
del Producto Software
–PMD
–Check Style
–SONAR-
–.Simian
- MATERIALES:
-Una computadora portátil
-JAVA instalado
-tener conocimientos sobre pruebas de software
-PROCEDIMIENTO:
package com.softtek.ecuacion;
/**
* Ecuacion de primer grado
* Solucion: x = (c - b) / a
* es decir: x = (parte3 - parte2)/parte1
*/
public class EcuacionPrimerGrado {
package com.softtek.ecuacion;
if ("-".equals(operador)) {
return Integer.valueOf(parte2) * (-1);
}
return Integer.valueOf(parte2);
}
return partes1;
}
}
A continuación se muestra los tests unitarios del parseador. El SUT es la clase
Parseador y no tiene ninguna dependencia con ningún otro componente.
package com.softtek.ecuacion;
import org.junit.Test;
@Test
public void obtenerParte1Unidades() {
assertEquals(2, resultado);
}
@Test
public void obtenerParte2Suma() {
assertEquals(1, resultado);
}
@Test
public void obtenerParte3Positivo() {
assertEquals(3, resultado);
}
@Test
public void obtenerOperadorSuma() {
assertEquals("+", operador);
}
}
package com.softtek.ecuacion;
import org.junit.Test;
@Test
public void solucionaEcuacionConMenos() {
@Test
public void solucionaEcuacionConMas() {
assertEquals(valueExpected, result);
}
@Test
public void solucionaEcuacionConParte3Mayor0() {
assertEquals(valueExpected, result);
}
package com.softtek.ecuacion;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@InjectMocks
private EcuacionPrimerGrado ecuacionPrimerGrado;
@Mock
private Parseador parseador;
@Before
public void inicializaMocks() {
MockitoAnnotations.initMocks(this);
}
@Test
public void solucionaEcuacionConMenos() {
String ecuacion = "2x - 1 = 0";
when(parseador.obtenerParte1(ecuacion)).thenReturn(2);
when(parseador.obtenerParte2(ecuacion)).thenReturn(-1);
when(parseador.obtenerParte3(ecuacion)).thenReturn(0);
Double result =
ecuacionPrimerGrado.obtenerResultado(ecuacion);
assertEquals(valueExpected, result);
}
@Test
public void solucionaEcuacionConMas() {
when(parseador.obtenerParte1(ecuacion)).thenReturn(2);
when(parseador.obtenerParte2(ecuacion)).thenReturn(1);
when(parseador.obtenerParte3(ecuacion)).thenReturn(0);
Double result =
ecuacionPrimerGrado.obtenerResultado(ecuacion);
assertEquals(valueExpected, result);
}
}
V. CONCLUCIONES
VI. BIBLIOGRAFIA
ANEXOS
PANTALLASO DE EJEMPLO
REALIZADO EN CLASES