Upload
felix-rivas
View
5.184
Download
0
Embed Size (px)
Citation preview
Créditos:Créditos:Félix RivasFélix RivasJorge SalasJorge Salas
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
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
// :-(// :-(
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.
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
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
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
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
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
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