测试数据管理:什么是测试数据及其设计方法

译自:Test Data Management: What is Test Data and How to Design It

测试数据设计与管理指南(Part -I):

在目前信息与技术革命性增长史上,测试者通常在软件测试生命周期中经历大量的测试数据消耗。

测试人员不仅收集/维护现有来源的数据,而且还生成大量测试数据,以确保其在实际使用中提供产品的质量繁荣。

因此,我们作为测试人员必须不断探索,学习和应用用于数据收集,生成,维护,自动化和全面数据管理的最有效的方法进行任何类型的功能和非功能测试。

什么是测试数据,为什么重要

参考IBM在2016年进行的一项研究,搜索,管理,维护和生成测试数据占测试人员时间的30%-60%。 不可否认的证据表明,数据准备是软件测试的耗时阶段。

测试数据的准备时间.png

然而,在许多学科中,大多数数据科学家花费50%-80%的模型开发时间来组织数据。现在考虑到立法以及个人身份信息(PII),使测试人员在测试过程中准备数据时更耗费时间。

今天,测试数据的可靠性和可靠性被认为是企业所有者的一个毫无妥协的元素。产品所有者将测试数据的幽灵拷贝(CC先生说:这里指的是对真实数据的模拟)作为最大的挑战,在客户的质量保证要求/要求的这个独特时刻降低了任何应用的可靠性。

考虑到测试数据的重要性,绝大多数软件所有者不接受带有假数据的测试应用程序或更少的安全措施。

在这一点上,为什么我们不去记录测试数据到底是什么呢?当我们开始编写测试用例以验证和验证测试中应用程序的给定功能和开发场景时,我们需要用作输入的信息来执行用于识别和定位缺陷的测试。

我们知道,这些信息需要精确和完整才能使错误发生。这就是我们所说的测试数据。为了使其准确,可以是名称,国家等不敏感的信息,其中联系信息,SSN,病史和信用卡信息的这类数据本质上是敏感的。

数据可能采取以下形式:

  • 系统测试数据
  • SQL测试数据
  • 性能测试数据
  • XML测试数据

如果您正在编写测试用例,则需要输入任何类型的测试数据。测试者可以在执行测试用例时提供该输入数据,或者应用程序可以从预定义的数据位置中选择所需的输入数据。

数据可以是应用程序的任何类型的输入,应用程序加载的任何种类的文件或从数据库表读取的条目。

准备正确的输入数据是测试设置的一部分。
一般来说,测试人员称之为测试台准备。在测试平台中,使用预定义的数据值设置所有软件和硬件要求。

如果在编写和执行测试用例时没有建立数据的系统方法,那么有可能丢失一些重要的测试用例。测试人员可以根据测试需求创建自己的数据。

不要依赖其他测试人员或标准生产数据创建的数据。始终根据您的要求创建一组新的数据。

有时无法为每个构建创建一组全新的数据。在这种情况下,您可以使用标准生产数据。但请记住在现有数据库中添加/插入自己的数据集。创建数据的最佳方式是使用现有的样本数据或测试平台,并在每次获得相同的测试模块时追加新的测试用例数据。这样,您可以在此期间构建全面的数据集。

测试数据来源的挑战

测试数据生成中的一个领域,测试人员认为是子集的数据采购要求。例如,您拥有超过一百万个客户,您需要一千个客户进行测试。该样本数据应该是一致的,统计学上表示目标群体的适当分布。换句话说,我们应该找到合适的人来测试,这是测试用例的最有用的方法之一。

该样本数据应该是一致的,统计学上表示目标群体的适当分布。换句话说,我们应该找到合适的人来测试,这是测试用例的最有用的方法之一。

此外,在这个过程中有一些环境限制。其中一个是映射PII策略。由于隐私是一个重大障碍,测试者需要对PII数据进行分类。

测试数据管理工具旨在解决上述问题。这些工具建议基于他们拥有的标准/目录的政策。虽然这不是很安全的运动。它仍然提供审计工作的机会。

为了跟上当前和未来的挑战,我们应该总是提出问题,如何时/哪里开始进行TDM?什么应该是自动化的?公司在进行人力资源开发和使用更新的TDM工具方面应该投入多少投资?我们应该开始功能测试还是进行非功能测试?更有可能是他们的问题。

测试数据采购的一些最常见的挑战如下:

  • 团队可能没有足够的测试数据生成工具知识和技能
  • 测试数据覆盖率通常不完整
  • 在收集阶段,数据要求不太清楚,涵盖卷规格
  • 测试团队无法访问数据源
  • 开发人员延迟了测试人员访问生产环境数据的时间
  • 基于开发的业务场景,生产环境数据可能不能完全用于测试
  • 给定时间的短时间内可能需要大量的数据
  • 数据依赖/组合来测试一些业务场景
  • 与建筑师,数据库管理员和BAs进行通信以便收集数据时,测试人员需要花费更多的时间
  • 大多数数据是在执行测试期间创建或准备的
  • 多个应用程序和数据版本
  • 多个应用程序的持续发布周期
  • 需要照顾个人身份信息(PII)的立法
    在白盒方面进行数据测试,开发人员准备生产数据。这就是QA需要与开发人员一起工作的基础,以进一步测试AUT的覆盖范围。最大的挑战之一是将所有可能的情况(100%测试用例)与每个可能的负面情况相结合。

在本节中,我们讨论了测试数据的挑战。您可以根据相应的解决方案来增加更多挑战。随后,我们来探讨处理测试数据设计和管理的不同方法。

测试数据准备策略

我们通过日常实践知道,测试行业的参与者不断经历不同的方式和手段来加强测试工作,最重要的是其成本效益。 在信息和技术演进的短期过程中,我们已经看到工具何时被纳入到生产/测试环境中,产量水平大幅增加。

当我们谈论测试的完整性和全面覆盖时,主要取决于数据的质量。 由于测试是实现软件质量的骨干,测试数据是测试过程的核心要素。

生成TDM.png

根据映射规则创建数据文件。从开发人员设计和编码应用程序的生产环境中创建所需数据的子集始终是实用的。实际上,这种方法减少了测试人员在数据准备方面的努力,并最大限度地利用现有资源来避免进一步的支出。

通常,我们需要创建数据,或至少根据每个项目在一开始所要求的类型进行识别。

我们可以应用以下策略来处理TDM的过程:

  1. 来自生产环境的数据
  2. 检索从客户端现有数据库中提取数据的SQL查询
  3. 自动数据生成工具
    测试人员应通过考虑 下图 所示的元素,用完整的数据进行测试。敏捷开发团队中的测试人员会生成执行测试用例的必要数据。当我们讨论测试用例时,我们的意思是像白盒子,黑盒子,性能和安全性等各种测试类型的情况。

在这一点上,我们知道用于性能测试的数据应该能够确定系统在给定工作负载下的响应速度与实际或实际大量数据的覆盖范围非常接近。

对于白盒测试,开发人员准备所需的数据以覆盖尽可能多的分支,程序源代码中的所有路径以及消极的应用程序接口(API)。

测试数据生成过程.png

最终,我们可以说,像软件开发生命周期(SDLC),像BAs(CC先生说,BA就是需求分析人员),开发商和产品所有者一样,每个人都应该很好地参与测试数据准备过程。它可以是一个共同的努力。现在让我们来介绍一下损坏的测试数据的问题。

损坏的测试数据

在我们利用现有的数据执行任何测试用例之前,我们应该确保数据没有被破坏/过时,并且测试中的应用程序可以读取数据源。通常情况下,当测试环境中同一个AUT的不同模块上工作的测试人员不止一次时,数据被破坏的可能性非常高。

在相同的环境中,测试人员根据测试用例的需求/要求修改现有数据。大多数情况下,当测试人员完成数据时,他们会保留数据。一旦下一个测试仪拿起修改的数据,并且他/她执行另一个测试执行,就有可能出现这种不是代码错误或缺陷的特定测试失败。

在大多数情况下,这是数据如何被破坏和/或过时,导致失败。为了避免和最小化数据差异的机会,我们可以应用以下解决方案。

  1. 备份您的数据
  2. 将修改的数据恢复到原始状态
  3. 测试人员之间的数据划分
  4. 保持数据仓库管理员的更新,以进行任何数据更改/修改

如何在任何测试环境中保持数据的完整性?

大多数时候,许多测试人员负责测试相同的构建。在这种情况下,多个测试人员将可以访问常见的数据,并会根据自己的需要尝试操作公共数据集。

如果您已准备好某些特定模块的数据,则保持数据集完整的最佳方法是保留备份副本。
(CC先生说,在测试的时候,经常会出现因为误删除了同事需要操作的数据而产生的流血事件,保持自己测试数据独立的方法有多种,比如给自己的测试数据加标识-谁动我的数据死**等等,或者自己创建一个单独的测试数据库)

性能测试用例的测试数据

性能测试需要非常大的数据集。有时手动创建数据将不会检测到只能被被测试应用程序创建的实际数据所捕获的一些细微错误。如果您想要实时数据,这是不可能手动创建的,请让您的主管/经理从现场环境中提供。

该数据将有助于确保所有有效输入的应用程序顺利运行。

什么是理想的测试数据?

数据可以说是理想的,如果最小尺寸的数据设置所有的应用程序错误才能被识别出来。尝试准备将包含所有应用程序功能的数据,但不要超过准备数据和运行测试的成本和时间限制。

如何准备确保最大测试覆盖率的数据?

设计您的数据考虑以下类别:

1)无数据:以空白或默认数据运行测试用例。查看是否生成正确的错误消息。

2)有效数据集:创建它以检查应用程序是否按照要求运行,有效的输入数据被正确保存在数据库或文件中。

3)无效的数据集:准备无效数据集以检查负值(字母数字字符串输入)的应用程序行为。

4)非法数据格式:制作一组非法数据格式的数据。系统不应接受无效或非法格式的数据。另外,检查是否生成正确的错误消息。

5)边界条件数据集:包含超出范围数据的数据集。识别应用边界条件并准备覆盖较低和上限条件的数据集。

6)性能,负载和压力测试数据集:该数据集体积应大。

这样,为每个测试条件创建单独的数据集将确保完整的测试覆盖。

黑盒测试数据

质量保证测试人员进行集成测试,系统测试和验收测试,这被称为黑盒测试。在这种测试方法中,测试人员在测试中的内部结构,设计和应用代码方面没有任何工作。

测试人员的主要目的是识别和定位错误。通过这样做,我们应用功能或非功能测试,使用不同的黑盒测试技术。

在这一点上,测试者需要测试数据作为执行和实施黑匣子测试技术的输入。测试人员应准备数据,检查所有应用功能,不超过给定的成本和时间。

考虑到无数据,有效数据,无效数据,非法数据格式,边界条件数据,等效分区,决策数据表,状态转换数据和用例数据等数据集类别,我们可以设计数据。数据集类别,测试者开始数据收集和分析测试者(AUT)下的应用程序的现有资源。

根据前面提到的关于保持数据仓库始终是最新的要点,您应该在测试用例级别记录数据需求,并在脚本测试用例时将其标记为可用或不可重用。它帮助您测试所需的数据从一开始就清楚清楚并记录在案,您可以在以后参考进一步的使用。

**(打开EMR AUT的测试数据示例

对于我们当前的教程,我们将Open EMR作为被测应用程序(AUT)。
(上面的链接就是练习的系统,你也可以参看下面的图片,登录后就进入到以下的界面,刚开始的登录界面就是一个用户名 admin和密码 pass)

登录后.png

下表显示了几个可以作为测试用例文档的一部分的数据需求收集示例,并在为测试场景编写测试用例时进行了更新。

testcase1.png

创建用于测试的手动数据打开EMR应用程序

我们向前推进创建用于测试给定数据集类别的开放式EMR应用程序的手动数据。

1)否数据:测试者验证打开EMR应用程序URL和“搜索或添加患者”功能,不提供任何数据。

2)有效数据:测试人员验证开放EMR应用程序URL和“搜索或添加患者”功能,并提供有效数据。

3)无效数据:测试人员验证打开EMR应用程序URL和“搜索或添加患者”功能,提供无效数据。

4)非法数据格式:测试程序验证打开EMR应用程序URL和“搜索或添加病人”功能,提供无效数据。

1-4数据集类别的测试数据:

testcase2.png

5)边界条件数据集:将给定值的内部或外部的边界的输入值确定为数据。

6)等效分区数据集:将输入数据划分为有效和无效的输入值的测试技术。

测试数据为第5和第6个数据组类别,用于打开EMR用户名和密码:

testcase3.png

7)决策表数据集:它是通过输入组合对资料进行排序的技术,以产生各种结果。 这种黑匣子测试方法可帮助您在验证测试数据的每个组合时减少测试工作。 此外,这种技术可以确保您进行完整的测试覆盖。

请参阅下面的打开EMR应用程序用户名和密码的决策表数据集。

testcase4.png

下表详细说明了上表完成的组合计算。 当您进行超过四种组合时,您可能需要它。

组合数=条件数1值*条件数2值
组合数= 2 ^真/假条件数
示例:组合数 - 2 ^ 2 = 4

8)状态转换测试数据集:它是通过向系统提供输入条件来帮助您验证被测应用(AUT)的状态转换的测试技术。

例如,我们首次尝试提供正确的用户名和密码登录Open EMR应用程序。 系统为我们提供访问权限,但如果我们输入不正确的登录数据,系统将拒绝访问。 状态转换测试会验证在打开EMR关闭之前可以执行多少登录尝试。

下表显示正确或不正确的登录尝试如何响应

testcase5.png

9)场景法测试数据:这是测试方法,用于识别捕获特定功能的端到端测试的测试案例。

示例,打开EMR登录:

Success-Failure-Test-Data-6.jpg

结论

创建完整的软件测试数据符合行业标准,立法和所承担项目的基准文件是测试人员的核心职责之一。我们越有效地管理测试数据,我们越能够为真实用户部署合理的无bug产品。

测试数据管理(TDM)是基于挑战分析和引入加上应用最佳工具和方法来处理已识别问题的过程,而不会影响最终产出(产品)的可靠性和全面覆盖。

我们总是需要提出挑战,寻找创新和成本效益更高的方法来分析和选择测试方法,包括使用工具来生成数据。众所周知,精心设计的数据使我们能够在多相SDLC的每个阶段中识别测试中的应用缺陷。

我们需要具有创意,并与我们敏捷团队内外的所有会员一起参与。请分享您的反馈,经验,问题和意见,以便我们继续进行技术讨论,以最大限度地发挥对AUT的积极影响,通过管理数据。

准备适当的测试数据是“项目测试环境设置”的核心部分。我们不能简单地错过测试案例,说完整的数据不可用于测试。测试者应根据现有的标准生产数据创建自己的测试数据。您的数据集在成本和时间上应该是理想的。

具有创造性,使用自己的技能和判断来创建不同的数据集,而不是依靠标准生产数据。

CC先生说,整篇文章对于不知道该怎么办准备测试数据的人来说应该是一个思路,根据它的步骤,相信大家对测试数据如何准备的问题有更深刻的理解。它里面所提到的测试数据其实也就是平时我们所谈到的测试用例的设计方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,434评论 25 707
  • 1.问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 首先,将问题提...
    qianyewhy阅读 9,230评论 4 123
  • 睁开眼 找寻 没有你的消息 以为自己看错 不觉红了眼 原来 你走了 远远望见 你走来 可惜 你没见我 我没喊你 我...
    栀子枝z阅读 165评论 5 3
  • 陈元张倩自从有了依凡!他的任务就是保证她吃好玩好,生活上冷暖体贴到位!依凡的学习是张倩的事儿。所以依凡和陈元生活上...
    雨射零丁阅读 382评论 0 1