Test = prueba, examen
¿Qué prueban en un software?
Un bloque de código fuente
Una funcionalidad completa
¿Por qué probamos un software?
Encontrar y corregir bugs.
¿Cómo probamos un software?
Input / Output
Pruebas de Unidad
Unit = unidades  POO (Métodos)
Test = prueba, examen
Si tenemos una función que realiza cierto cálculo:
función suma( a, b)
....
fin
Podemos probar esta función de esta manera:
Si (suma(1,1) es igual a 2)
// :-D
caso contrario
// :-(
Técnica
Verificar igualdad de dos valores.
Verificar que una sentencia sea verdadera.
Verificar que un objeto exista.
Verificar que dos objetos sean del mismo tipo.
Ventajas
Facilita el cambio.
Simplifica la integración.
Lleva la programación a otro nivel.
Aunque suene difícil de creer,
acelera el
desarrollo de software.
Desventajas
Estimación
Código extenso
Existen Unit Testing
Frameworks para la mayoría
de lenguajes de
programación.
Sunit: Smalltalk
Java: JUnit
Ruby: Test::Unit
Python: PyUnit
Perl: TAP (Test Anything Protocol)
PHP: PHPUnit
.NET: NUnit
Ejemplo: JUnit
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("pruebarapid
a.TestingJava");
}
}
Ejemplo: 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: Test::Unit
require ‘test/unit’
class PruebaSuma < Test::Unit::TestCase
def test_suma
assert_equal 4, 2+2
assert_equal 4, 3+1
assert_equal 5, 5+0
assert_equal 0, -5+5
end
end
Más información:
JUnit.org
http://www.junit.org
Cactus
http://jakarta.apache.org/cactus
Clover
http://www.thecortex.net/clover
dbUnit
http://www.dbunit.org
HttpUnit
http://www.httpunit.org
Canoo WebTest
http://webtest.canoo.com
Temas relacionados:
http://blog.espol.edu.ec/taws
Descargar

Diapositiva 1