casos de prueba problema 2-SATisfiabilty
-
16-09-2019 - |
Pregunta
He escrito un programa de solución para el problema de SAT-2 satisfacibilidad, alguien por favor me proporcione un caso de prueba con decir 10000 literales que sólo tiene una asignación satisfiable es decir sólo una solución
The format can be:(for 3 literals)
2 // No of clauses and then each clause
2 3
1 -2
corresponding to
(b+c).(a+!b)
Solución
Cobertura de la prueba suele ser difícil, la mayoría de las veces, simplemente se olvidan de un factor u otro.
Por lo general se desarrolla en dos pasos:
- Asegúrese de que los que resuelve un problema trivial (o algunos)
- Edge casos de prueba / condiciones de contorno: 0 cláusula por ejemplo,
- Casos Error de Prueba: entrada con formato incorrecto, problemas que no tienen solución
- Performance Test / Inyección de masas (ver si el programa no se bloquea bajo carga, no se escapa, ...)
2) y 3) son más o menos intercambiables, 4) y no entrarán si tiene maneras de investigar este tipo de información (evaluación comparativa, la detección de fugas de memoria ...).
Un punto importante es que no se debe aplicar ingeniería inversa a su código para escribir las pruebas, ya que terminaría probar su código, pero no prueba que obedece a las especificaciones.
Si se trata de un proyecto en el hogar, las especificaciones son generalmente informal, pero todavía existen (en su cabeza) y esto es después de ellos que se debe producir los casos de prueba.
Otros consejos
¿Funciona este enfoque?
(a + b ).(a + !b)
Esto sólo puede ser satisfechos si a es cierto.
(a + !b).(!a + !b)
sólo pueden cumplirse si b es falsa. Por lo tanto
(a + b ).(a + !b).(a + !b).(!a + !b)
especifica completamente los valores de a y b. Ahora podemos extender esto para cualquier número de literales.
Para probar su aplicación también puede ser que especifique requriements contradictorias, por lo tanto, algo que no tiene solución.