jueves, mayo 31, 2007

TDD (El test antes del código) (2)

Vamos a hacer un ejemplo sencillo. Una calculadora que suma y resta.
Primero, analizamos las reglas de negocio.
1- Dados dos numeros, debe sumarlos o restarlos.
2- Los numeros deben ser enteros y positivos.
3- El resultado debe ser también entero y positivo
4- La entrada no puede tener ningún valor mayor que 10000

Segundo. La lista de test. Nos tomamos nuestro tiempo para hacerla.
Vamos a verificar también que cumplimos las reglas de negocio.

Antes de hacer la lista, es conveniente hacer una lista de valores frontera que pueden ser causantes de problemas o, por una u otra razón, tienen alguna importancia.

En este caso, los valores frontera serían: 0 (por ser el límite entre positivos y negativos, que mencionan las reglas de negocio 2 y 3), 10000 (para comprobar la regla de negocio 4) y -1 y 1, por ser el anterior y el posterior al valor frontera 0 y 10001 y 9999, por ser el anterior y el posterior al valor frontera 10000.

Analizamos también que facetas de IDE de Visual Studio hacen que no tengamos que testear algunas reglas. Por ejemplo, no deberemos testear que pasaría si metemos un número decimal, pues el método SUMA no admitirá esos valores y fallará por sí mismo.

Lista de Test para la SUMA
(1) Dado un -1 (ejemplo de entero negativo) y 2 (ejemplo de entero positivo), obtenemos una excepción (cumplimos la regla de negocio 2)
(2) Dado un 1 (ejemplo de entero positivo) y un -1 (ejemplo de entero negativo), obtenemos una excepción (cumplimos la regla de negocio 2)
(3) Dado un 1 (ejemplo de entero positivo) y un 3 (ejemplo de entero positivo), obtenemos un 4 (cumplimos la regla de negocio 1 y la 3)
(4) Dado un 0 (ejemplo de frontera) y un 1 (ejemplo de entero positivo), obtenemos un 1 (cumplimos la regla de negocio 1 y la 3)
(5) Dado un 1 (ejemplo de entero positivo) y un 0 (ejemplo de frontera), obtenemos un 1 (cumplimos la regla de negocio 1 y la 3)
(6) Dado un 10000 (ejemplo de numero grande) y 1 (ejemplo de entero positivo), obtenemos 10001 (cumplimos la regla de negocio 1 y la 3)
(7) Dado un 1 (ejemplo de entero positivo) y 10000 (ejemplo de numero grande), obtenemos 10001 (cumplimos la regla de negocio 1 y la 3)
(8) Dado un 10001 (ejemplo de frontera numero grande) y 1 (ejemplo de entero positivo), obtenemos una excepción (cumplimos la regla de negocio 4)
(9) Dado 1 (ejemplo de entero positivo) y un 10001 (ejemplo de frontera de numero grande), obtenemos una excepción (cumplimos la regla de negocio 4)
(10) Dado un 1 (ejemplo de entero positivo) y 9999(ejemplo de frontera de numero grande), obtenemos 10000 (cumplimos la regla de negocio 1 y la 3)
(11) Dado un 9999(ejemplo de frontera de numero grande) y un 1 (ejemplo de entero positivo, obtenemos 10000 (cumplimos la regla de negocio 1 y la 3)

No cerramos la lista, porque si encontramos algún otro test, lo añadiremos.

A programar!!!!!

No hay comentarios.: