【发布时间】:2012-12-26 12:47:58
【问题描述】:
可能重复:
How to generate sample XML documents from their DTD or XSD?
给定一个 XSD 架构,是否有一种方法可以从该 XSD 架构(所有这些都成功验证该 XSD 架构)生成 XML 文件集合以用于测试目的?
我们正在创建一系列使用 XML 文件传递输入/输出的 Java 6 应用程序。所有 XML 文件都应该成功地针对我们的 XSD 模式之一进行验证。 XSD 模式非常复杂,因此手动创建 XML 文件进行测试是禁止的。我们想要一组测试 XML 文件,这些文件将锻炼输入数据的限制(因此只有一个 XML 数据文件是不够的)。理想情况下,最好有一个工具允许测试人员为每个 XML 标记选择几个值(最大值、最小值、零值、负值等),然后该工具将生成使用这些测试人员选择的值的组合的 XML 文件。
系统正在 Microsoft Windows XP 环境中进行测试,但我们当然可以在不同的环境中生成 XML 测试文件(如果特定工具可以帮助自动执行此操作)。我们希望这种从 XSD 生成 XML 的功能用于测试目的,并且我们在应用程序本身中不需要它,因此可以使用独立的 XML 生成工具(如果存在的话)。
相关问题:似乎我发现的唯一现有工具是 jCAM(主项目站点位于 http://sourceforge.net/projects/camprocessor/;jCAM 功能列表和教程位于 https://www.oasis-open.org/committees/download.php/29661/XSD%20and%20jCAM%20tutorial.pdf)。除了教程之外,我还没有研究过这个工具。有人使用过这个工具吗?
【问题讨论】:
-
这不是一个有效的方法。您需要根据项目要求生成独立于模式的 XML 文件(您认为有效的(正面测试用例))以及您认为无效的 XML 文件(负面测试用例),并验证您的架构准确地验证或使它们无效。即使您可以找到一个工具来为您从模式生成 XML 文件,这些文件也不是好的测试用例,因为它们将基于模式的未经证实的特征,而不是您的项目的要求。这是有缺陷的逻辑。
-
用于测试的 XML 输入文件的自动生成不会用于验证应用程序的内部行为/逻辑(如您所解释的)......这需要更深入的知识,一个主题事项专家必须提供。我们不是在寻找一种自动化工具来取代人或他们的智慧。
-
@MarkOConnor、@JesusRamos、@Stony、@M42、@mpapis - 我认为您在这里忽略了重点。这个问题是不同的,只是因为它更多具体说明了生成示例 XML 所需的内容:
a tool which allows a tester to pick a few values for each XML tag和using **combinations** of those tester-chosen values.问题的细节是魔鬼!如果有的话,请在下次关闭问题时注意!哦,Oxygen 不能满足这里的要求。 -
此问题与 generate-a-single-sample-XML-file 问题不重复。请注意,我们希望创建多个 XML 文件以进行测试。许多工具使用数据值的半随机选择从 XSD 模式创建单个 XML 文件......但这对我们没有帮助。
-
示例:如果我们有一个天气子组件,输入模式可能包含气温和相对湿度(每个都有适当的有效值范围)。但是,温度和湿度的某些组合不能同时有效……这种相互依赖性可以使用一些更复杂的模式技术(例如 schematron)来捕获;子组件本身应该注意这种可能性。但是,测试团队不想为数百个输入值(以及每个输入值的几个示例值)手动生成数量荒谬的 XML 测试文件。