clase 05c niveles de pruebas

Post on 28-Jun-2015

438 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

top related