软件测试,在软件领域经常被从业者看来是不直接创造价值的工作环节,行业内也一直促进软件测试从业者追求高质高效低成本的测试。随着AI&大数据技术的飞速发展,也给软件测试带来了福音。百度MEG质量效能平台自2018年开始探索AI技术在软件测试领域的应用场景,随着探索的不断突破,发现软件测试蕴含了极其丰富的AI场景。我们把智能测试定义为:利用数据和算法相结合赋能质量活动的测试方法;经过讨论和探索,我们将智能测试分为计算、感知和认知智能三个阶段。
1、智能测试发展第一阶段:计算智能
该阶段利用软件过程产生的行为数据+算法+机器算力嵌入到质量活动中,辅助、干预测试行为,进而达到提质增效的目标;该阶段不追求高精尖的算法,目的是证明数据和算法可以在软件测试中发挥极大的作用。
在该阶段我们基于遗传算法与任务优先级算法实现测试任务排队时长缩短、基于DTW算法应用内存泄露检测、基于皮尔逊相关系数和分桶算法实现百亿级流量的精准回放、基于JC距离用例筛选技术实现用例执行的大幅降低等场景。
我们用了近两年时间在软件测试活动中挖掘50+应用场景,均得到了非常正向的效果。但是在实践过程中,也认识到计算智能的局限,比如基于覆盖率的用例推荐,如出现底层代码的修改,就会将大部分用例都选出,但实际用例仍无揭错能力,造成极大浪费,为了解决此类问题感知智能应运而生。
2、智能测试发展第二阶段:感知智能
该阶段的信心来源于两个软件测试领域的现实:1、不是