Para mostrar que los sistemas subyacentes son impecables, ya sea
a) Necesidad de probar que son impecables
- prueba matemática
- Solo de manera realista posible para programas triviales
b) Haz una prueba exhaustiva
- Solo es posible para programas triviales y algunos programas simples
- Tan pronto como un elemento de tiempo ingresa a la prueba, no es posible hacer una
Prueba exhaustiva, ya que el tiempo se puede dividir indefinidamente.
- Más allá de los programas triviales, las posibles opciones de ejecución explotan exponencialmente.
En la prueba de software, la prueba exhaustiva solo se usa en la prueba unitaria de algunas funciones simples.
Ejemplo:
Si desea probar una entrada de 8 caracteres de utf-8 en algún campo, debe elegir cortar la entrada a 8 veces la longitud máxima 6 de utf-8 en bytes, lo que da 8 * 6 = 48 bytes para tener realmente una cantidad finita de posibilidades.
Ahora podría pensar que solo necesita probar los 1,112,064 puntos de código válidos de cada uno de los 8 caracteres, es decir. 1,112,064 ^ 8 (digamos 10 ^ 48) pruebas (que ya es poco probable que sea posible), pero en realidad tiene que probar cada valor de cada uno de los 48 bytes o 256 ^ 48 que es alrededor de 10 ^ 120, que es la misma complejidad que < a href="https://en.wikipedia.org/wiki/Shannon_number"> chess comparado con el número total de átomos en el universo de aproximadamente 10 ^ 80.
En su lugar, puede usar, en orden creciente de esfuerzo y cada prueba debe cubrir todo lo anterior:
a) prueba una buena y una mala muestra.
b) cobertura de código, es decir. intente probar cada línea de código, que es relativamente simple para la mayoría de los códigos. Ahora puede preguntarse cuál es el último 1% del código que no puede probar: errores, código muerto, excepciones de hardware, etc.
c) cobertura de ruta, se prueban todos los resultados de todas las ramas en todas las combinaciones. Ahora sabe por qué el departamento de pruebas lo odia cuando sus funciones contienen más de 10 condiciones. También se pregunta por qué el último 1% no se puede probar ... algunas sucursales dependen de las anteriores.
d) prueba de datos, prueba un número de muestra con valor de borde, valores problemáticos comunes y números mágicos, cero, -1, 1, min +/- 1, máx +/- 1, 42, valores rnd. Si esto no le proporciona cobertura de ruta, sabe que no ha capturado todos los valores en su análisis.
Si ya haces esto, deberías estar listo para el examen de base de ISTQB.