智到功成
当前位置:首页 - 生活 >

软件测试的未来第二部分

2019-09-10来源:健康无忧网

转自:https://www.ministryoftesting.com/dojo/lessons/the-future-of-software-testing-part-two

塞思艾略特

在2011年11月的The Testing Planet版本中,我对软件测试的未来进行了几次预测,

在第一部分中,我假设生产中的测试是测试软件服务的自然方式,使用真实用户和真实环境来查找重要的错误。

本文的主题是我称之为TestOps,以及它如何代表测试行业发生巨大变化的可能性,以及软件组织如何测试软件和组织以确保软件质量。

目前的软件测试

要了解未来,我们必须首先了解大多数组织如何在当前测试软件。图1是这种当前状态的简单但有用的表示。

图1.传统的软件测试模型

对产品进行测试,产品作出反应。如果此结果与预期结果(oracle)匹配,则它通过......它是绿色的。测试人员可以查看所有通行证(绿色)和失败(非绿色),然后就产品质量发表声明。将其分为三个阶段,我们得到表1。

表1.传统测试的三个阶段

测试结果是我们的输出,我们的信号需要处理和解释。但是,在未来,我们需要更多地关注新信号。在数据中心运行的软件服务依靠Operations或“Ops”团队来运行数据中心。Ops提供硬件,配置网络,然后监控和修复任何影响生产的问题。现在,与Ops团队一样,测试人员需要更多地关注实时网站。我们的新质量信号将来自此实时生产数据,因此名称为TestOps。

未来的产品

  • 要了解软件测试的未来,请了解软件产品的增长点

  • Google执行超过30亿次搜索,20亿次视频回放,每分钟吸收24小时视频(1)

  • 截至2011年4月,Microsoft Bing已从2010年9月美国搜索量的10%增长到超过30%(2)

  • Facebook有大约8亿活跃用户每月共享300亿条内容(3)

  • 亚马逊在其S3云存储系统中存储了超过1.2亿个用户帐户,200万个卖家和262亿个对象(4)

  • Twitter仅在3年,2个月和1天(5)之后达到了第十亿条推文

这些成功的,不断增长的产品都是服务。在“?软件测试的未来第一部分?”中,我讨论了服务如何通过让我们立即访问生产来帮助我们进行生产测试,在那里我们检查并改变那里发生的事情。但是要看看还有哪些服务会改变我们的测试方式,请考虑以下统计数据:

  • 在Google,系统性能由他们的“Dapper”工具跟踪。每天超过1 TB的采样跟踪数据,所有数据保存两周(7)

  • Facebook的日志框架Scribe每天收集大约25TB的数据(8)

  • eBay每天收集大约50 TB的增量数据来执行分析(9)

  • Twitter每天存储12 TB的新数据(10)

  • Microsoft在线资产Bing,MSN和AdCenter每天收集和处理2 PB数据(11)

我们提供的服务是来自用户及其使用的系统的遥测数据,在上述情况下,它是大数据。改变我们的信号以评估从测试结果到遥测数据的软件质量是用于测试的游戏改变者。即使您的服务不能生成大数据,任何在互联网上运行的产品都会看到足够大的用量和数据来评估质量。

一种新的质量信号

让我们更新我们的三个测试阶段。我们已经确定我们的信号将来自被测系统的遥测或大数据。然后输入可以是产品的实际使用情况。

然后观察阶段呢?数据本身几乎没有价值,直到它使用或转换为查找模式或证明假设。可以进行这样的分析以计算关键绩效指标(KPI),然后将其与目标要求进行比较。或者,我们可以在数据中查找能够深入了解用户或系统行为的模式。这些阶段总结在表2中。

表2.传统测试和测试的三个阶段

我们可以从使用真实的生产用途来决定在哪里寻找。例如,使用Bing,我们可以识别使用的前100个查询类型,并得出结论,我们可以通过开始查看那里获得最大价值。最热门的查询是股票价格。在Bing上,查询“亚马逊股票价格”应该返回财务即时作为最高结果。图2显示了一个版本实际发生的情况,以及缺少的财务即时答案应该是什么样子。

图2. Bing bug ...亚马逊股票查询缺失财务即时答案

一种经典的测试方法可能是迭代标准普尔500指数或Wilshire 5000并执行查询“[company_name]股票价格”,替换每个公司名称并搜索即时答案未触发的位置。然后我们会发现以下测试用例通过:

  • Expedia股票价格

  • 康卡斯特股价

  • Bed Bath and Beyond股票价格

在这种情况下,全通并不是一件好事,因为我们还没有找到错误。因此Bing实施了Bug Miner(12),它使测试人员能够配置查询或模式,并查看真实用户获得的结果。使用真实的用户数据Bing发现并修复了传统测试错过的这些错误(没有返回财务即时回答):

  • expedia.com股票价格

  • 康卡斯特公司股票价格

  • Bed Bath&Beyond股票价格

使用遥测数据作为信号时的一个考虑因素是,您可能在不同产品上有来自不同用户的不同信号。图2中的示例在英国似乎仍然“失败”,但国际站点不使用与美国站点相同的逻辑。不同的区域和不同的产品将具有不同的信号,每个信号必须在这些相应产品的背景下进行解释。

使用遥测数据作为质量信号的另一个例子是Microsoft Hotmail。通过检测他们的网页,他们可以获得匿名信号,告诉他们用户何时执行打开或发送邮件等操作。使用此数据,测试人员可以计算数百万用户执行关键任务所需的时间,并查询此数据以了解Hotmail如何在不同的操作系统和Web浏览器中执行。通过使用该信息,可以识别关键瓶颈。在一个示例中,Hotmail重新设计了图像大小和静态内容,以改善上游流量,将性能提高50%。

更多生成信号的方法

监视和分析生产使用情况以访问遥测数据信号以获得软件质量是实施生产中测试的一种非常平易近人的方式。但是,我们可以采取更积极的措施来改变我们的三步法的输入阶段并获得高质量的见解

我们可以从我们过去在传统模型中运行的所有测试用例开始。在第1部分中,我向您介绍了Microsoft Exchange,他们重新设计了他们用于运行实验室的70,000个自动化测试用例,以便他们可以使用新的托管Microsoft Exchange Online云服务在生产环境中运行它们。虽然实验室中的测试用例为我们提供了传统的通过/失败信号,但我们可以采用不同的方法进行生产,而不是查看数千次连续运行的成功率。成功或失败是通过可用性和性能KPI来衡量的。对于一个场景,我们是否达到了“五个九”(99.999%)的可用性?或者我们在99.9%的时间内在不到2秒的时间内完成任务?信号仍然相同,它仍然是我们测试系统中的数据,但我们正在通过测试触发该信号。

改变输入的另一种方法是部署新版本,功能或产品更改,以便只有一部分用户可以看到它。这称为曝光控制。使用Exposure Control,我们可以运行A / B测试,比较旧版本(A)和新版本(B)的数据信号。谷歌,亚马逊,微软和其他公司经常这样做。通常,UI更改会根据业务指标进行评估,但测试人员也可以“在幕后”使用后端更改来评估质量指标。Google会定期测试更改,方法是限制显性人群,仅限Google员工或所有用户的百分比。(14)

因此,我们现在可以更新我们的测试模型图来表示这个新的质量信号,以及三个输入来驱动它,如图3所示。

图3. TestOps软件测试模型

TestOps?这对我意味着什么?

仅仅是信号的变化就表明了测试行业的巨大转变以及我们如何测试软件。但TestOps对测试人员的日常工作意味着什么?

开发人员和测试人员的角色开始发生变化,每个人看起来更像是另一个:

  • 对于离散功能测试用例的前期测试和运行,测试人员的重点可以更少。开发人员一直负责单元测试,但为了使测试人员能够更多地关注生产和高背景情况,可以考虑向开发人员提前进行功能测试。换句话说,开发人员必须使用所有可用的方法来生成没有低上下文错误的代码,这些错误可以通过在桌面上运行找到。

  • 测试人员现在需要专注于面向测试的架构(15),使我们能够收集和识别正确的数据信号。测试人员需要创建工具来运行生产中的测试,监控数据信号并分析此信号。这些角色看起来非常像。

Operations和Tester的角色开始发生变化,每个角色看起来更像是另一个:

  • 测试人员现在专注于现场 - 传统的运营领域。测试人员的技能现在应用于确定数据信号和产品质量之间的联系。

  • 无论是扫描生产数据信号还是触发合成事务,我们现在编写的测试看起来很像监视器。Ops一直在做的事情。价值测试带来的是将这些监视器从心跳和简单场景移动到高背景用户影响场景。

在主要服务中,这些变化已经发生。在Facebook和Microsoft Bing,他们实行组合工程,没有单独的测试规则。开发人员的目标不仅是开发代码,还要完成上述所有TestOps任务。这可能是一个难以执行的模型,如果工程师单独回归“经典”开发人员职责从而放弃质量,则会失败。即使将此测试角色与Dev和Ops混合,单独的TestOps角色也可以确保质量。因此,谷歌,亚马逊和微软的服务(Bing除外)反而维持他们的测试规则,但具有从3:1到8:1的高开发测试比率。1:由于测试人员不再为每个离散特征编写测试筏,而是专注于利用数据信号功能的工具和过程,因此不需要1比率。像Amazon.com和Google这样的公司维持中央团队,进一步将开发人员和测试人员的重点放在实时网站上,创建工具,使部署和监控变得更加容易。

这是全部测试,一切都很好

是的,测试人员仍然可以预先测试。黑盒子和探索性测试仍然增加了价值,传统的测试模型仍然可以应用。但是,根据您的产品 - 特别是如果它是一项服务 - 使用大数据信号的TestOps模型可以成为评估软件质量的最有力工具。在Test is Dead(16)Google的工程总监提出的案例是,数据信号告诉我们是否构建了正确的东西,而传统的测试则不那么重要。测试没死。大数据和数据信号的力量也将告诉我们我们需要了解的质量 - 不仅仅是我们构建了正确的东西,而且我们是否正确地构建了它。

参考

  1. http://searchengineland.com/by-the-numbers-twitter-vs-facebook-vs-google-buzz-36709

  2. http://mashable.com/2011/04/11/bing-search-growth/

  3. http://www.facebook.com/press/info.php?statistics

  4. http://www.businessweek.com/magazine/content/10_49/b4206039292096.htm

  5. http://blog.twitter.com/2011/03/numbers.html

  6. http://www.thetestingplanet.com/2011/11/november-2011-issue-6/

  7. http://research.google.com/pubs/archive/36356.pdf

  8. http://www.infoq.com/presentations/Scale-at-Facebook

  9. http://www.slideshare.net/RandyShoup/more-best-practices-for-largescale-websites-lessons-from-ebay

  10. http://www.slideshare.net/raffikrikorian/twitter-by-the-numbers

  11. http://research.microsoft.com/en-us/events/fs2011/helland_cosmos_big_data_and_big_challenges.pdf

  12. Edward Unpingco;?Bug Miner;?内部Microsoft演示文稿,Bing质量日2011年2月11日

  13. 测试自动化的经验;?多萝西格雷厄姆;?2012年1月;?ISBN 0321754069;?章:“迁移到云:TiP的演变,生产中的连续回归测试”;?肯约翰斯顿,菲利克斯德尚

  14. Google:西雅图可扩展性会议:构建可扩展系统的经验教训,Reza Behforooz??http://video.google.com/videoplay?docid=6202268628085731280??[时间戳:20:35]

  15. http://www.setheliot.com/blog/bsc-east-2011/

  16. http://youtu.be/X1jWe5rOu3g

作者生物

Seth Eliot是Microsoft Test Excellence的高级知识工程师,专注于推动整个公司的服务和云开发和测试的最佳实践。他以前是高级测试经理,最近为团队解决了Bing的exabyte存储和数据处理挑战,在此之前,开发人员可以通过Microsoft实验平台(“生产”)快速测试新想法,从而进行创新(http:// exp-platform.com)。生产测试(TiP),软件流程,云计算和其他主题在Seth的博客??http://bit.ly/seth_qa??和Twitter(@setheliot)有所体现。)。在加入微软之前,Seth运用他在Amazon.com提供高质量软件服务的经验,带领Digital QA团队发布亚马逊MP3下载,亚马逊即时视频流和Kindle服务。


转载文章地址:http://www.lbhfjd.com/shenghuo/38561.html
(本文来自智到功成整合文章:http://www.lbhfjd.com)未经允许,不得转载!
标签:
相关推荐
网站简介 联系我们 网站申明 网站地图

版权所有:www.lbhfjd.com ?2017 智到功成

智到功成提供的所有内容均是网络转载或网友提供,本站仅提供内容展示服务,不承认任何法律责任。