我需要测试驱动器Naïve字符串搜索算法。 http://en.wikipedia.org/wiki/String_searching_algorithm
有人可以解释我如何处理这个问题。
我的测试应该只测试外部行为吗? (即,无论使用何种算法,模式都会出现索引?)
或者我应该是特定于算法和测试驱动算法的具体实现吗?
答案 0 :(得分:1)
或者我应该是特定于算法和测试驱动算法的具体实现吗?
这在很大程度上取决于你的课程将如何使用。测试公共合同通常是要走的路(并且为此编写体面的测试相当容易),所以除非你的客户能够以某种方式使用实现细节知识,否则我会坚持这一点。
请注意,在纸上使用特定算法可以帮助精确定位几个基本测试,而无需严格执行与实现相关的测试,例如:
这应该为您提供更多特定于实现的测试的基本入口点。请记住,利用data driven testing可以帮助您完全避免使用实施级别的知识,并且足够大的数据集可能足以验证算法的正确性。