(Me imagino que esto sería una buena pregunta de la entrevista , pero en mi caso es más pragmático que eso.)
Tenemos un large & Aplicación compleja que modela un proceso de reacción química extremadamente largo y sofisticado entre docenas de componentes químicos. Estamos en la etapa de diseño de Pruebas de Aceptación para la aplicación, pero estamos un tanto intimidados por el número intratable de posibles rutas a probar. Se me ocurrió que nuestra situación es muy parecida a la que debió enfrentar el equipo de desarrollo de Google Maps cuando llegó el momento de probar el algoritmo de planificación de rutas en su función "Obtener instrucciones". Obviamente no pudieron probar (verificar y validar) todas las rutas posibles. Entonces, ¿cómo obtuvieron la confianza de que su aplicación funcionaría en cada situación?
Y dado que no espero descubrir cómo lo hicieron ellos , permítame preguntarle: ¿Cómo usted trataría de diseñar un conjunto de pruebas con una cobertura de códigos adecuada? , para asegurarse de que una aplicación determinada es robusta, ¿cuando es literalmente imposible explorar cada camino potencial a través del sistema?
Lo que busco son los principios que usaría para desglosar un problema intratable en partes más pequeñas y manejables, cuya suma proporciona una estimación satisfactoria del conjunto: "No puedo probar todo, pero Puedo probar esto, esto y esto, y eso es suficiente ". No estoy buscando un enfoque que sea "probablemente correcto", sino uno que sea prudente , dado el presupuesto del mundo real / las limitaciones de tiempo.
(Estoy usando el ejemplo de los mapas de Google como una hoja para solicitar respuestas que sean lo más específicas posible).