搜尋
首頁資料庫mysql教程测试数据管理:创造性的解决方案

Mario Matthee是一名测试员,顾问,认证Scrum大师以及非常不合的山地摩托车车手(正在学习中)。他热衷于将年轻的IT专家引进软件测试的世界。他还是开普敦测试自动化用户组的创始成员之一。毕业于(南非)开普半岛科技大学,他是动态可视技术公司的软件质量

\ Mario Matthee是一名测试员,顾问,认证Scrum大师以及非常不合格的山地摩托车车手(正在学习中)。他热衷于将年轻的IT专家引进软件测试的世界。他还是开普敦测试自动化用户组的创始成员之一。毕业于(南非)开普半岛科技大学,他是动态可视技术公司的软件质量保证部的主管。

?

  测试数据管理可能是测试专家职业生涯中要面临的最大挑战之一。还没有碰上测试数据紧缺或不完整测试数据的人算是相当幸运的。

  我们并不孤单
   缺少测试数据会影响开发员。几年前,我的一个任务里,开发员不得不猜测什么数据会进入数据库。在把他的代码给测试团队前,他绝对没有开始某种测试的环境。可以想象,测试阶段也有灾难。因此该项目开始后被中止近三年一点也不奇怪。或许这不是中止的主要原因,但绝对是一个成因。数据对任何系统都重要且绝对是测试一个系统的关键因素。数据为系统提供环境,,没有环境,开始测试阶段就值得商榷了。

  我们真的需要它吗?
   我们后退一步。我们为什么需要测试数据且我们该怎么计划去使用它?对于初学者,没有数据,你只测试应用程序的GUI。以典型GUI为例,我们测试屏幕上的控件:按钮,下拉菜单,文本框等。即使这些测试会被限制,使得从前端GUI无法到达某些屏幕或功能, 因为没有输入正确数据。为了遵循系统中的某些流程,就需要具体数据。我们需要测试数据以确保企业规定被测且系统中不同流程被执行。想象一下没有数据的测试报告,我们开始测试了吗?

  测试数据操作
   为了让测试数据有效,我们需要在上面CRUD(创建,读取,升级和删除)。测试专家面临的最大挑战之一是与第三方的集成。大多数情况下,测试数据只被读取,且数据数目被限。另一个潜在噩梦是第三方应用程序供应商不提前通知就改变测试数据。让第三方应用程序供应商保证你能获取他们的数据库闻所未闻。没什么阻止我们请求,但随时做好你的请求被拒绝的准备吧。测试数据及其管理对手工和自动化测试都很重要。两种情况中,测试专家旨在预测他们基于(他们在系统中输入的)数据的预期结果。多数情况中,测试专家无法创建或操作数据进入所要求状态。如果无法发现测试数据,就无法执行测试用例。

  一个真实的例子
   让我将我早期职业生涯中所经历的一次真实问题为你细细道来。我们不得不测试并将顾客管理系统自动化。一个单独的顾客账户上可以执行100多个不同的任务。比如锁定账户,解锁账户,查看余额,查看账户明细,激活邮箱,升级邮箱……
   测试数据的问题是测试团队被赋予某些账号范围可以使用下游第三方相应测试数据。所以你可以创建你自己的测试数据并开始利用它,但你无法进行整个端到端的测试,因为新数据不会在下游系统上。
   只有有限范围为了测试而被配置在下游系统上。所以你的测试会受限。
   下个问题是测试员开始分享账号,或不请求或协调测试就使用测试数据。这就导致应该解锁的账户被锁,或拥有某些程序包的账户某天可以改变未来。测试同一个系统的不同功能时的不一致使一个有16名测试员的团队受到了挫折。
   澄清一点,并不是所有手工测试都被影响了,但自动化确实是异常噩梦。自动化可以查询数据并找到数据以供使用,但问题是,有时候数据就在那有时却不在,因为另一队成员不断在改变数据。自动化的一个优势是在测试执行前搜索数据。这种情况下,自动化运行就变得不可信了。我们绝对无法预测开始一次一整夜的自动化运行的测试数据是否充足。如果你无法在数据库中找到数据,最好的办法就是你自己创建数据。在这儿我不得不强调一下数据完整性的重要性:通过前端或通过执行,数据库上的某些失序的储存过程会破坏数据。
   这会进一步阻碍测试工作并有可能造成由测试团队而不是开发团队引起的缺陷。让开发员判定缺陷原因很耗钱,最后却发现是测试团队自己破坏的。于是测试发布进程放缓了,自动化无法给投资满意的回报。
   作为一个测试团队,我们逐步扩大问题,并请求设计师想出一个解决方案。几次会议后,制定出了一个计划。因为那时候想不出一个更好的词,我们称这个解决方案为“香草脚本”。那么它是干什么的呢?它是一个基本消除了系统外特定顾客数的所有数据的存储过程。我是说,所有数据,没错,就是所有的。主要是为了维护参照完整性且不破坏数据库。可想而知,这要尝试很多次才能成功,但三个月后我们想出了有效的解决方案。你们有些会觉得我们疯了——我们怎么可能会有这样一个脚本?如果将之投入生产呢?!这被视作发布流程和执行后测试的一部分。因为脚本是通过调用到一个存储流程执行的,存储流程要确保执行只在特定数据库名字和IP地址上完成。
这些问题按以下方法解决:
   ??完整的终端到终端测试是可能的,因为香草脚本第一个运行,向下游系统发布命令删除支持他们的相关数据。重新创建该账号使得要重建一个下游,保证所有系统同步。
   ??测试员没必要分享测试号。现在他们可以一遍又一遍地使用自动化去设置理想状态的用同一个账号的数据。
   ??自动化也使用分配到的账号运行,所以我们总会有数据以供彻夜运行。
   ??通过运行失序脚本破坏数据库的风险通过使用高级数据库开发员编写的香草脚本被消除了。

  结果
   结果绝对惊人。假设你要测试一个账户完整生命周期,从激活到删除,以及期间的所有任务。现在你可以做到!测试开始前,一名测试员运行香草脚本。现在,他们只需要让账户进入一个他们所需的特定状态以开始手动测试用例。这也使得我们能够用同一个账号为不同的软件包产品编写测试用例。自动化突然成功了。我们在36小时内运行300,000多个测试用例。反过来又产生了一个新需求:我们希望自动化运行地更快——但那在一般测试自动化和测试中却是一个问题。我们该如何解决第三方测试数的共享呢?自动化用一两个账号,手动测试员用剩下的。他们开始通过自动化使用香草脚本将账号设置为他们所希望的状态。关键字驱动的自动化是解决方案的关键,因为它可以让测试团队自己设计测试用例组合。

  总结
   测试数据管理可以创建或打破一个测试团队的精神。创造性的解决方案是需要的。不要停止寻找解决方案,最后总会有所收获。有时候解决方案就和在正确的时间向正确的人寻求帮助一样简单。

版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/20141020154958.html

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Golang中的数据库测试技巧Golang中的数据库测试技巧Aug 10, 2023 pm 02:51 PM

Golang中的数据库测试技巧引言:在开发应用程序时,数据库测试是一个非常重要的环节。合适的测试方法可以帮助我们发现潜在的问题并确保数据库操作的正确性。本文将介绍Golang中的一些常用数据库测试技巧,并提供相应的代码示例。一、使用内存数据库进行测试在编写数据库相关的测试时,我们通常会面临一个问题:如何在不依赖外部数据库的情况下进行测试?这里我们可以使用内存

如何使用MTR进行MySQL数据库的可靠性测试?如何使用MTR进行MySQL数据库的可靠性测试?Jul 13, 2023 pm 12:05 PM

如何使用MTR进行MySQL数据库的可靠性测试?概述:MTR(MySQL测试运行器)是MySQL官方提供的一个测试工具,可以帮助开发人员进行MySQL数据库的功能和性能测试。在开发过程中,为了确保数据库的可靠性和稳定性,我们经常需要进行各种测试,而MTR提供了一种简单方便且可靠的方法来进行这些测试。步骤:安装MySQL测试运行器:首先,需要从MySQL官方网

如何使用Selenium进行Web自动化测试如何使用Selenium进行Web自动化测试Aug 02, 2023 pm 07:43 PM

如何使用Selenium进行Web自动化测试概述:Web自动化测试是现代软件开发过程中至关重要的一环。Selenium是一个强大的自动化测试工具,可以模拟用户在Web浏览器中的操作,实现自动化的测试流程。本文将介绍如何使用Selenium进行Web自动化测试,并附带代码示例,帮助读者快速上手。环境准备在开始之前,需要安装Selenium库和Web浏览器驱动程

如何进行PHP单元测试?如何进行PHP单元测试?May 12, 2023 am 08:28 AM

在Web开发中,PHP是一种流行的语言,因此对于任何人来说,对PHP进行单元测试是一个必须掌握的技能。本文将介绍什么是PHP单元测试以及如何进行PHP单元测试。一、什么是PHP单元测试?PHP单元测试是指测试一个PHP应用程序的最小组成部分,也称为代码单元。这些代码单元可以是方法、类或一组类。PHP单元测试旨在确认每个代码单元都能按预期工作,并且能否正确地与

PHP开发中如何使用Jenkins进行自动化测试PHP开发中如何使用Jenkins进行自动化测试Jun 27, 2023 pm 02:29 PM

随着Web应用程序规模的不断扩大,PHP语言的应用也越来越广泛。在软件开发过程中,自动化测试可以大大提高开发效率和软件质量。而Jenkins是一个可扩展的开源自动化服务器,它能够自动执行软件构建、测试、部署等操作,今天我们来看一下在PHP开发中如何使用Jenkins进行自动化测试。一、Jenkins的安装和配置首先,我们需要在服务器上安

13948道题目,涵盖微积分、线代等52个学科,上交清华给中文大模型做了个测试集13948道题目,涵盖微积分、线代等52个学科,上交清华给中文大模型做了个测试集May 25, 2023 pm 01:44 PM

ChatGPT的出现,使中文社区意识到与国际领先水平的差距。近期,中文大模型研发如火如荼,但中文评价基准却很少。在OpenAIGPT系列/GooglePaLM系列/DeepMindChinchilla系列/AnthropicClaude系列的研发过程中,MMLU/MATH/BBH这三个数据集发挥了至关重要的作用,因为它们比较全面地覆盖了模型各个维度的能力。最值得注意的是MMLU这个数据集,它考虑了57个学科,从人文到社科到理工多个大类的综合知识能力。DeepMind的Gopher和Chinchi

如何使用Python进行软件安全测试如何使用Python进行软件安全测试Jun 29, 2023 am 10:15 AM

如何使用Python进行软件安全测试随着互联网的发展,软件安全问题日益凸显,软件安全测试也成为了越来越重要的一项工作。而Python作为一种流行的脚本语言,具备简单易学、开发效率高的特点,因此被广泛用于软件安全测试领域。本文将介绍如何使用Python进行软件安全测试,帮助读者更好地应对软件安全挑战。首先,我们需要了解软件安全测试的基本概念和分类。软件安全测试

测试MySQL连接的高并发性能应如何在命令行进行?测试MySQL连接的高并发性能应如何在命令行进行?Jun 30, 2023 pm 07:25 PM

如何在命令行中测试MySQL连接的高并发性能?随着互联网应用的不断普及,数据库的高并发性能成为了很多需求的关注点之一。而MySQL作为一个流行的开源数据库,其高并发性能也是被广泛关注的。在测试MySQL连接的高并发性能之前,我们需要先明确一些概念和准备工作:并发连接:指的是同时有多个客户端与数据库建立连接,并且这些连接同时进行数据库操作。连接数限制:MySQ

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)