[MÚSICA] [MÚSICA] El Testing son pruebas que hacemos al software para verificar que haga lo que queremos que haga. Es decir, las pruebas definen el qué del software. Hay muchas formas de probarlo. En este curso nos enfocaremos en los tests unitarios automáticos. Podemos ver que los tests tienen una estructura interna común, lo que podemos llamar anatomía de los tests. Esta estructura está compuesta por el SETUP, donde se crean los objetos necesarios, el contexto para el test. El ACT, lo que quiero hacer o probar, y ASSERTIONS, que son las verificaciones sobre los resultados obtenidos. Algunas características deseables de los tests son: deben correr rápido, deben ser chicos, deben ser entendibles, debe haber un test por caso, debe estar en control de todo, misma cantidad de líneas de código que las del sistema y los nombres deben ser declarativos y resumir el given, when, then. Veamos algunas técnicas y buenas prácticas de testing. Testear un solo caso por test, esto no implica tener un solo assert. Empezar siempre por el test más sencillo. Empezar por la aserción primero, ayuda a entender qué se quiere hacer. Siempre debe haber un assert en el test o un fail, etc., de lo contrario no es un test. Recordar testear casos negativos, no sólo positivos. Tenemos la tendencia de verificar sólo el camino feliz y no las posibles fallas. Recordar que el test tiene que estar en control de todo. En el caso del testeo sobre secuencias, verificar la longitud que debe tener y verificar que estén únicamente los objetos que deben estar. Podemos establecer una posible clasificación de tests según su funcionamiento. Hay tests insoportables, tardan mucho, seguramente usan algún recurso lento, base de datos, conexión con otro sistema, etcétera. Hay test frágiles, test que se rompen cuando se modifica la implementación interna en un objeto, son test de caja blanca. Y hay tests erráticos, a veces funcionan, a veces no. Hay dependencia de pictures entre tests o usan recursos externos. Para resumir todo esto vimos qué es el testing, en concreto vimos algunas características deseables de los test unitarios automáticos. Además mencionamos algunas técnicas para hacer buenos test y vimos una clasificación de los test. [MÚSICA]