软件测试中的测试数据是什么?

作为一名测试人员,您可能会觉得“设计测试用例已经够有挑战性了,为什么还要在意测试数据这种微不足道的东西”。本教程旨在向您介绍测试数据、其重要性,并提供快速生成测试数据的实用技巧。那么,让我们开始吧!

软件测试中的测试数据是什么?

软件测试中的测试数据是在测试执行期间提供给软件程序的输入。它代表了在测试时影响或受软件执行影响的数据。测试数据用于积极测试,以验证功能在给定输入下产生预期结果;也用于消极测试,以测试软件处理异常、特殊或意外输入的能力。

设计不当的测试数据可能无法测试所有可能的测试场景,这将损害软件的质量。

Test Data in Software Testing

什么是测试数据生成?为什么测试数据应该在测试执行前创建?

众所周知,测试是一个产生和消耗大量数据的过程。测试中使用的数据描述了测试的初始条件,并代表了测试人员影响软件的媒介。它是大多数功能测试的关键部分。

根据您的测试环境,您可能需要创建测试数据(大多数情况下),或者至少为您的测试用例识别合适的测试数据(如果测试数据已经创建)。

通常,测试数据是与预期使用的测试用例同步创建的。

测试数据可以生成——

  • 手动生成
  • 将数据从生产环境批量复制到测试环境
  • 从旧版客户端系统批量复制测试数据
  • 自动化测试数据生成工具

通常,应该在开始测试执行之前生成样本数据,否则难以进行测试数据管理。因为在许多测试环境中,创建测试数据需要多个预先步骤或非常耗时的测试环境配置。此外,如果在测试执行阶段同时进行测试数据生成,您可能会超出测试截止日期。

以下描述了几种测试类型以及关于其测试数据需求的一些建议。

白盒测试的测试数据

白盒测试中,测试数据管理是直接检查待测试代码而得出的。测试数据可以根据以下几点进行选择

  • 最好覆盖尽可能多的分支;可以生成测试数据,使得程序源代码中的所有分支都至少被测试一次。
  • 路径测试:程序源代码中的所有路径都至少被测试一次——测试数据准备可以覆盖尽可能多的情况。
  • 负面API 测试
    • 测试数据可能包含用于调用不同方法的无效参数类型。
    • 测试数据可能包含用于调用程序方法的参数的无效组合。

性能测试的测试数据

性能测试是一种为了确定系统在特定工作负载下响应速度而进行的测试类型。这种测试的目标不是发现错误,而是消除瓶颈。性能测试的一个重要方面是,使用的样本数据必须非常接近于生产中使用的“真实”或“实时”数据。由此产生以下问题:“好吧,用真实数据进行测试是好事,但我如何获取这些数据?”答案非常直接:向最了解的人——客户——获取。他们可能能够提供一些已有的数据,或者,如果他们没有现有数据集,他们可以通过提供关于真实世界数据可能是什么样子的反馈来帮助您。如果您正在进行维护测试项目,您可以将生产环境中的数据复制到测试平台。在复制过程中匿名化(打乱)敏感客户数据(如社会安全号码、信用卡号、银行详细信息等)是一种很好的做法。

安全测试的测试数据

安全测试是确定信息系统是否能保护数据免受恶意意图影响的过程。为全面测试软件安全性所需设计的数据集必须涵盖以下主题:

  • 保密性:客户提供的所有信息均严格保密,不与任何外部方共享。举个简单的例子,如果应用程序使用 SSL,您可以设计一组测试数据来验证加密是否正确完成。
  • 完整性:确定系统提供的信息是正确的。要设计合适的测试数据,您可以从深入研究设计、代码、数据库和文件结构开始。
  • 身份验证:表示建立用户身份的过程。测试数据可以设计成用户名和密码的不同组合,其目的是检查只有授权人员才能访问软件系统。
  • 授权:说明特定用户的权限。测试数据可能包含用户、角色和操作的不同组合,以检查只有具有足够权限的用户才能执行特定操作。

黑盒测试的测试数据

在黑盒测试中,测试人员无法看到代码。您的功能测试用例可以有符合以下标准的测试数据——

  • 无数据:检查未提交数据时系统响应
  • 有效数据:检查提交有效测试数据时系统响应
  • 无效数据:检查提交无效测试数据时系统响应
  • 非法数据格式:检查测试数据格式无效时系统响应
  • 边界条件数据集:满足边界值条件的测试数据
  • 等价划分数据集:符合等价划分的测试数据。
  • 决策表数据集:符合决策表测试策略的测试数据
  • 状态转换测试数据集:符合状态转换测试策略的测试数据
  • 用例测试数据:与您的用例同步的测试数据。

注意:根据要测试的软件应用程序,您可以使用上述部分或全部测试数据创建方法。

自动化测试数据生成工具

为了生成各种数据集,您可以使用一系列自动化测试数据生成工具。以下是此类工具的一些示例:

DTM 测试数据生成器,是一个完全可定制的工具,用于为数据库测试(性能测试、质量保证测试、负载测试或可用性测试)目的生成数据、表(视图、过程等)。

Datatect 是 Banner Software 的一款SQL数据生成器,它以 ASCII 平面文件的形式生成各种真实的测试数据,或直接为包括 Oracle、Sybase、SQL Server 和 Informix 在内的 RDBMS 生成测试数据。

结论

总而言之,精心设计的测试数据可以帮助您发现并纠正功能中的严重缺陷。在多阶段产品开发周期的每个阶段,都必须重新评估所选的测试数据。因此,请始终密切关注它。为了简化此过程,使用高效的测试数据生成工具可以显著简化您的工作流程。