测试行业现状
测试职业规范化和发展是最近几年了,但是最近也经常听到测试人员的一些抱怨,被人觉得测试工作技术含量低,更像是体力活;也被人说测试人员缺乏技术背景;其实大部分测试人员只专注于工作的完成度,缺乏更深度的思考和总结,比如如何利用现有新技术提高自己的测试效率。
小编认真观察今年招聘软件测试岗位的技能要求,即便是针对应届生,相比前几年都提高了很多。自动化测试、测试计划与方案、bug跟踪管理、测试报告、环境搭建、数据库这些都是基础,更多还要求有编程基础、人工智能、掌握主流测试工具使用、实际项目经验等。这和测试行业目前的发展特点有很大相关,测试行业在经历过火爆的几年发展后,目前呈现自动化、智能化的新趋势,因此对从业人员的要求也越来越高了。测试工程师想要不愁找工作,不轻易被公司裁员,就需要跟随这些新趋势,学习新技术,不断地充实自己。
测试行业未来新风向
敏捷和DevOps
很多企业已采用了敏捷与DevOps,用敏捷来响应快速变化的需求,用DevOps来响应对速度的要求。有时候也需要采用协作方式来完成比较复杂的活动,Forrester最近的一项调查结果显示:通过敏捷与DevOps协作工作的人拥有更快的解决方案交付速度,虽然过去十年都是从瀑布转向敏捷或DevOps方法。但未来十年,测试行业“敏捷+ DevOps”方法会被更大范围的使用,以便在交付的产品和服务中建立优势。
自动化测试
自动化测试是实施DevOps实践过程,尽管目前大多数公司依靠手动资源来完成软件测试活动,但随着测试需求的不断旺盛,自动化将会接管绝大部分的测试。 自动化工具具备更快的速度和准确性执行重复的测试周期、迭代繁琐的扫描任务等优点。在很久的一段时间内,手动测试在自动化测试所包围的世界中仍具有重要性,手动测试将加快测试周期,自动化测试提高效率;这也意味着可以期待软件在未来经过测试后缺陷会显著减少,客户满意度的可以大幅提高以及产品会有更高的用户保留率。
人工智能测试
人工智能和机器学习已被应用于软件测试中,测试智能化是未来几年测试行业最大的技术趋势之一。随着越来越多的智能化技术在测试领域的应用,测试的效率和质量都会得到进一步的提升。Testin云测致力于将领先技术落地于测试行业,通过融合自然语言处理、文本识别、图标识别等技术的下一代AI测试产品 iTestin,提升了测试的易用性和工作效率,大大降低脚本调试和脚本维护成本。Testin云测在业务理解、数据理解、数据准备、算法建模、性能评估、模型部署全流程上实现全面提升,是 AI 技术在测试领域落地的最佳实践。
智能化测试新实践
测试新产品iTestin智能化实践
1.降低操作门槛:自然语言录入文字即可生成自动化脚本
通过基于自然语言的脚本录制功能,测试人员只需要用自然语言即可实现测试编程,只需在界面中输入点击、等待、检查、长按、输入等自然语言的文字描述,后台的AI就能准确实时的在真机上进行完整无误的操作和相关指令,完成测试自动化操作。 iTestin这种全新的自然语言脚本大幅降低了脚本录制的难度,也极大提升了产品易用性和脚本维护效率。
2.降低脚本维护成本:脱离控件方式,相同流程下,实现一套脚本跨平台使用
Testin云测通过只依赖UI界面截图的OCR和图标识别技术,使得Android端和iOS端使用同一套UI自动化测试脚本成为可能,实现跨平台脚本能力,大大降低脚本维护成本。无需对控件信息进行调试,降低脚本调试成本。
3.降低脚本调试成本:无需对控件信息进行调试
提升跨终端执行通过率,通过AI深度学习算法使自动化脚本越来越“聪明”,采用智能的、自适应的测试自动化方案让自动化变得更加“智能”。
从链路化压测到流量回放的平台实践
京东零售技术与数据中台测试架构师侯磊在NCTS中国云测试行业峰会上,介绍了京东在链路化压测方面的实践以及今年在工具上的演进,他指出,“开源社区星级最高的往往不是技术最牛、最好、最新颖的,而是论坛最丰富、社区最活跃,文档最全面的。当整个团队的能力逐步提升后,测试工具要想脱颖而出拼的就是运营了。”而京东通过大规模链路化压测,拥有丰富链路化压测实战经验。链路化压测分为系统链路和业务链路,比如,压测一个服务,这个服务会调用缓存、调数据库、调用中间件,就会形成一个基于系统的流量的传输,这是天然形成的一个系统链路。业务链路怎么工作,在压测一个接口时,接口会调用其它接口,接口A调接口B,也可能调接口C,接口B有可能又调接口C,这样就形成了一个完整的业务链路。
链路化压测首先要对整体流量进行评估,系统会预期双十一、618的流量之后暴露系统短板是什么;其次是根据短板怎么再做资源的调配,让木桶尽可能盛装更多的水,这是链路化压测的目的。
链路化压测还有以下意义:
1.通过海量数据的模拟,海量的压力机、多线程、多进程实现多并发。
2.数据的收集,性能测试工具都会面临此类问题,在jmeter为了精确计算TB99,会把每个响应时间都生成在文件里面,传给 master,这样就造成了网络传输的问题和计算问题。
3.作为一个压测的生态来说,监控是必不可少的。除了对压力机的监控,还有被测服务的监控,监控的内容包括资源的监控以及请求监控。
链路化压测实现流量录制:
流量录制回放相当于蓄水池的概念,用几个小时的时间把线上数据录制下来集中存放,然后再用很短的时间集中释放,达到模拟洪峰来临的效果。在京东双十一备战上,流量录制已经开始使用,效果显著,很多业务的配比关系直接使用真实数据,这使得业务测试比较轻松,不需要再写很多脚本,也不用再向研发要各种参数数据。
千万级约课系统自动化压测实践
VIPKID性能测试方向负责人宁浩然在分析VIPKID在链路压测过程中遇到的问题和挑战时,介绍了自动化压测平台如何解决代码级定位链路上的性能问题,以及公司如何在无人值守的情况下完成自动化压测。
他以VIPKID业务和系统压力增长最快的2017-2018年为例,介绍了如何扛住每周一次的约课高峰面临的挑战:
1、上线频繁,影响了核心的约课链路,因此每次的上线对技术团队来讲都需要进行链路机的压测,频次每周大概是压测2-3次,是链路级的。
2、链路比较复杂,性能问题定位困难重重。
考虑上述的问题,VIPKID测试团队在做自动化测试平台设计考虑到以下几点:
1.一个任务调度处理模块主要负责各模块之间的调度任务,包括压测启停、监控开关等。
2.压测主要是在接口和数据方向上做准备,监控和报告服务就是刚才说的开启监控、停止减亏等等,还有生成报告的服务。
3.数据来源有两个,一个是运维的监控平台,这部分负责拿取各种的主机、DB等信息,elk是日志平台,通过它拉取流量也可以根据线上流量情况进行数据的分析。
通过上述设计的平台,不管在数据准备还是结果定位上都大大缩减了人力还有时间。那么,什么时候适合建设一个平台?对于不同业务来讲,不尽相同,不一定每个公司都需要一个统一的平台。比如,压测场景是单接口压测或者单服务,定位问题比较容易,此时用jmeter比较适合;但是频繁的重复化的压测需求存在时,则需要这样一个统一的平台。对于测试开发工程师,最重要的不是为了开发而开发,而是要发现工作过程中遇到的痛点问题,把那些可以重复化的或者可以用机器取代的工作通过技术手段替代掉,这才是测试工程师的工作方向。
如何通过精准测试来解决效率黑洞
搜狗科技资深高级测试开发工程师王鹏指出,“精准和智能是精准化测试聚焦的两个点,而如何从经验型方法中提升技术性的手段则是精准化测试的目的。”
现实生存场景中,影响测试效率的因素:投入产出比,产出成效不可衡量,效果跟个人素质关系较大。
因为上述因素的存在,大大影响了测试的效率。精准化测试就是“用非常精准和智能的软件来解决软件测试的问题,并从根本上引领软件测试,从经验型方法向技术性方法的转型”。它强调解决问题,精准和智能就是说,在精准化测试里要聚焦解决问题,从经验型方法向技术性方法转移,黑盒测试则大多依赖于经验型方法,如何在经验型方法中提升技术性的手段就是精准化测试的目的。那么如何实现精准测试:
1.测试用例到代码逻辑精准记录的双向追溯。
2.精准的代码级的缺陷定位和崩溃分析。
3.精准的测试充分度分析,主要是解决测试不可度量的问题。
4.实现智能自动化:这就需要回归用例的自动筛选,用自动化用例筛选与执行,持续集成。
通过精准化测试提升效率的具体方法有以下几种:
1.精准圈定测试范围;
2.对影响的范围必须给出建议;
3.自动筛选测试用例;
4.为黑盒测试提供实时覆盖率结果,这对后期复盘分析帮助很大。
川测试模型的自动化测试架构设计与实践方法
安畅物联网CEO、川测试模型创始人李龙指出,“在进行软件开发或软件测试的项目之前,需要做整体流程的把控。尤其是把测试人员工作的切入、切出方式、与研发的无缝对接方法以及提高软件质量保证的意义提高到一定程度上。”川测试模型架构设计时分为三条业务执行线:一是验收测试的实施模型;二是需求;最后是属于业务测试实施的流程。此外,川测试模型具体实施方法又分为5步:
1.提前准备测试环境、数据的工作的方式方法。
2.自动化测试平台搭建的方式方法。
3.专项测试的设计方法;
4.基于业务、风险、探索的测试设计方法和框架的整合。
5.测试数据资料的完备性与可追溯性设计体系的挂钩。
在企业目前测试模型实际使用率较低的情况下,川测试模型在借鉴前辈的模型实践基础上,进行了创新性的架构设计,研究了一套真正适合在中国发展的软件测试的模型,势必会推动企业对测试模型的使用。
文化建设践行DevOps-Etsy持续交付之道
京东零售技术与数据中台测试架构师任广印指出,“在Etsy,工程团队推行了各种文化建设,帮助员工成长,助力公司成功,主要体现在四个方面:第一,放权和信任;第二,集体责任;第三,持续的学习改进;第四,相互督促,结伴而行。”
从2005年成立,到2015年上市,Etsy 4人规模成长到市值十几亿美元的上市公司,这其中离不开Etsy独特的公司文化和质量保证体系。
Etsy鼓励员工持续学习、提高、交流;同时也十分看重员工工作和生活的平衡,为了鼓励大家高效的工作,公司不推崇加班,推荐员工在工作中聚焦精力,把精力放在最该做的事情上。员工通过持续的学习,提升测试技能,改进测试策略;此外Etsy的质量保证小组会根据项目情况进行资源分配,一个质量小组通常会包含PQ分析、QA负责人、项目经理、测试开发等角色。公司的持续集成、持续发布以及持续部署,解决产品如何快速创新和加快恢复时间。
智能化浪潮下测试工程师的新选择
虽然自动软件测试工具的崛起,有可能让公司裁减部分程序工作者,但是引进这些工具能够让程序员变得更有创造力。他们将有更多的时间研发而不是维护,这就有可能带来令人兴奋的结果。软件测试帮助创始人维杰?辛德曾认为,AI可接管近70%的重复测试空间,人类教会系统学习源代码分析后,测试机器可以给出更精确的结果,还能预测可能存在的漏洞,导致测试团队超越了传统手工测试模型,走向自动化和基于精度的连续测试流程,由于AI减少大量简单重复的繁琐工作负担,测试团队可以把主要精力放在剩下决定成败的30%测试工作中。
笔者认为,AI等新技术使一些令人厌烦和枯燥无味的工作慢慢消失,而未来必定属于那些用技术改变行业的公司。Testin云测是一家不断尝试通过技术创新助力整个测试行业的发展和生产力提升的公司,使用 AI实现自动化测试。相信在Testin云测这样的公司努力下,未来的测试产品会更智能,更简单,更易用;也帮助测试从业者从重复性的劳动中解放出来,让他们的生活越来越幸福。