Clase 05c niveles de pruebas
Click here to load reader
-
Upload
demian-gutierrez -
Category
Technology
-
view
438 -
download
1
Transcript of Clase 05c niveles de pruebas
1
Pruebas de SoftwareNiveles de Pruebas
Universidad de los AndesDemián Gutierrez
Febrero 2013
2
¿Cómo Probar?
¿cómo probamos algo como esto?¿por qué es tan difícil hacer pruebas?
Sumar 2 Números
int sumarAyB(int a, int b) { return a + b;}
3
¿Cómo Probar?
OtraAplicación
Envío deCorreo
Inte
rfaz
de
Usu
ario
¿cómo probamos algo como esto?
4
Niveles de Pruebas /Pruebas Según su Alcance
PRUEBASSegún su Alcance
Unitarias
De Integración
De Sistema¿fin a fin? G
rano
Más F
ino
Más N
um
eros as
Más R
á pid
as
5
Niveles de Pruebas /Pruebas Unitarias
¿cómo probamos algo como esto?
salidasentradas
...
...
Inte
rfaz
de
Usu
ario
6
Niveles de Pruebas /Pruebas de Integración
¿cómo probamos algo como esto?
...
...
Inte
rfaz
de
Usu
ario
entradas salidas
7
Niveles de Pruebas /Pruebas De Sistema / Subsistema
¿cómo probamos algo como esto?
...
...
Inte
rfaz
de
Usu
ario
entradassalidas
8
bien, pero¿cuál es el problema?
9
Niveles de Pruebas /Pruebas De Sistema / Subsistema
esto es fácil de probar
...
...
Inte
rfaz
de
Usu
ario
entradassalidas
ponga a correr el sistema y comience a hacer clicks(se puede automatizar)
10
Niveles de Pruebas /Pruebas Según su Alcance
en estos dos casos tenemos problemas
¿qué tipo de problemas?
salidasentradas entradas salidas
11
Niveles de Pruebas /Pruebas Según su Alcance
los componentes que queremos probartienen dependencias
salidasentradas
12
Niveles de Pruebas /Pruebas Según su Alcance
que a su vez tienen dependencias
lo que hace difícilprobarlos por separado
salidasentradas
13
¿cómo se resuelve?
salidasA
C
entradas
B
14
Elimina
r Com
pone
ntes
Verda
dero
s
salidasA
C(verdadero)
entradas
B(verdadero)
salidasA
C(FALSO)(MOCK)
entradas
B(FALSO)(MOCK)
C(FALSO)(MOCK)
B(FALSO)(MOCK)
C(verdadero)
B(verdadero)
Cambiarlos por
“Componentes Falsos”
15
salidasA
C(verdadero)
entradas
B(verdadero)
salidasA
C(FALSO)(MOCK)
entradas
B(FALSO)(MOCK)en producción
(en funcionamiento)
Conductor de la Prueba
bajo prueba(en modo prueba)
16
Los Mocks y Stubs se pueden implementar sin la ayuda de ningún
framework, pero usualmente es aconsejable apoyarse en alguna librería
Dos muy conocidas en el mundo Java
JMockhttp://jmock.org/
Mockitohttp://code.google.com/p/mockito/
17
¿cómo mejorar la “testeabilidad”?
¿cómo escribir software “testeable”?
18
¿Cómo escribir código que sea “testeable”? ¡Cuatro consejos clave!
Establecer “contratos” entre los distintos componentes por medio de interfaces
Usar el principio de “inversión de dependencias” (Dependency Inversion)
(La “D” de SOLID)
Evitar usar el operador new para crear instancias concretas de un tipo dado (preferir interfaces)
¿qué? ¿cómo?
Apoyarse en frameworks de inyección de dependencias, por ejemplo, Spring
19
Gracias
¡Gracias!