10
Créditos: Créditos: Félix Rivas Félix Rivas Jorge Salas Jorge Salas

Unit Testing

Embed Size (px)

Citation preview

Page 1: Unit Testing

Créditos:Créditos:Félix RivasFélix RivasJorge SalasJorge Salas

Page 2: Unit Testing

Test = prueba, examenTest = prueba, examen

¿Qué prueban en un software?¿Qué prueban en un software?Un bloque de código fuenteUn bloque de código fuente

Una funcionalidad completaUna funcionalidad completa

¿Por qué probamos un software?¿Por qué probamos un software?Encontrar y corregir bugs.Encontrar y corregir bugs.

¿Cómo probamos un software?¿Cómo probamos un software?Input / OutputInput / Output

Page 3: Unit Testing

Pruebas de UnidadPruebas de Unidad

Unit = unidades Unit = unidades POO (Métodos) POO (Métodos)

Test = prueba, examenTest = prueba, examen

Si tenemos una función que realiza cierto cálculo:Si tenemos una función que realiza cierto cálculo:

función suma( a, b)función suma( a, b)

........

finfin

Podemos probar esta función de esta manera:Podemos probar esta función de esta manera:

Si (suma(1,1) es igual a 2)Si (suma(1,1) es igual a 2)

// :-D// :-D

caso contrariocaso contrario

// :-(// :-(

Page 4: Unit Testing

TécnicaTécnica

Verificar igualdad de dos valores.Verificar igualdad de dos valores.

Verificar que una sentencia sea verdadera.Verificar que una sentencia sea verdadera.

Verificar que un objeto exista.Verificar que un objeto exista.

Verificar que dos objetos sean del mismo tipo. Verificar que dos objetos sean del mismo tipo.

Page 5: Unit Testing

VentajasVentajas

Facilita el cambio.Facilita el cambio.

Simplifica la integración.Simplifica la integración.

Lleva la programación a otro nivel.Lleva la programación a otro nivel.

Aunque suene difícil de creer, Aunque suene difícil de creer, acelera elacelera el

desarrollo de software.desarrollo de software.

DesventajasDesventajasEstimaciónEstimación

Código extensoCódigo extenso

Page 6: Unit Testing

Existen Unit Testing Existen Unit Testing Frameworks para la mayoría Frameworks para la mayoría de lenguajes de de lenguajes de programación.programación.

Sunit: SmalltalkSunit: Smalltalk

Java: JUnitJava: JUnit

Ruby: Test::UnitRuby: Test::Unit

Python: PyUnitPython: PyUnit

Perl: TAP (Test Anything Protocol)Perl: TAP (Test Anything Protocol)

PHP: PHPUnitPHP: PHPUnit

.NET: NUnit.NET: NUnit

Page 7: Unit Testing

package pruebarapida; import org.junit.*; import static org.junit.Assert.*; import java.util.*;

public class TestingJava { @Test public void testEmptyCollection() { Collection collection = new ArrayList(); assertTrue(collection.isEmpty()); }

public static void main(String args[]) { org.junit.runner.JUnitCore.main("pruebarapida.TestingJava"); } }

Ejemplo: JUnitEjemplo: JUnit

Page 8: Unit Testing

package pruebarapida; import org.junit.*; import static org.junit.Assert.*; import java.util.*;

public class TestingJava {

private Collection<Object> collection;

@Before public void setUp() { collection = new ArrayList<Object>(); } @Test public void testEmptyCollection() { assertTrue(collection.isEmpty()); }

@Test public void testOneItemCollection() { collection.add("itemA"); assertEquals(1, collection.size()); } }

Ejemplo: JUnitEjemplo: JUnit

Page 9: Unit Testing

require ‘test/unit’ class PruebaSuma < Test::Unit::TestCasedef test_suma

assert_equal 4, 2+2assert_equal 4, 3+1assert_equal 5, 5+0assert_equal 0, -5+5

endend

Ejemplo: Test::UnitEjemplo: Test::Unit

Page 10: Unit Testing

Más información:Más información:

JUnit.orgJUnit.orghttp://www.junit.orghttp://www.junit.org

CactusCactushttp://jakarta.apache.org/cactushttp://jakarta.apache.org/cactus

CloverCloverhttp://www.thecortex.net/cloverhttp://www.thecortex.net/clover

dbUnitdbUnithttp://www.dbunit.orghttp://www.dbunit.org

HttpUnitHttpUnithttp://www.httpunit.orghttp://www.httpunit.org

Canoo WebTestCanoo WebTesthttp://webtest.canoo.comhttp://webtest.canoo.com

Temas relacionados:Temas relacionados:http://blog.espol.edu.ec/tawshttp://blog.espol.edu.ec/taws