2-可满足性问题测试用例
-
16-09-2019 - |
题
我已经为 2-可满足性问题编写了一个 SAT 求解器,请有人为我提供一个测试用例,其中包含 10000 个文字,其中只有一个可满足的分配,即只有一个解决方案
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)
解决方案
测试覆盖率通常很困难,大多数时候,您只是忘记了一个或另一个因素。
我通常分几步进行:
- 确保它解决了一个小问题(或一些)
- 测试边缘情况/边界条件:例如 0 子句
- 测试错误案例:输入格式错误,无法解决的问题
- 测试性能/大量注入(查看程序是否在负载下不会崩溃,不会泄漏,...)
2) 和 3) 几乎可以互换,4) 仅当您有办法调查此类信息(基准测试、内存泄漏检测...)时才应该出现。
重要的一点是,您不应该对代码进行逆向工程来编写测试,因为您最终会测试代码,但不会测试它是否遵守规范。
如果这是一个家庭项目,规范通常是非正式的,但它们仍然存在(在您的脑海中),并且在它们之后您应该生成测试用例。
其他提示
请问这种方法的工作?
(a + b ).(a + !b)
如果a为真时才可以在线北京。
(a + !b).(!a + !b)
只能被满足,如果b为假。因此
(a + b ).(a + !b).(a + !b).(!a + !b)
完全指定a和b值。现在,我们可以为任何数量的文字的延伸这一点。
要测试您的应用程序,你可能还指定矛盾requriements,因此一些没有解决方案。
不隶属于 StackOverflow