El programador observa la función max, que devuelve el mayor de dos números. ¿Cómo asegurarse de que funciona? Se pueden escribir pruebas: max(2,3)=3, max(5,5)=5. Pero ¿y si en algún lugar profundo del código hay un error que solo se manifieste con el número 65536? En lugar de adivinar, se puede formular una regla: «el resultado nunca es menor que cada uno de los argumentos». Esa es una propiedad: debe ser cierta para cualquier entrada.
La biblioteca ScalaCheck genera automáticamente cientos de números aleatorios, los introduce en la propiedad y avisa si la regla se incumple. Así funcionan las propiedades como una brújula: no comprueban una única ruta, sino que marcan una dirección válida para cualquier camino. Por ejemplo, para la función sum (suma de una lista de números), la propiedad «si se añade un número positivo, la suma crece» detecta el error de desbordamiento que las pruebas normales no ven.
La programación precisa consiste en que el desarrollador piense el código a través de sus propiedades. En lugar de hundirse en la niebla de la complejidad, sostiene una brújula de reglas verificables automáticamente. Esto hace que los programas sean más fiables y que modificarlos sea más seguro.
El nombre de la biblioteca ScalaCheck alude a la idea de verificación automática de propiedades, no a una 'comprobación de Scala'; es una herramienta para verificar propiedades en Scala.
En la serie 'Westworld', el comportamiento de los robots está determinado por reglas complejas, pero su corrección no está garantizada. La programación precisa podría ayudar a formular y verificar propiedades de comportamiento, previniendo fallos inesperados.