Por lo tanto, no estoy seguro de cuáles son los pros y los contras de la cobertura du-path
(o, por ejemplo, cualquier criterio de cobertura de flujo de datos) versus los criterios de predicado o los criterios de rama/nodo.¿Cuál es la razón detrás de la elección de tipos específicos de criterios de cobertura cuando se mira un algoritmo?
Veo que, en ciertos casos, hay claras ventajas de un tipo de cobertura para el otro. Por ejemplo, si una gran parte de mi algoritmo consiste en algo parecido al siguiente ejemplo
void m();
void n();
void method(boolean b) {
if (b) {
m();
} else {
n();
}
}
es evidente que el uso de cualquier tipo de criterios de cobertura de flujo de datos permite a un montón de lógica no probado (que es algo que nos gustaría para evitar). Usando para el caso dado, un criterio predicado/cláusula sería mucho mejor.
Ahora, lo que me gustaría saber es para el caso general, ¿cuáles son las cosas que busca en un algoritmo para decidir qué tipo de criterios de cobertura que siguen, entre
- Gráfico
- flujo de datos
- lógica
- entrada
- sintaxis
tipos de criterios de cobertura (básicamente, los que se encuentran en Introduction to Software Testing). Es decir, básicamente busco la heurística general a seguir, para el caso general.
Gracias
Agradezco su respuesta, pero supongo que, como se dijo, está completamente fuera del alcance de la respuesta esperada (en relación con los diferentes criterios de prueba, como se encuentra en Introducción a las pruebas de software). Pero bueno, parece que nadie sabe cómo responderlo, de todos modos. –
Pensé que lo probaría, ya que nadie más lo intentó ... Es difícil cuando el único experto en el tema es "usted". :) Tal vez podrías tratar de contactar al autor. ¡Buena suerte para encontrar tu respuesta! –