作为一名测试人员,可能会认为“设计测试用例已经够有挑战性的了,那么为什么还要为测试数据这样琐碎的事情而烦恼呢?”目的如此,让我们开始吧!
什么是软件测试中的测试数据?
软件测试中的测试数据是在测试执行期间提供给软件程序的输入。测试数据既可用于正面测试,以验证函数对给定输入产生预期结果,也可用于负面测试,以测试软件处理异常、异常或意外输入的能力。
设计不佳的测试数据可能无法测试所有可能的测试场景,进而影响软件的质量。
什么是测试数据生成?
每个人都知道测试是一个产生和消耗大量数据的过程。测试中使用的数据描述了初始状态,它是大多数功能测试的关键部分。
根据测试环境,可能需要创建测试数据(大多数情况下),或者至少为测试用例确定合适的测试数据(测试数据已经创建)。
通常,测试数据的创建与其预期使用的测试用例同步。
可以生成测试数据-
- 手动
- 将数据从生产环境大规模拷贝到测试环境
- 从旧式客户端系统批量拷贝测试数据
- 自动测试数据生成工具
通常,样本数据应该在开始测试执行之前生成,因为否则很难处理测试数据管理。另外,如果测试数据生成是在测试执行阶段完成的,那么可能会超过测试截止日期。
下面描述了几种测试类型,并对它们的测试数据需求提出了一些建议。
白盒测试的测试数据
在白盒测试中,测试数据管理源自对待测试代码的直接检查。可以通过考虑以下因素来选择测试数据:
- 覆盖尽可能多的分支;可以生成测试数据,以便程序源代码中的所有分支至少测试一次
- 路径测试:程序源代码中的所有路径至少测试一次-测试数据准备可以覆盖尽可能多的情况
-
API检测:
- 测试数据可能包含无效参数类型
- 测试数据可能包含无效参数组合
用于性能测试的测试数据
性能测试是为了确定系统在特定工作负载下的响应速度而执行的测试类型。在复制完成的同时。
用于安全测试的测试数据
安全测试是确定信息系统是否保护数据免受恶意攻击的过程。为全面测试软件安全性而需要设计的数据集必须涵盖以下主题:
- 保密:客户提供的所有信息都严格保密,不得与任何外部机构共享。举个简短的例子,如果应用程序使用SSL,可以设计一组测试数据来验证加密是否正确完成。
- 完整性:确定系统提供的信息是正确的。要设计合适的测试数据,可以从深入查看设计、代码、数据库和文件结构开始。
- 身份验证:表示建立用户身份的过程。测试数据可以设计为用户名和密码的不同组合,其目的是检查只有授权人员才能访问软件系统。
- 授权:告知特定用户的权限。测试数据可以包含用户、角色和操作的不同组合,以便检查只有具有足够特权的用户才能执行特定操作。
用于黑盒测试的测试数据
在黑盒测试中,测试人员看不到代码。功能测试用例可以具有满足以下标准的测试数据-
- 无数据:未提交数据时检查系统响应
- 有效数据:提交有效测试数据时检查系统响应
- 无效数据:提交无效测试数据时检查系统响应
- 数据格式非法:当测试数据的格式无效时,检查系统响应
- 边界条件数据集:满足边界值条件的测试数据
- 等价分区数据集:限定等价分区的测试数据。
- 决策表数据集:使决策表测试策略合格的测试数据
- 状态转换测试数据集:满足状态转换测试策略的测试数据
- 用例测试数据:测试数据与用例同步。
注意:根据要测试的软件应用程序,可以使用上述部分或全部测试数据创建
自动测试数据生成工具
为了生成各种数据集,可以使用各种自动测试数据生成工具。以下是此类工具的一些示例:
DTM测试数据生成器,是一个完全可定制的实用程序,可以生成用于数据库测试(性能测试、QA测试、负载测试或可用性测试)的数据、表格(视图、过程等)。
Datatect是Banner Software公司的SQL数据生成器,可以在ASCII平面文件中生成各种逼真的测试数据,也可以直接为Oracle、Sybase、SQL Server和Informix等RDBMS生成测试数据。
结论
总之,设计良好的测试数据可以帮助识别和纠正功能中的严重缺陷。所以,一定要有效关注它。