1、数生智慧2023/9/22-23中国上海高质量发展新等第九届点OECon全球软件质量&效能大基于AIGC的蚂蚁新一代测试用例自动生成技术周海莲蚂蚁集团#page#OECon周海莲目前主要负责测试用例自动生成方向。毕业后曾就职于百度、阿里、蚂蚁,负责过搜索系统、广告系统的质量保障和质量平台研发2020年以来加入蚂蚁,负责测试用例自动生成方向,孵化出智能单元测试用例生成产品SmartUnit,在蚂蚁集团、阿里集团的多个BU中使用并取得优秀落地效果2023年开始探索基于AIGC的新一代测试用例生成技术,并在蚂蚁内部探索落地;数生智慧全球软件质量&效能大会高质量发园新#page#QECOn01测试用例
2、生成的技术演进02现有技术的问题和痛点目录03基于AIGC的蚂蚁新一代测试用例自动生成CONTENTS04总结与展望数生智慧全球软件质量&双能大会高质量发园新#page#OECon测试用例自动01生成的技术演进数生智慧全球软件质量&双能大会高质量发园新等#page#OECon测试用例自动生成【测试智能化】人工手写大量测试用例一极致用户体验的用例编写方式:秒级智能生成高覆盖率、高有效性的测试用例理想中的测试用例实际中的测试用例各阶段修复问题成本无有效AssertMOCK成本高变更修正用例量历史负载SoogleIntegraton测试金字塔39测试用例的开发运维成本实际项目中测试占比Unit80%
3、好生器站全球软件质量&效能大台电共#page#OECon技术演进路线优势不足技术方向发展历史1988年,FuzzGenerator首次被提出,用于测试Unix程序的健壮性,通过构Fuzzing在安全领域获得了非覆盖率不够好、生成常好的发现漏洞效果用例量过大造大量测试输入从而发现软件漏洞模糊测试Fuzzing2013年,Fuzzing技术迎来分水岭:AFL,首次采用通过插桩获取代码覆盖从而引导Fuzzing的方式。这一技术随后被应用至测试用例生成领域1976年,SymbolicExecution的概念首次被提出,通过解析程序的路径,用对能够求解出的路径,可以存在路径爆炸、约束精准命中分支求解复杂
4、等问题,单符号模拟通过路径并获得输出。基于符号执行一的符号执行技术难2006年,研究人员提出了一种”先进行符号执行,后根据符号执行结果生成Symbolic Execution以实现测试用例生成测试用例”的执行生成测试技术,这项技术后来发展出了用于检测Linux内核错误的KLEE随机性高1990年,B.Kore提出了使用动态数据流分析的技术进行路径覆盖,这是基于可扩展性高,可以应用多种基于搜索搜索的测试用例生成的初始想法。搜索算法,如遗传算法、爬Search Based SoftwareSBST从问题的解空间出发,通过启发式搜索优化算法来解决测试用例生成的山算法等等。Testing问题。2023
5、年,基于AIGC的代码生成能力惊艳亮相,给用例生成领域带来了底层核可读性高生成用例的执行通过心技术的变革。可扩展性强率仍在持续提升中基于AIGC生成效率高好生器站全球软件质量&双能大台电共#page#OECon现有技术的问题02和痛点数生智慧全球软件质量&效能大会高质量发园新等#page#OEC90用例生成的难点与挑战技术难点业务落地难点用例数据构造用例可读性机器生成的用例,由于用例语句组装策略相对固定,复杂数据类型:大型业务系统中通常包含复杂数据类会导致生成的用例可读性低于人工手写用例;型,如多层嵌套的JSON结构、复杂Object等;复杂语言特性:匿名内部类、lambda表达式等广泛V多语
6、言扩展应用于业务系统中;基于SBST、程序分析等技术进行用例生成时,多语言之间的工程化能力差异较大,扩展难度高;用例有效性断言语句生成:测试用例需要包含有效断言,才能具用例运行稳定性备发现问题的能力;运行效率:单测用例量级较大,需保证相应的运行效问题发现能力:基于代码的用例生成,断言值一般与率,以适配Devops;代码保持一致。对代码问题发现有带后性;环境依赖:需进行用例执行前后的清理,以解除用例相互依赖;数生器慧全球软件质量&效能大台电共#page#OEConAIGC浪潮下用例生成的变革以大模型为基础进行用例生成,很多已有的难点和挑战都有了新的解决方案;用例可读性全语言支持大模型生成的测试用