企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 测试数据生成:什么是,如何做,示例,工具 > 原文: [https://www.guru99.com/software-testing-test-data.html](https://www.guru99.com/software-testing-test-data.html) 作为一名测试人员,您可能会认为“设计测试用例具有足够的挑战性,那么为什么要烦恼像测试数据这样琐碎的事情”。 本教程的目的是向您介绍测试数据,它的重要性,并提供实用的技巧和窍门以快速生成测试数据。 所以,让我们开始吧! ## 什么是测试数据? 测试数据是在测试执行期间提供给软件程序的输入。 它表示在测试过程中影响软件执行或受其影响的数据。 某些数据可以用于肯定测试,通常用于验证给定功能的给定输入集会产生预期结果。 其他数据可用于否定测试,以测试程序处理异常,极端,异常或意外输入的能力。 设计不良的测试数据可能无法测试所有可能的测试方案,这会影响软件的质量。 ![Tips and Tricks to Generate Test Data](https://img.kancloud.cn/c5/87/c58724bfd0f9433ecd67f67da03b352a_1237x891.png) ## 什么是测试数据生成? 为什么要在测试执行之前创建测试数据? 大家都知道测试是一个产生和消耗大量数据的过程。 测试中使用的数据描述了测试的初始条件,并表示测试人员通过其影响软件的媒介。 它是大多数[功能测试](/functional-testing.html)的关键部分。 根据您的测试环境,您可能需要创建测试数据(大多数情况下)或至少为测试用例标识合适的测试数据(测试数据是否已创建)。 通常,测试数据是与打算用于的测试用例同步创建的。 可以生成测试数据- * 手动地 * 从生产到测试环境的海量数据复制 * 从旧客户端系统批量复制测试数据 * 自动化测试数据生成工具 通常,应该在开始执行测试之前生成示例数据,因为否则很难进行测试数据管理。 由于在**中,许多测试环境都需要创建多个测试步骤才能完成测试数据的准备工作或非常耗时的测试环境配置。** 。 另外,如果在 处于测试执行阶段时完成了 ***的测试数据生成,则可能会超出测试期限。*** 下面介绍了几种测试类型以及有关其测试数据需求的一些建议。 ## 白盒测试的测试数据 在[白盒测试](/white-box-testing.html)中,测试数据管理源自直接检查要测试的代码。 可以考虑以下因素来选择测试数据: * 希望覆盖尽可能多的分支机构。 可以生成测试数据,以便至少对程序源代码中的所有分支进行一次测试 * 路径测试:程序源代码中的所有路径至少要测试一次-测试数据准备工作可以覆盖尽可能多的情况 * 负面 [API 测试](/api-testing.html): * 测试数据可能包含用于调用不同方法的无效参数类型 * 测试数据可能包含用于调用程序方法的参数无效组合 ## 性能测试的测试数据 [性能测试](/performance-testing.html)是为了确定系统在特定工作负载下的响应速度而执行的测试类型。 这种测试的目的不是发现错误,而是消除瓶颈。 性能测试的一个重要方面是,所使用的样本数据集必须非常接近生产中使用的 ***“真实”或“实时”*** 数据。 出现以下问题:“好的,用真实数据进行测试,但是我如何获得这些数据?”答案很简单:从最了解的人中**到客户**。 他们可能能够提供已经拥有的一些数据,或者,如果他们没有现有的数据集,则可以通过提供有关真实数据的外观的反馈来帮助您。 如果您正在进行**维护测试**项目,则可以将生产环境中的数据复制到测试台中。 制作副本时,**匿名化**(加扰)敏感的客户数据(如社会安全号码,信用卡号,银行详细信息等)是个好习惯。 ## 用于安全测试的测试数据 [安全测试](/what-is-security-testing.html)是确定信息系统是否保护数据免受恶意攻击的过程。 为了完全测试软件安全性而需要设计的数据集必须涵盖以下主题: * **机密性:**客户提供的所有信息均被严格保密,不会与任何外部各方共享。 举一个简短的例子,如果应用程序使用 SSL,则可以设计一组测试数据,以验证加密是否正确完成。 * **完整性:**确定系统提供的信息正确。 要设计合适的测试数据,您可以先深入了解设计,代码,数据库和文件结构。 * **身份验证:**表示建立用户身份的过程。 可以将测试数据设计为用户名和密码的不同组合,其目的是检查只有经过授权的人员才能访问软件系统。 * **授权:**告知特定用户的权限。 测试数据可能包含用户,角色和 ***操作*** 的不同组合,以便仅检查具有足够特权的用户能够执行特定操作。 ## 黑盒测试的测试数据 在“黑匣子测试”中,测试人员看不到该代码。 您的功能测试用例可以具有满足以下条件的测试数据- * **无数据**:未提交数据时检查系统响应 * **有效数据**:提交有效测试数据时检查系统响应 * **无效数据**:提交 *InValid* 测试数据时检查系统响应 * **数据格式非法**:当测试数据格式无效时,检查系统响应 * **边界条件数据集**:满足边界值条件的测试数据 * **等效分区数据集**:用于验证您的等效分区的测试数据。 * **决策表数据集**:符合您的决策表测试策略的测试数据 * **状态转换测试数据集**:符合您的状态转换测试策略的测试数据 * **用例测试数据**:与您的用例同步的测试数据。 **注意**:根据要测试的软件应用程序,您可以使用部分或全部上述测试数据创建 ## 自动化测试数据生成工具 为了生成各种数据集,您可以使用各种自动测试数据生成工具。 以下是此类工具的一些示例: DTM [测试数据生成器](http://www.sqledit.com/dg/ "DTM")是一种完全可定制的实用程序,可生成数据,表(视图,过程等)用于数据库测试(性能测试,QA 测试,负载测试或可用性测试)。 Datatect 是 Banner Software 的 [SQL](/sql.html) 数据生成器,可在 ASCII 平面文件中生成各种实际的测试数据,或直接为 RDBMS 生成测试数据,包括 Oracle,Sybase,SQL Server 和 Informix。 #### 结论 总之,精心设计的测试数据使您能够识别和纠正功能上的严重缺陷。 在多阶段产品开发周期的每个阶段中,必须重新评估所选测试数据的选择。 因此,请始终关注它。