如何测试需要复杂输入数据的程序?

时间:2009-07-20 03:33:17

标签: automated-tests regression-testing

我们有一套转换器可以获取复杂数据并对其进行转换。主要是输入是EDI和输出XML,反之亦然,尽管还有其他格式。

数据中存在许多相互依赖关系。有哪些方法软件可以生成这样的复杂输入数据?

现在我们使用两种方法:(1)我们多年来构建的一组示例文件,主要来自文档中的文件错误和样本,以及(2)生成伪随机测试数据。但前者仅涵盖了一小部分案例,后者有很多妥协,只测试了一部分字段。

在进一步实现(重新发明?)一个复杂的表驱动数据生成器之前,哪些选项找到了成功?

2 个答案:

答案 0 :(得分:2)

嗯,答案就在你的问题中。除非你实现了一个复杂的表驱动数据生成器,否则你正在使用(1)和(2)做正确的事情。

(1)涵盖“1个错误验证,1个新测试用例”的规则。 如果(2)的伪随机测试数据的结构在现实生活中是对应的,那就很好。

(2)总是可以改进,并且在考虑新的边缘情况时它会主要随着时间的推移而改善。测试的随机数据的问题在于它只能是随机的,在测试用例中计算随机数据的预期输出变得非常困难,你必须在测试用例中基本重写测试算法。

所以(2)将始终匹配一部分案例。如果有一天它匹配所有情况,它实际上将是您的算法的新版本。

答案 1 :(得分:0)

  1. 我建议不要使用随机数据,因为如果不是不可能重现报告的错误(我知道你说'伪随机',只是不确定你的意思)

  2. 对整个数据文件进行操作可能会考虑功能或集成测试。我建议将您的文件集与已知错误一起使用并将其转换为单元测试,或至少为您遇到的任何未来错误执行此操作。然后,您还可以扩展这些单元测试,以包括您没有任何“样本数据”的其他错误条件的覆盖范围。每当您想到要检查的条件/规则违规时,这可能会更容易提出一个全新的数据文件。

  3. 确保您对数据格式的解析是根据格式中数据的解释进行封装的。这将使上述单元测试变得更加容易。

  4. 如果您肯定需要开展测试,您可能需要考虑获取文件格式的机器可读描述,并编写测试数据生成器,该数据生成器将分析格式并根据它生成有效/无效的文件。这也将允许您的测试数据随着文件格式的发展而发展。