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