每个人都知道测试是一个产生和消耗大量数据的过程。测试中使用的数据描述了测试的初始条件,并代表测试人员通过其影响软件的介质。它是大多数功能测试的关键部分。但实际上测试数据是什么?为什么用它?也许你会想知道’设计测试用例足够具有挑战性,然后为什么要像测试数据一样烦恼’本教程的目的是向您介绍测试数据,它的重要性,并提供快速生成测试数据的实用技巧和窍门。那么,让我们开始吧!
什么是测试数据?它为什么如此重要?
测试数据实际上是给予软件程序的输入。它表示影响或受特定模块执行影响的数据。一些数据可用于正测试,通常用于验证给定函数的给定输入集产生预期结果。其他数据可用于否定测试,以测试程序处理异常,极端,异常或意外输入的能力。设计不良的测试数据可能无法测试所有可能妨碍软件质量的测试场景。
什么是测试数据生成?为什么应该在测试执行之前创建测试数据?
根据您的测试环境,您可能需要创建测试数据(大多数时间)或至少为您的测试用例确定合适的测试数据(测试数据是否已创建)。
通常,测试数据与其打算用于的测试用例同步创建。
可以生成测试数据 –
• 手动
• 从生产到测试环境的大量数据副本
• 从旧版客户端系统批量复制测试数据
• 自动测试数据生成工具
通常,在开始测试执行之前应生成样本数据,因为很难执行测试数据管理。由于在许多测试环境中创建测试数据需要许多前置步骤或测试环境配置,这非常耗时。此外,如果测试数据生成做,而你是在测试执行阶段,你可能会超过你的测试的最后期限。
下面介绍几种测试类型以及有关其测试数据需求的一些建议。
白盒测试的测试数据
在白盒测试中,测试数据源自对待测试代码的直接检查。可以通过考虑以下因素来选择测试数据:
• 希望覆盖尽可能多的分支; 可以生成测试数据,使得程序源代码中的所有分支至少被测试一次
• 路径测试:程序源代码中的所有路径至少测试一次 – 测试数据可以设计为涵盖尽可能多的情况
• 负Api测试:
o 测试数据可能包含用于调用不同方法的无效参数类型
o 测试数据可能包含用于调用程序方法的无效参数组合
性能测试的测试数据
性能测试 是一种测试类型,用于确定系统在特定工作负载下的响应速度。此类测试的目标不是发现错误,而是消除瓶颈。性能测试的一个重要方面是使用的样本数据集必须非常接近生产中使用的“真实”或“实时”数据。出现以下问题:“好的,用真实数据测试是好的,但我如何获得这些数据?” 答案非常简单:从了解最好的人 – 客户。他们可能能够提供他们已有的一些数据,或者,如果他们没有现有的数据集,他们可以通过提供有关现实世界数据的样子的反馈来帮助您。万一你在维护测试项目,您可以将数据从生产环境复制到测试台。在制作副本时,匿名(加密)敏感的客户数据(例如社会保险号,信用卡号,银行详细信息等)是一种很好的做法。
安全测试的测试数据
安全测试是确定信息系统是否保护数据免受恶意×××的过程。为完全测试软件安全性而需要设计的数据集必须包含以下主题:
• 保密:客户提供的所有信息都严格保密,不与任何外部人员共享。举个简短的例子,如果应用程序使用SSL,您可以设计一组测试数据来验证加密是否正确完成。
• 完整性:确定系统提供的信息是否正确。要设计合适的测试数据,您可以从深入了解设计,代码,数据库和文件结构开始。
• 身份验证:表示建立用户身份的过程。测试数据可以设计为用户名和密码的不同组合,其目的是检查只有授权人员才能访问软件系统。
• 授权:告知特定用户的权限。测试数据可能包含用户,角色和操作的 不同组合,以便仅检查具有足够权限的用户是否能够执行特定操作。
黑盒测试的测试数据
在黑盒测试中,测试人员看不到代码。您的功能测试用例可以使测试数据符合以下条件 –
• 无数据:未提交数据时检查系统响应
• 有效数据:提交有效测试数据时检查系统响应
• 无效数据: 提交InValid测试数据时检查系统响应
• 非法数据格式:当测试数据格式无效时,检查系统响应
• 边界条件数据集:满足边界值条件的测试数据
• 等价分区数据集:验证等价分区的测试数据。
• 决策表数据集:验证决策表测试策略的测试数据
• 状态转换测试数据集:满足您的状态转换测试策略的测试数据
• 用例测试数据:测试数据与您的用例同步。
注意:根据要测试的软件应用程序,您可以使用上述部分或全部测试数据
自动化测试数据生成
为了生成各种数据集,您可以使用各种自动测试数据生成工具。以下是此类工具的一些示例:
GSApps的测试数据生成器可用于在几乎任何数据库或文本文件中创建智能数据。它使用户能够:
• 通过使用有意义的数据扩充数据库来完成应用程序测试
• 创建可用于演示的行业特定数据
• 通过创建现有数据的克隆并屏蔽机密值来保护数据隐私
• 通过简化测试和原型设计来加速开发周期
DTM的测试数据生成器是一个完全可定制的实用程序,可为数据库测试(性能测试,QA测试,负载测试或可用性测试)生成数据,表(视图,过程等)。
Datatect 是Banner Software 的SQL数据生成器,可以在ASCII平面文件中生成各种实际测试数据,或者直接为RDBMS生成测试数据,包括Oracle,Sybase,SQL Server和Informi。
总之,精心设计的测试数据可以帮助您识别和纠正功能上的严重缺陷。必须在多阶段产品开发周期的每个阶段重新评估所选测试数据的选择。所以,要时刻关注它。
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/190861.html