《1-张海峰-代码变更自动分析在整机ROM测试中的实践.pdf》由会员分享,可在线阅读,更多相关《1-张海峰-代码变更自动分析在整机ROM测试中的实践.pdf(33页珍藏版)》请在三个皮匠报告上搜索。
1、代码变更自动分析在整机ROM测试中的实践2023 深圳站张海峰小米 高级软件研发工程师致力于通过技术手段提高软件测试效率和质量,在本领域拥有十年工作经验,曾任职于Testin,滴滴出行。于2017年加入小米,目前就职于手机测试部,主要负责终端自动化测试工具、测试框架和平台建设等工作。2023 深圳站目录CONTENTSROM代码变更自动分析的挑战01 ROM代码变更自动分析的目标02 ROM代码变更自动分析的实践03 业务落地及业务收益04 总结与展望05 2023 深圳站01ROM 代码变更分析的挑战2023 深圳站基于代码变更分析的测试策略识别变更范围确定两个版本之间的代码差异。识别出的变
2、更可能包括新增功能修改功能或修复错误等确定影响范围根据代码变更,分析可能受到影响的模块和特性。缩小测试范围,确保测试重点放在受影响的模块和特性上。风险评估对识别出的变更进行风险评估。确定变更的严重性、可能导致的问题以及这些问题对整个系统的影响。优先处理高风险的变更。制定测试计划根据变更范围、影响模块和风险评估结果,制定详细的测试计划。包括测试用例,并针对高风险变更编写特定的测试用例,进行探索性测试提高测试效率:通过分析代码变更,可以识别出代模块受到了影从有针对性地对这些模进行测试,这样可以减少不必要的全面测试,与其执行大量关的测试用例,通过关于针对受到影响的代码央执行相关的测试用例,从而节省时
3、间和资源由于有限的时间和测试资源导致无法每次代码变更执行完整的测试。在这种情况下,基于代码变更分析的测试策略能够确保关键的、受影响的部分得到充分的测试,从而使有限的测试资源能够更好地利用。提高测试质量:2023 深圳站ROM 代码变更分析的挑战变更数量多,分析任务复杂,专家资源有限,难以在分析效率和质量上得到保障架构复杂涉及到硬件抽象层、系统服务、应用程序框架、预装应用等方面涉及功能多涉及到手机20多个模块和上百个手机功能特性变更数量多维护和在研项目几十个,每个项目不同版本的会有几百个代码变更协作流程长分析代码变更需要不同领域20+专家协同工作,分析流程漫长,有时会持续几天存在主观差异由于存在
4、主观差异,以及专家能力水平的不同,分析结论至少存在10%的差异2023 深圳站02ROM 代码变更分析的目标2023 深圳站ROM 代码变更自动分析的目标辅助各领域测试专家输出测试策略,提升测试专家分析效率,拉齐分析的一致性预测代码变更的影响模块任务1:预测影响模块预测代码变更影响的子模块任务2:预测影响子模块筛选恰当的测试用例进行测试任务3:测试用例筛选评估代码存在缺陷的可能性任务4:代码风险评估影响模块分析影响子模块分析测试方案风险评估2023 深圳站03ROM 代码自动分析的实践2023 深圳站CL自动分析基础框架IssueTestChangeExpert机器学习 从具有大量标准数据中构
5、建模型贝叶斯推理 对不确定专家知识进行建模规则系统 对确定性专家知识建模搜索排序 对关联性文档数据进行检索影响模块预测影响特性预测测试用例选择变更风险评估2023 深圳站1.1 影响范围预测-模块级别测试专家过去几年曾经对大量变更进行模块级别的分析涉及几十个手机模块WiFiAudioDisplayBluetooth是否可以通过机器学习的方法预测代码变更对哪些手机模块有影响?如何构建训练数据集?提取什么特征最有效果?如何选择模型并对效果进行评估?2023 深圳站通过挖掘测试用例管理系统,Issue管理系统,Gerrit 数据建立变更代码、缺陷、用例、专家分析结果的关系标记为Camera的变更1.
6、数据采集与集成2.样本均衡1.2 模块预测-数据集构建2023 深圳站1.3 模块预测-提取特征及模型构建类别字段提取方法代码Code ChangeCode Change EmbeddingFilesTF-IDF元数据MessageTF-IDFProjectTarget EncodingAuthors DepartmentTarget EncodingIssueSummaryTF-IDFDescriptionTF-IDFCommentsTF-IDFComponentsTarget Encoding每个变更提取20+字段生成1w+特征向量构建5w+训练数据Bo Lin,Shangwen Wang