Software Testing - 软件测试趋势(2019-08)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击人工智能教程

最近十到二十年,软件业迎来了一个超高速发展期,其中软件测试相对于软件开发进展稍微缓慢一点,不过也出现了不少新的思想、技术以及趋势。基于现阶段在客户现场、业界大会、与专家的讨论以及从网络的相关内容,在本篇文章中总结出几个测试新趋势:

AI+测试

利用AI(深度学习等)系统来辅助测试工作绝对是最近几年最为热门的一个测试趋势,其中包括测试用例,测试数据和测试代码的自动生成、大规模测试结果分析、自动化探索性测试、缺陷定位等,美国已经有多个公司推出了商用的AI测试工具。

虽然已经有很多公司开始研究AI辅助测试,也有很多工具问世,但是它们都存在一个很大的问题:准确性不够高。由于现在AI学习算法本身存在一些问题,其学习并生产的测试用例和验证条件的准确率都不是很高,其中有几个中国一线互联网厂商分享的AI辅助测试的准确率也只有80%多,不足90%。这种准确率在金融等一些要求很高的系统中很难获得认同。

可以将AI辅助测试分为三步走:

第一步,通过深度学习模型自动生产测试用例的输入,人工验证输出。

第二步,通过深度学习模型自动生产测试用例的输入,并通过规则模型自动验收输出。

第三步,通过深度学习模型自动生产测试用例的输入和输出,并自动验证输出。

现在业界基本上能实现第一步了,有部分公司已经可以实现第二步了,而对于第三步,只有少量大公司实现了,并且准确度还不是很高,所以AI辅助测试还有很长的路要走。

新型业务和架构系统的测试

随着AI系统、区块链、微服务以及大数据等系统的出现与繁荣,对其进行专项测试也将是一个测试领域的趋势。这其中会涉及到一些新的挑战,比如测试AI系统可能会用到和以前完全不一样的方法与理论体系;测试区块链的时候如何模拟真实环境来进行测试;微服务在规模变大的情况下,是不是需要使用到与以前不一样的测试策略与一些特殊的测试技术;大数据系统如何在测试环境下,模型真实的大规模数据,并进行业务测试等。

测试基础设施

随着软件系统规模的增大,测试环境的搭建变得越来越复杂,其成本也越来越高。而且在很多实际的项目中都对测试环境有一些特定的需求,比如每轮测试之前,回滚上一轮测试影响到的所有数据;或者可以快速将集群中的多个节上的被测系统回滚到之前的某个版本等。随着这些需求的增多以及成本压力的增加,建设现代化的高效的测试基础设施已经成为了一个大型系统的必然趋势。比如可以利用Docker,Ansible等来搭建高效的测试基础设施等,然后它还有另外一个新的名字:TestOps。

产品环境下的测试

去年阿里云和腾讯云都发生不同类型的线上故障,其中阿里云对于其在2018年6月27日线上故障的说明中写到:“这一功能在测试环境验证中并未发生问题,上线到自动化运维系统后,触发了一个未知代码bug”。由此可见对于大规模、高复杂度的服务器系统来讲,仅仅是在测试环境进行测试已经无法满足质量需求了,如何在产品环境下进行测试必将会在现在以及未来云时代中占据重要位置。

安全开发流程与自动化安全测试

现在一谈到安全,一般都是聊渗透测试或者是安全防护,比如WFA等,很少有人谈到安全开发和开发流程中的安全测试。其实安全开发才是最有效的安全防护方法,但是由于微软的SDL十分笨重,成本也十分高,导致在其当前需要敏捷和快速开发软件的互联网时代很难推广。而在其10年后,ThoughtWorks又基于敏捷实践提出了另外一套安全开发流程BSI(Build Security In),把各种安全实践内建到软件开发的各个关键节点之中,通过尽早引入安全实践以及快速获取安全反馈的方式,尽可能早地发现安全问题。

其中BSI就是结合了敏捷方法论和实践的一种安全开发流程,并需要在开发流程中嵌入各种不同类型的安全测试,比如基于业务功能的安全测试,基于威胁建模结构的白盒安全测试,以及基于各种墨盒自动化的安全扫描和测试等,对于需要持续交付的敏捷团队特别适合。

可测性分析与设计

现在很少有公司会对系统进行可测试分析和设计,只有一些大型公司的部分大型系统会使用它。其实可测试是一个非常古老的话题,就像契约测试早在上个世纪80年代就被提出了,但是由于其对于中小型项目的投资回报比不高,很少有公司会用到。直到规模化微服务的出现和盛行,契约测试这个老古董也逐渐成了一个新的热点。但是随着软件规模的增加,特别是当云平台等大型系统也为一种趋势时,通过提高其可测试性来使其各种测试更加有效也将也为一种趋势。

敏捷测试

敏捷测试也许在国外很多公司(比如Atlassian,Netflix,Google等)已经是常态了,但是在国内,在未来很长时间内还是一种奢望。其中测试前移、测试驱动开发(业务功能级别的ATDD),以及预防缺陷优于发现缺陷等理念和实践,使得敏捷测试能有效的减少缺陷代码和返工,从而有效节约开发成本,提高交付速度和软件质量,所以敏捷测试中的各种实践也一定会在国内成为一种趋势。

      团队协作 胜过 对立的观点

有的放矢的自动化测试 胜过 防御式回归测试

      缺陷预防 胜过 缺陷报告

     探索性测试 胜过 完全预先设定的脚本

小结

虽然测试方法、测试分析和测试策略非常重要,但是随着技术的发展,测试领域中技术占比越来越大。在这些趋势里面,虽然不少还需要长时间的发展或者还没有大规模被业界所采用,但是其中大部分都依赖技术的发展。所以,在未来想成为一名测试专家,除了需要精通传统的测试方法、测试分析、测试策略以外,技术也是无法避免的一项技能了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值