影响软件测试未来的5件事 (译)

摘要:

从我们看软件、评估风险、思考复杂性、设计我们的测试方法和策略,以及帮助发布一个稳定的产品给用户的方式,技术在我们如何测试软件上产生了影响。而且那种影响将只会随着技术进步而持续。在一个高水平上,有5件我们已经看到正在使软件测试的将来成形的重要事情。

在过去的二十多年里,软件测试不仅以执行不同活动的工具,而且以人们使用这些工具的思维演进。那时习惯了少量的工具用于软件测试,但是现在我们有过多的工具可以选择,从专利到开源。同样地,人们开始把测试者当作信息破坏者而不是守门员,并且在敏捷的世界里有很多积极的开发团队在团队跟随他们的软件开发生命周期的流程中重要的改变做贡献。这些演进感谢技术的进步。

从我们看软件、评估风险、思考复杂性、设计我们的测试方法和策略,以及帮助发布一个稳定的产品给用户的方式,技术在我们如何测试软件上有明确的影响,并且那种影响将只随着技术的进步而持续。在一个高层面上,有5件我们已经看到正在使软件测试的将来成型的重要事情。

1. 人工智能

大约5年以前,每个人在谈“移动第一”并给用户以使用手机网页、本地和混合应用程序的方式带来手机体验。现在,新的流行词是人工智能。它在自动驾驶汽车、家庭助理(人们当然喜欢他们的亚历克莎)、计算机视觉、健康护理、金融里,并且现在在软件测试里。

现在,在市场上很少有些信得过的工具使用机器学习去帮助程序编写和执行功能测试、端到端测试和回归测试。首先它们集中在基于用户界面的测试自动化——越多用户创造的测试,算法变得越智能,使得测试更稳定。

幸亏有人工智能,有一些我们可以期望开始看到的在测试中的好处:

  • 更简单的测试代码编写
  • 更低的测试脚本的维护工作
  • 更少的古里古怪的测试
  • 使非技术人们开始做自动化
  • 更简单的CI/CD集成
  • 更可复用的测试

举个例子,我创建了一个Cucumber、 Java和Appium自动化框架。虽然我有一个健壮的框架和很多在写自定义代码去执行各种各样动作的灵活性,但我经常遭受普通的维护问题。当一个开发改变了一个元素的属性,这属性已经被我的自动化测试覆盖了,测试开始失败。结果,我花费了很多时间只是维护这些测试,而不是写新的自动化脚本去覆盖新的已实施的功能。

这个问题现在可以用使用人工智能从文档对象模型提取的动态定位器来解决。实时地,人工智能分析所有的对象树和从文档对象模型的属性,并且能创造一个特殊元素的不同属性的一览表。因此,当一个元素的属性变化时,人工智能尝试在这个一览表的下一个属性去定位这个元素,并且继续仔细检查这个表直到元素被定位到。这种测试更加稳定,程序编写和测试执行会快得多,而且测试者不得不花更少的时间在维护上。

2.开发运营

开发运行帮助软件开发团队和运营团队更好地协作,因此确保有恒定的自动化和监控贯穿同时包含基础架构管理的软件开发生命周期中。

你可能会问,这如何去影响软件测试?答案:我们做的一部分测试的每件事正在变化。我预见的变化包含:

  • 一个在软件开发生命周期的起始时开始自动化的需要,并且确保近乎所有的测试用例被自动化
  • 所有的质量保障工作需要被分配,为了确保平稳的CI/CD循环
  • 需要一个高水平的协作以确保在生产环境的持续监控
  • 所有的质量保障工作需要被标准化
  • 测试思维从“在这种模式的完整测试”转变到“在发布候选者中被减少的业务风险是什么?”

以上所有变化的关键是自动化。开发运营和自动化手牵手前进——缺少其一,另一个将无法工作。这就是机灵的人类和工具能帮助带来更短和更独立的发布周期的地方。

我曾在一个开发、测试、运营团队合作很少的公司工作。我们看到了在软件开发生命周期循环里的很多缺陷,用术语来讲,越多带到产品的问题,CI/CD基础架构越不稳定,并且很少看到产品监控和统计。注意到这些缺陷,团队决定实施开发运营实践,并且每个人开始在每一个软件开发生命周期中合作并做贡献。这开始于需求收集并自始至终扩展到产品发布和监控上。

这增加了合作文化,从在团队士气上有积极影响开始,更多自动化产生,并且整个团队开始作为一个单位一起工作。

3.质量保证即服务

就像我们如何有软件即服务、基础架构即服务、平台即服务,我们现在有质量保障即服务。在过去的几年里,这成为一个为公司去满足它们的软件测试需求的流行的方式。

有质量保障即服务解决方案的公司使得你的软件测试流程更简单,通过:

  • 测试用例管理和维护解决方案
  • 需要更少编码的测试自动化工具
  • 健壮的有日志、视频回放和截图的测试报告特点
  • 简单的CI系统集成

像移动手机、虚拟机、安全网络和人类测试的资源,在过去做自动化的7年里,我经常陷入的一个大问题是不得不维护我自己的服务器去运行我的自动化测试。这个服务器有不同问题,像存储空间的惯性运动,一个古怪的因特网连接,缓慢的处理速度在遍及整周的持续运行的多数测试,以及最新系统、搭建工具、安全补丁、集成开发环境等等的频繁更新的需求。这些种类的问题能以质量保障即服务的提供商解决,因为他们能为你做所有的这些活动,因此团队成员能集中精力在更重要的任务上。

将来,质量保障即服务的提供商们正在思考更多的改进他们产品的方式,为了对他们竞争者保持领先地位,这也将有利于软件测试者们。

4.物联网

随着可穿戴的、灵活房屋、可连接的汽车和其他基于云技术的到来,物联网已经开始成为讨论的大主题。这些设备的惊奇的事情是有这么多交流和集成发生在每一秒。

在高层次上,让我们分析,不同的交流随着可穿戴的健康追踪器的发生。首先,移动应用程序和健康追踪器需要互相交流。被你的移动应用程序捕获的数据应该无缝地集成于桌面、移动网页和应用程序平板电脑的版本,并且这些通过设备的交流需要实时地发生。所有数据踏遍且来源于云、设备和应用程序。人们也能组成群并互相通过应用程序比赛,所以这些计算和交流也需要实时地发生。基于不同触发的事件,适当的通知需要在适当的时候发往正确的用户。所有这些交流通过网络发生。

想象你是一位测试者测试这个健康追踪器。你从哪里开始?你如何设计你的测试策略和方法?

物联网引进它自己的复杂等级到软件测试。它将要影响我们思考测试的方式,尤其因为更多的集中需要被提供给集成测试而不是每个组件单独测试的老的方法。

举个例子,当我正在为一个旅行预定公司工作,我们对使用手表系统(当它首先被苹果引进)的苹果手表想出了一个新的应用程序。应用程序限制了有用的功能,比如查看通知和奖励信息、预定、旅馆定位、航班和汽车租赁的能力。当测试这个应用程序,我发现了当苹果手表应用程序被连接到我手机上相同的应用程序时,有怪异的事情:当我在手机上最小化应用程序,苹果手表变成空白,只显示一个黑屏;但是当我再次在手机上打开这个应用程序时,黑屏消失了,苹果手表应用程序功能正常。

这是一个完美的例子,关于为什么做集成测试是重要的。随着越来越多的设备进入到市场,这将对组织机构和用户显得很重要。

5.机器人

现在机器人做测试。一些人可能会觉得这个会威胁到术语表达的“工作保障”,但是我仍然认为人类的思维不可能被替代。将会需要人类对机器监控,确保它们正在做他们期待的事情并且事实上编写程序让它们做事情。离这个可扩展有多远?只有时间会告诉。

概括地说,技术的进步已经开始影响我们做软件测试的方式。它也使得公司重新想他们的组织架构:质量保证团队正在嵌入到开发团队,而且整个团队将拥有质量。它也将开始对研究变得重要,开发组频繁与测试组的互动为了使产品对它们的顾客来讲更灵活、更有用。

有个替换控制大数据的程序也成为一种需要,就像适当的计算能力滤过这个数据使得到有用的信息和反馈。最后,使这个成为现实,公司需要采取倾斜的流程,并且更加透明,避免成为创新的一个障碍。倾斜的转化将对高效的成长及其重要。

改变我们关于我们如何看系统和相应测试的思维是重要的。我们可以选择忽略它或者拥抱它。你将做什么?

原文地址:https://www.cnblogs.com/fengye151/p/11518709.html

时间: 2024-10-11 05:31:42

影响软件测试未来的5件事 (译)的相关文章

阿里云在LC3大会上透露未来要做的两件事

摘要: 阿里云研究员褚霸在LC3大会上同多位业界资深大咖同台交流表示,阿里云发展到今天,把过去应对淘宝.天猫大规模计算以及双11的计算能力转换成普惠的能力放在云上,这是一个非常大的挑战,也是其他厂商没有经历过的.这些挑战不断帮助阿里云积累经验,提升技术能力. 6月25日,由LFAsia, LLC主办的全球开源顶级盛会LinuxCon + ContainerCon + CloudOpen(LC3)在北京国家会议中心召开.来自国内外的开发人员.架构师.系统管理员.DevOps专家.商业领袖等数千名专

【译】做好这几件事,代码质量可以提升一个档次

这篇文章又是关于代码质量的,有些同学可能觉得我比较啰嗦.不过我就是想用这种方式让大家重视起来.其实说来说去就那么几种方法,但是实际执行起来真是难于登天. 低质量的代码真的是一种灾难.当你的代码变得越来越混乱,维护起来就会花费大量的时间.在最坏的情况下,代码将变得不可维护,并且项目会慢慢终止. 为了避免这种情况,你需要注意你的代码质量.尝试在代码质量上花费一些时间,长久来看,这将对你有很大的好处. 无论你是管理者,测试人员或者是开发者都应该去自觉维护代码质量,因为在整个开发流程中,大家的目标都是交

「译」forEach循环中你不知道的3件事

前言 本文925字,阅读大约需要7分钟. 总括: forEach循环中你不知道的3件事. 原文地址:3 things you didn't know about the forEach loop in JS 公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍 自弃者扶不起,自强者击不倒. 正文 你觉得你真的学会用forEach了么? 这是我之前对forEach循环的理解:就是一个普通语义化之后的for循环,可以被break,continue,return. 这篇文章将向你展示for

想成为千万富翁?首先你要做到这14件事

将你收入中的至少10%用于自我投资,将你至少80%的业余时间用于学习 成为千万富翁的最大价值不在于这千万的财富,而在于一个通过赚取千万财富的过程使自己成为了一个更加杰出的人. -商业哲学家Jim Rohn. 大多数人都希望周围的环境能朝着有利于自己的方向改变,而不是通过努力让自己变得更优秀,从而能主动改善自己所处的环境.其实,你完全可以不要像大多数人那样被动地等待好运降临到自己身上,你完全可以通过用技能和能力武装自我,从而成为自己想成为的人. 你可以做出能产生巨大影响的工作.你的工作能够解决一些

我会告诉22岁自己的六件事

22岁的我在新加坡国立大学读本科,主修机械工程,成绩虽然还不错,但并不是很有自信心.大部分时间我都花在读书学习上,没什么兴趣爱好,对生活缺乏热情,和同学聊天也多半谈些无关痛痒的日常琐碎. 如今已工作二十年有余,回想起来不禁觉得年轻时应该做多些事,让生活更精彩.如果能穿越时空,我会告诉22岁的自己以下六件事情. 1. 思维疯狂些 Eric, 你活得太无聊了,要放开思路,做点有趣的事才对.你可以在学校组织文化活动呀,比如搞个意大利.法国或日本主题的展销会.如果以自己名义举办 当然没人理睬你,但若以大

为什么每天都在学习,生活还是没有任何改善?(你每天只有24个小时,能把两件事做到专家的级别就已经是人中龙凤了)

作者:刘教练 来源:刘教练(ID:liucoaching) 在这个浮躁的时代,坚守自己的选择,专注地投入其中,你才会走得更远.■■■ 我有一个大学同学,只看他的朋友圈,你一定不知道他是做什么的. 今天你看到他在参加吴晓波读书会,明天也许在看罗辑思维的演讲:今天研究互联网风口转向了何方,明天又对网红时代的来临言之凿凿:今天听说新媒体火了,明天就开始问别人“你知道六神磊磊吗?”:今天向往着诗和远方,明天又在李银河阿姨爱与性的教导中思考人生的乐园. 奥斯卡来了,他为小李子感天动地:诺贝尔来了,他为村上

第11件事 产品战略规划十步法

第3章 产品战略与规划 第11件事 产品战略规划十步法 第12件事 战略规划常用的9种工具 第13件事 用户和市场需求分析的方法 第14件事 分析竞争对手的方法 第15件事 远离模糊的战略方向和产品定位 第16件事 愿景和目标要接地气 第17件事 成功要素分析 第18件事 实现目标需要谋略和智慧 第19件事 财务分析 第20件事 风险分析 第21件事 资源支持离不开RACI表 第22件事 产品规划和运营规划 战略与规划的本质是选择,选择做什么,选择不做什么.可以选择进攻,也可以选择防守,当然,最

软件架构师应该知道的97件事

1.客户需求重于个人简历客户需求至上.为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违. 2.  简化根本复杂性 ,消除偶发复杂性根本复杂性指的是问题与生俱来的.无法避免的困难.偶发复杂性是人们解决根本复杂性的过程中衍生的.分析问题好比拨云见月.水落石出.架构师的责任在于解决问题的根本复杂性,同时避免引入偶发复杂性. 3.  关键问题可能不是出在技术上大多数项目是由人完成的,人才是项目成败与否的基础.学会尊重他人,给予团队成员充分的信任,是聪明的架构师获得成功必须掌握的核心技能.团队同心,

学生时代的最后一个新年,请一定要做这五件事

作者:陆小凤首发于:公众号[程序员江湖] 阅读本文大概需要 6 分钟. 再过一天就要过年了,虽说如今年味越来越淡了,但是毕竟还是一年一度家人团圆的日子,学生党可以说是新春大军里最轻松自在的一群人了,既不用担心春运买不到票,又不用担心七大姑八大姨催婚打探薪水,和长辈们吃个饭还能顺几个红包,何不快哉. 然而学生时代终究有走到头的那一天,我们终究要步入社会,开始工作,去承担属于自己的责任,逐渐走向成熟.可能你的学生时代还远未结束,也可能你的学生时代已结束多年,不过今天我们要说的这五件事,也许会引起你的