Tests generativos en Clojure

Miércoles 04 de diciembre de 2019 | 18:30h | #CSTechHub

Miércoles 04 de diciembre de 2019

18:30h

Ver fuente

¿Cuanta confianza tienes de que el software en el que estás trabajando hace lo que tiene que hacer en todos los casos? Hay algunos profesionales que prueban manualmente algunas posibilidades. Hay otros que escriben tests unitarios automatizados para algunas de las posibilidades. Pero, ¿qué pasa con las posibilidades que no se les ha ocurrido probar? Muchos argumentarán que si se hace bien TDD, eso no es un problema. Básicamente porque después de escribir un test que demuestra que un caso no está implementando, se escribe el mínimo código posible para que ese test pase. Pero, al refactorizar el código, se hace que soporte más casos que no están probados con los tests. ¿Cuanta confianza tienen de que ese refactoring no ha introducido bugs en los casos no probados? Con este workshop vamos a explorar otro tipo de testing: el basado en propiedades. Lo haremos con el ejercicio conocido como "Coin Changer". Definiremos tests que prueban muchos más casos que las pruebas manuales o tests unitarios. Un ejemplo: "Coin Changer" nos devuelve la misma cantidad de dinero en monedas que el dinero que le hemos introducido.