第二讲主讲人是《测试工程师全栈技术进阶与实践》的作者茹炳晟老师,他分享的主题是软件测试的未来发展,介绍了一些非常有意思的软件测试新技术,让观众大开眼界,茹老师独特且敏锐的角度和思维深度,也让我有了一番新思考。
以下是茹老师预测的5个软件测试技术的发展趋势
1、厚积薄发的智能化测试
2、降本提效的精准化测试
3、充分利用容器技术的测试基础架构
4、崭露头角的混沌工程
5、中流砥柱的测试中台建设
智能化测试
茹老师用了几个人工智能对软件开发的影响的例子,令人大开眼界。首先是智能识图创建代码工程,将UI设计图直接转化为html代码,变成可执行、可编辑的网页;另外一个是通过电脑摄像头,将实时拍摄的人手绘UI布局转化为HTML代码,变为对应网页。
紧接着茹老师举了两个智能化测试的例子,第一个是将各种购物车的图片输入算法,自动化测试程序在测试购物平台时,可以普适性地找到不同平台的购物车,进而去点击购物车。第二个例子是基于动态图片识别,在测试捉鱼游戏时,通过输入不同的图像,比如“go”开始游戏、气泡、金鱼等,就好比现在UI测试定位元素,测试平台会自动找到这些元素并进行操作。
在元素是动态的或者位置并不固定时,茹老师讲述了一种通过颜色比例去定位元素的方法,例如一个OK按键,其中按键底色和上面的“OK”文字的颜色比例是固定的,即使这个按键每次显示的位置不同,通过类似颜色比例这种不变的属性仍然可以成功定位元素。这里涉及到非常多复杂的细节,在算法侧会经过一段漫长而辛苦的探索过程,但是最后的成果是喜人的,会为自动化测试带来极大的便利。
我对人工智能的印象仍然是一些模式识别,图像识别和自然语言处理的程度,其实一直有一种偏见,就是人工智能仍会有很长一段时间处于人工智障的水平。但是如同当初使用按键机的我没有想到,两三年之后所有手机都只剩下一个样子——触摸屏去按键化的📱,现今的人工智能也不是两三年前我以为的样子。
人工智能算法有一个真理,就是当数据集无限大,算法准确率会无限趋近100%。集众人之力,我相信智能化测试便是大势所趋。
降本提效的精准化测试
所谓“精准化测试”,即有针对性地减小测试范围,识别到所有代码改动涉及到的内容,进行测试,而未涉及到的地方,就不进行测试。这样在每个上线周期进行上线时,可以降低很多无谓的时间和人力浪费,而省下来的时间可以用于对有改动的部分,更完善的测试,即所谓“降本提效”。
个人认为精准化测试难点在于识别改动涉及的范围,仅测试人员是难以做到完全识别的,这一点需要开发的协助。目前精准化测试都难以真正实现,一方面因为测试人员和开发人员协作程度不高,往往被需求裹挟着走,开发没有时间跟测试人员交流过多的细节,另一方面因为测试人员对于开发技能的掌握程度不够,不能真正理解代码改动涉及的范围。
但是未来会有各种新的工具和框架出现,软件开发的效能一定会持续上升,团队在质量保障方面的改进也必须提上日程。当有一天真正达到茹老师所说的LESS IS MORE,可能整个团队的开发效率和质量会更上一层楼。
其他三个维度就暂时不作详细描述,每一个话题都是能够为软件质量提升带来巨大飞跃的有力武器,后续如果有更深入了解再来补充。