生成测试数据的提示和技巧

每个人都知道测试是一个产生和消耗大量数据的过程。测试中使用的数据描述了测试的初始条件,并代表测试人员通过其影响软件的介质。它是大多数功能测试的关键部分。但实际上测试数据是什么?为什么用它?也许你会想知道‘设计测试用例足够具有挑战性,然后为什么要像测试数据一样烦恼‘本教程的目的是向您介绍测试数据,它的重要性,并提供快速生成测试数据的实用技巧和窍门。那么,让我们开始吧!
什么是测试数据?它为什么如此重要?
测试数据实际上是给予软件程序的输入。它表示影响或受特定模块执行影响的数据。一些数据可用于正测试,通常用于验证给定函数的给定输入集产生预期结果。其他数据可用于否定测试,以测试程序处理异常,极端,异常或意外输入的能力。设计不良的测试数据可能无法测试所有可能妨碍软件质量的测试场景。

什么是测试数据生成?为什么应该在测试执行之前创建测试数据?
根据您的测试环境,您可能需要创建测试数据(大多数时间)或至少为您的测试用例确定合适的测试数据(测试数据是否已创建)。
通常,测试数据与其打算用于的测试用例同步创建。
可以生成测试数据 -
? 手动
? 从生产到测试环境的大量数据副本
? 从旧版客户端系统批量复制测试数据
? 自动测试数据生成工具

通常,在开始测试执行之前应生成样本数据,因为很难执行测试数据管理。由于在许多测试环境中创建测试数据需要许多前置步骤或测试环境配置,这非常耗时。此外,如果测试数据生成做,而你是在测试执行阶段,你可能会超过你的测试的最后期限。
下面介绍几种测试类型以及有关其测试数据需求的一些建议。
白盒测试的测试数据
在白盒测试中,测试数据源自对待测试代码的直接检查。可以通过考虑以下因素来选择测试数据:
? 希望覆盖尽可能多的分支; 可以生成测试数据,使得程序源代码中的所有分支至少被测试一次
? 路径测试:程序源代码中的所有路径至少测试一次 - 测试数据可以设计为涵盖尽可能多的情况
? 负Api测试:
o 测试数据可能包含用于调用不同方法的无效参数类型
o 测试数据可能包含用于调用程序方法的无效参数组合

性能测试的测试数据
性能测试 是一种测试类型,用于确定系统在特定工作负载下的响应速度。此类测试的目标不是发现错误,而是消除瓶颈。性能测试的一个重要方面是使用的样本数据集必须非常接近生产中使用的“真实”或“实时”数据。出现以下问题:“好的,用真实数据测试是好的,但我如何获得这些数据?” 答案非常简单:从了解最好的人 - 客户。他们可能能够提供他们已有的一些数据,或者,如果他们没有现有的数据集,他们可以通过提供有关现实世界数据的样子的反馈来帮助您。万一你在维护测试项目,您可以将数据从生产环境复制到测试台。在制作副本时,匿名(加密)敏感的客户数据(例如社会保险号,信用卡号,银行详细信息等)是一种很好的做法。
安全测试的测试数据
安全测试是确定信息系统是否保护数据免受恶意×××的过程。为完全测试软件安全性而需要设计的数据集必须包含以下主题:
? 保密:客户提供的所有信息都严格保密,不与任何外部人员共享。举个简短的例子,如果应用程序使用SSL,您可以设计一组测试数据来验证加密是否正确完成。
? 完整性:确定系统提供的信息是否正确。要设计合适的测试数据,您可以从深入了解设计,代码,数据库和文件结构开始。
? 身份验证:表示建立用户身份的过程。测试数据可以设计为用户名和密码的不同组合,其目的是检查只有授权人员才能访问软件系统。
? 授权:告知特定用户的权限。测试数据可能包含用户,角色和操作的 不同组合,以便仅检查具有足够权限的用户是否能够执行特定操作。

黑盒测试的测试数据
在黑盒测试中,测试人员看不到代码。您的功能测试用例可以使测试数据符合以下条件 -
? 无数据:未提交数据时检查系统响应
? 有效数据:提交有效测试数据时检查系统响应
? 无效数据: 提交InValid测试数据时检查系统响应
? 非法数据格式:当测试数据格式无效时,检查系统响应
? 边界条件数据集:满足边界值条件的测试数据
? 等价分区数据集:验证等价分区的测试数据。
? 决策表数据集:验证决策表测试策略的测试数据
? 状态转换测试数据集:满足您的状态转换测试策略的测试数据
? 用例测试数据:测试数据与您的用例同步。

注意:根据要测试的软件应用程序,您可以使用上述部分或全部测试数据
自动化测试数据生成
为了生成各种数据集,您可以使用各种自动测试数据生成工具。以下是此类工具的一些示例:
GSApps的测试数据生成器可用于在几乎任何数据库或文本文件中创建智能数据。它使用户能够:
? 通过使用有意义的数据扩充数据库来完成应用程序测试
? 创建可用于演示的行业特定数据
? 通过创建现有数据的克隆并屏蔽机密值来保护数据隐私
? 通过简化测试和原型设计来加速开发周期
DTM的测试数据生成器是一个完全可定制的实用程序,可为数据库测试(性能测试,QA测试,负载测试或可用性测试)生成数据,表(视图,过程等)。
Datatect 是Banner Software 的SQL数据生成器,可以在ASCII平面文件中生成各种实际测试数据,或者直接为RDBMS生成测试数据,包括Oracle,Sybase,SQL Server和Informi。

总之,精心设计的测试数据可以帮助您识别和纠正功能上的严重缺陷。必须在多阶段产品开发周期的每个阶段重新评估所选测试数据的选择。所以,要时刻关注它。

原文地址:http://blog.51cto.com/13887297/2151045

时间: 2024-10-04 17:12:59

生成测试数据的提示和技巧的相关文章

25个增强iOS应用程序性能的提示和技巧--中级篇

25个增强iOS应用程序性能的提示和技巧--中级篇 标签: ios性能优化内存管理 2013-12-13 10:55 738人阅读 评论(0) 收藏 举报  分类: IPhone开发高级系列(34)  本文收集了25个关于可以提升程序性能的提示和技巧,分为3个不同的等级:初级.中级和高级.您也可以点击查看初级篇. 在性能优化时,当你碰到一些复杂的问题,应该注意和使用如下技巧: 9.重用和延迟加载View10.缓存.缓存.缓存11.考虑绘制12.处理内存警告13.重用花销很大的对象14.使用Spr

25 个增强iOS应用程序性能的提示和技巧 应用程序性能的提示和技巧 — 中级篇 中级篇

在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的.在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记.这就是为什么我要写这篇文章!本文收集了25个关于可以提升程序性能的提示和技巧.目录 目录我把性能优化技巧分为3个不同的等级:初级.中级和高级:中级在性能优化时,当你碰到一些复杂的问题,应该注意和使用如下技巧:9. 重用和延迟加载View10. 缓

增强iOS应用程序性能的提示和技巧(25个)

转自 http://www.cocoachina.com/newbie/basic/2013/0522/6259.html 在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的.在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记. 本文收集了25个关于可以提升程序性能的提示和技巧,把性能优化技巧分为3个不同的等级:初级.中级和高级 初级 在开发过程中

8个有趣的Linux提示与技巧

我们时不时给你带来关于Linux的提示与技巧.这里我们总结了8个最有趣的提示和技巧.推荐学习Linux视频教程. 以它们的大小列出文件 如果你想要一个基于它们大小排序的文件列表,你可以使用下面的命令. 它会以递减顺序排列文件. # ls -l | grep ^- | sort -nr -k 5 | more 如果你想要递归地做相同的事,你可以使用下面的第二个命令. # ls -lR | grep ^- | sort -nr -k 5 | more —Sumedh Gajbhiye, [email

C# 5.0 Async函数的提示和技巧

C# 5.0 Async函数的提示和技巧 这篇文章主要内容来自于文章C# Async Tips and Tricks Part 2 : Async Void,我本想直接翻译的,无奈由于水平有限,因此这里给的是参考原文结合自己的理解的一篇随笔. 一.创建Async函数 Async是C# 5.0中新增的关键字,通过语法糖的形式简化异步编程,它有如下三种方式: async Task<T> MyReturningMethod { return default(T); } async Task MyMe

25个增强iOS应用程序性能的提示和技巧 — 中级篇

本文由破船译自:raywenderlich 转载请注明出处:BeyondVincent的博客 _____________ 在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,假设你的程序执行迟钝或缓慢,会招致用户的差评. 然而由于iOS设备的局限性.有时候要想获得良好的性能.是非常困难的.在开发过程中.有很多事项须要记住.而且关于性能影响非常easy就忘记. 这就是为什么我要写这篇文章.本文收集了25个关于能够提升程序性能的提示和技巧. 文件夹 我把性能优化技巧分为3个

Python生成测试数据

本文出自:http://blog.csdn.net/svitter 生成1~10的随机数1000个: import random fp = open("test", 'w'); for i in range(1, 1000): a = random.randint(1,10) fp.write(str(a)+"\n"); fp.close(); 注意:写入文件的不会在最后写入,而是重新写文件. Python生成测试数据,布布扣,bubuko.com

如何生成测试数据

laravel有非常方便的方法生成测试用的数据,大概的流程是这样: 前提是我们的数据库已经配置好,并且生成了Model和数据表. artisan控制台生成一个seeder: php artisan make:seeder xxx(命名自定) 打开database/factories/ModelFactory.php写如何生产模型. 在创建的seeder中调用factory. artisan控制台:php artisan migrate --seed Why? 为什么要这样生成测试数据? 答:在开

(转)25个增强iOS应用程序性能的提示和技巧--初级篇

(转)25个增强iOS应用程序性能的提示和技巧--初级篇 本文转自:http://www.cocoachina.com/newbie/tutorial/2013/0408/5952.html 在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的.在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记. 本文收集了25个关于可以提升程序性能的提示和技巧,把