Para demostrar que los sistemas subyacentes son perfectos
a) Necesidad de probar que son impecables
- Prueba matemática
- Solo realistamente posible para programas triviales
b) Hacer una prueba exhaustiva
- Solo es posible para programas triviales y algunos programas simples
- Tan pronto como un elemento de temporización ingresa a la prueba, no es posible hacer una prueba exhaustiva ya que el tiempo puede dividirse indefinidamente.
- Más allá de los programas triviales, las posibles opciones de ejecución explotan exponencialmente.
En las pruebas de software, la prueba exhaustiva solo se usa en pruebas unitarias de algunas funciones simples.
Ejemplo: si desea probar una entrada utf-8 de 8 caracteres en algún campo, elige 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 un cantidades finitas 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 tienes 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 el ajedrez en comparación 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) pruebe 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 te preguntas por qué no se puede probar el último 1% ... algunas ramas dependen de las ramas anteriores.
d) prueba de datos, prueba una cantidad de muestra con valor de borde, valores problemáticos comunes y números mágicos, cero, -1, 1, min +/- 1, max +/- 1, 42, valores rnd. Si esto no le brinda cobertura de ruta, sabe que no ha captado todos los valores en su análisis.
Si ya lo hace, debería estar listo para el examen básico de ISTQB.