1 of 32

Diseño de Sistemas

2 of 32

Agenda

de la clase

  • Testing
  • Interfaces entre componentes
  • Consultas
  • Actividades para la próxima clase

2

3 of 32

1.

Testing

Acaso vos no probás el guiso mientras lo cocinás?!

3

4 of 32

Software

Testing

Validar comportamiento esperado

  • Buscamos encontrar bugs
  • No permite garantizar su ausencia

4

5 of 32

Software

Testing

Grado de integración

  • Unitarias
  • Integración
    • Baja
    • Alta
    • Completa o “End 2 End”

Estilos

  • “Unit” o “un assert por test”
  • Spec o “de comportamiento”
  • etc...

Grado de automatización

  • Manuales
  • Semiautomáticas
  • Automáticas

5

*Estas clasificaciones no buscan ser taxativas

6 of 32

Software

Testing

Calidad de los tests

  • Mantenibilidad
  • Estructura
  • Fixture
  • Independencia

6

7 of 32

Software

Testing

Impostores

  • Mocks/stubs/etc.
  • Respetan interfaz
  • Permiten completar “huecos”
  • Permiten prescindir de implementacion real
  • Permiten verificar comportamiento

7

8 of 32

Consultas sobre Testing

A repasar lo que no quedó claro

8

9 of 32

No me queda del todo claro la idea de las "Teorías" en la práctica vs las ‘Pruebas Tradicionales’

9

10 of 32

Vendría bien repasar la diferencia entre mock y stub

10

11 of 32

Puede ser que los mock objects sean, por ejemplo, si tenemos un objeto A y un objeto B, pero necesito ir testeando A, entonces mockeo a B parcialmente para ir testeando A, para que luego en la integración posta posta se cambie por la implementación completa de B (que se supone que alguien más lo hace)?

11

12 of 32

No me quedó claro en la cualidad “Corrección” a qué se refiere con “que sea fiel a la estructura”?

12

13 of 32

Cualidades del fixture: No entendí a qué se refiere con "favorecer el diseño de código puro". ¿Qué son los side effects?

13

14 of 32

Las pruebas de regresión, significa ejecutar tests de una iteración anterior para ver si andan?

14

15 of 32

Las pruebas de regresión, significa ejecutar tests de una iteración anterior para ver si andan?

15

16 of 32

En el apunte hacen hincapié de que un test idealmente debería tener 1 solo assertion. En caso de que haya más de 1 assertion, se está tratando de emular un Theory en Java ?

16

17 of 32

Me cuesta entender cuando es necesario y no en nuestros tests usar mocks y cuando sí

17

18 of 32

18

Más

preguntas?

19 of 32

2.

Interfaces entre componentes

Cómo conectar cosas y no morir en el intento

19

20 of 32

Interfaces entre

componentes

Interfaz

  • Forma de conectar componentes
  • Permite ponernos de acuerdo
  • Genera abstracciones
  • Permite abstraernos de detalles internos
  • Permite intercambiar

20

21 of 32

Interfaces entre

componentes

Saliente

  • Cómo le quiero hablar al mundo

Entrante

  • Cómo quiero que el mundo me hable (o cómo el mundo quiere que le hable)

21

22 of 32

Interfaces entre

componentes

Saliente Entrante

22

Adaptador

de mi sistema, en este caso

a otro sistema externo, en este caso

23 of 32

Consultas sobre Diseño de interfaces

A repasar lo que no quedó claro

23

24 of 32

No entendí bien que interesa definir/modelar de una interfaz entrante (en el parcial por ejemplo)

24

25 of 32

No entendí bien cuando conviene usar un Singleton como implementación de una interfaz saliente y cuándo conviene utilizar otra cosa.

25

26 of 32

No entendí eso de “conjunto de interesados (observers, listeners)”, la implementación vs. el Singleton, etc.

26

27 of 32

No termino de entender el patrón adapter, si entiendo su función o su objetivo, pero no su implementación o sus abstracciones

27

28 of 32

Qué es un Façade? Actúa como una especie de molde en el cual me abstraigo de como se implementa cada componente del mismo?

28

29 of 32

29

Más

preguntas?

30 of 32

3.

Para la próxima clase

A seguir aprendiendo

30

31 of 32

Para la clase que viene

Les estaremos enviando un email con:

  • Apuntes para que lean sobre
  • Form de seguimiento de los mismos
  • QMP V para que lo planteen. Obligatorio.
  • Un form para que entreguen un la solución

Recuerden enviar consultas al foro

31

32 of 32

Muchas Gracias!!

Si tienen consultas

https://github.com/dds-jv/foro

32