La respuesta simple es que depende del sistema. Si está escribiendo un software integrado para un monitor cardíaco o herramientas de monitoreo de seguridad para un reactor nuclear, entonces el estándar es mucho más alto que si está escribiendo una plataforma de blogs.
Esta es realmente una pregunta para un buen probador del sistema (y no soy uno) pero lo intentaré.
Su medida básica será la cobertura de la prueba: qué cantidad de la aplicación realmente se ha probado (tanto por prueba unitaria como funcionalmente).
Debe evaluar cada caso de uso potencial (y los parámetros para ese caso de uso) para determinar la probabilidad de que realmente se use (por lo que puede descartar casos extremos), complejidad (las cosas más simples tienen menos probabilidades de contener errores, o más bien es menos probable que contengan elementos difíciles). para encontrar errores), el costo de la prueba (en términos de tiempo) y el impacto potencial de un defecto si se descubre en esa área (aquí es donde entra el reactor nuclear vs. la plataforma de blogs).
En función de esa evaluación, debe determinar cuáles de ellos se evaluarán y con qué detalle. Una vez que tenga una lista como esa, el equipo (incluido un gerente de producto / gerente de proyecto / representante de usuario) puede revisar esa lista y establecer prioridades según las restricciones que tenga.
Una técnica útil para pensar es que también puede variar los casos de uso que se prueban con cada versión. Por ejemplo, puede tener una lista de casos de prueba no críticos y probar la mitad de ellos con un lanzamiento y la otra mitad con el siguiente (luego alternativo). De esta manera, está aumentando la cobertura total de la prueba que obtiene por el esfuerzo (aunque a riesgo de que se introduzcan errores de regresión).
Esto también podría extenderse a las pruebas de plataforma: si admite dos bases de datos de la base de datos (o varios navegadores), pruebe la mitad de la aplicación en una, la otra mitad en la otra y luego cambie la próxima versión.
(Creo que esto se conoce como rayas, pero no me cite al respecto).
Y luego, lo último en lo que debe pensar no es en lo que prueba sino en lo que realmente soluciona cuando se descubren problemas. Es común decir "corregir todos los errores", pero la realidad es que hay presiones de tiempo y no todos los errores son iguales. Una vez más, los controles regulares de errores con todas las partes relevantes son la mejor manera de avanzar. Esto es particularmente relevante cuando una corrección de errores puede ser particularmente intrusiva ya que el trabajo adicional en las pruebas de reevaluación y prueba que genera puede superar el beneficio de la corrección.