lopezjurip / PropertyTesting

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

T2

Patricio López Juri (1263476J)

Resultados

Ver RESULTS.html.

Análisis

1.A

Las ventajas es que permite abstraerse de definir valores del dominio manualmente. Esto permite evitar sesgos del implementador del test y posiblemente probar elementos que una persona común no probaría.

Con esto podemos probar más valores que los típicos que uno suele considerar. Por ejemplo si queremos probar una función cuyo dominio sean los enteros, una persona usaría:

int[] pruebas = [-2, -1, 0 , 1, 2];

Con eso en teoría puede abordar los números bordes y críticos de los enteros, pero deja de lado números aleatorios y novedosos. Además ayuda a la mantenibilidad a encapsular el dominio en una clase generadora.

Otra ventaja es la formalidad matemática. Como ejemplo si se hace un correcto estudio del dominio del input, es posible obtener un mayor grado de coverage y mejor correctitud.

1.B

Nuevamente, puede confirmar correctitud del funcionamiento pero no puede asegurar la ausencia de bugs.

Finalmente, su garantía es que dentro del espacio de input definido y con cierta probabilidad, el software funciona.

Al ser dominios de input cuyos elementos finales son tomados de manera no-determinista, puede resultar difícil testear el software e incluso se necesitaría correr la suite de testing numerosas veces para intentar mininizar la probabilidad de pasar por alto un valor que genere desperfectos.

Por ejemplo puede pasar por alto un valor como Integer.MAX_VALUE que puede causar problemas de overflow en el computador. Este comportamiento no suele definirse formalmente en matemática y por ende es una fuente de bugs.

Otro ejemplo es que si el mismo espacio de input no está bien definido entonces no podemos asegurar que el software funcione. Al menos no se me ocurre una manera de testar que el dominio esté definido "programaticamente" y no de manera matemática.

About


Languages

Language:HTML 74.4%Language:Java 25.6%