- 博客(92)
- 收藏
- 关注
原创 第4.4节 App动态追溯关系
再按类或是页面过滤执行顺序,后续安排熟悉业务的同学,对操作步骤进行过滤,或是按用例的功能模块,自动过滤不相关的操作步骤,从而达到精简用例与代码的关联关系。通过解析用例执行过程中生成的覆盖率数据,反向查询覆盖的类和函数列表的方案,可是建立用例和代码的关联关系,但是这存在一个问题无法记录函数的的执行顺序。通过上面的操作,借助于新开发的插件,记录用例执行的类和函数信息,此时用例执行覆盖有了顺序,就是为了区分用例的前置和关键操作步骤吗?1,对于所有的用例,先计算出公用路径,如果代码落在公共路径中,先放过代码;
2025-07-17 14:30:18
891
原创 第4.3节 iOS App生成追溯关系
iOS和Android平台在生成用例追溯关系时逻辑一致,都需要通过关联用例将测试用例与覆盖率数据建立联系。iOS端实现包含:1)设计关联用例弹层,包含标签、按钮等UI组件,支持拖拽和点击操作;2)处理覆盖率数据录制,包括上传已有数据、清除旧数据等操作;3)解析覆盖率文件,针对Objective-C和Swift项目分别处理:ObjC项目需合并gcda/gcno文件生成报告,Swift项目需转换profraw为profdata再生成info文件;4)最终将用例与覆盖的函数信息关联存储。整个过程通过自动化工具链实
2025-07-17 14:25:43
860
原创 第4.1节 追溯关系简介
用例与代码间的追溯关系是软件开发和质量保障的关键环节。它通过建立需求-用例-设计-代码-测试的完整链路,确保每个功能点都有对应的实现和验证。这种关系的主要作用包括:1)需求变更时快速定位影响范围;2)保证代码与需求的一致性;3)提高测试覆盖率;4)便于项目维护和审计。实践中可通过文档管理、专业工具和自动化测试来实现有效追溯,这对提升软件质量、降低维护成本具有重要意义。
2025-07-07 16:34:59
339
原创 第3.2.3节 Android动态调用链路的获取
借助于jacoco插件的核心功能,对项目代码进行插桩,对每一个类和函数进行插桩,记录类的classid, methodid,执行次序和执行时间。插桩的过程中,将classid, 类名,methodid,函数名与参数等信息记录到class-method-map.txt文件中,打包的时候会将文件生成保存到工作目录中。在要关联用例的App中,添加新的jacoco插件,打包后就会自动对函数中的类,函数进行插桩。3,在测试需求时,根据需求,上传覆盖率,trace信息文件。将会在指定的目录下,生成新插件的所有包。
2025-05-10 21:47:18
1083
原创 2.3.5 覆盖率数据的合并
在覆盖率测试过程中,通过App的生命周期控制覆盖率数据的采集时机,在app进入前端时,清除上次覆盖率数据,执行测试用例,将App置入后端时,生成覆盖率数据文件。常规状态下整个测试过程中会执行多个测试用例,也会产生多个覆盖率数据文件,我们需要将每个测试用例的覆盖率数据文件获取上传到指定的服务器上,再清除数据执行下次用例,这个功能将在后面通过SDK来实现。注意:官方指定必须是相同的类的覆盖率数据文件才能合并,如果类有变化,则classid就变化了,不能合并。这就是后面我们要介绍的,跨版本覆盖率合并。
2025-03-24 19:49:22
396
原创 第2.1节 覆盖率简介
通过对比和各方面的调研,选择比较通用化的Jacoco作为Android端的覆盖率采集工具,而iOS端的选择不多OC使用XcodeCoversage,Swift有其自带的覆盖率采集方案,后续我们将详细介绍。至于jacoco的一些概念,插桩原理,ASM等等,将不再介绍,网上相关的资料较多,防止影响我们专注于移动端覆盖率的测试。如果我们有 100 行代码,但测试只执行了其中的 75 行,那么我们的代码覆盖率就是 75%。以上内容需要的知识储备较多,读者可以根据自己的情况,挑选学习,有能力的话,也可以全面学习。
2025-03-20 14:14:20
852
原创 第一章 移动端精准测试简介
精准测试(Precision Testing)是一种通过数据驱动、技术辅助的软件测试方法,旨在以最小的测试用例集合覆盖最多的代码逻辑和业务场景,从而提高测试效率、降低测试成本,并精准定位缺陷。其核心是通过对代码、需求、测试用例、缺陷等数据的关联分析,结合覆盖率统计、代码差异分析、动态追踪等技术,实现测试过程的智能化和精准化。
2025-03-18 11:37:37
458
原创 移动端精准测试实践序言
这套体系在实际业务测试中得到了充分验证,特别是在版本发布前的回归测试阶段,能够以最少的测试用例集合实现对新功能的最大化覆盖,显著提升了测试效率,缩短了测试周期。在过去几年的职业生涯中,我专注于精准测试领域,经历了从移动端到前端,再到C++的精准测试实践,这一路充满了挑战与成长。此外,混合开发模式下的跨语言调用,如原生与WebView之间的交互,更是增加了精准测试的复杂度。希望通过我的努力,能够帮助更多同行避免重蹈覆辙,找到最适合自身环境的高效精准测试实施路径,促进精准测试方法在贵公司的广泛应用。
2025-03-18 11:30:42
324
原创 测试教程分享
前几年在腾讯课堂上发布了不少课程,后来腾讯课堂改革,要收会员费,课程还要抽提程,这么下来就相当于白干了。就放弃了在上面发课程,再后来腾讯课堂就关闭了,以前发布的视频就没有地方发了,于是我决定在 bilibili 上发布,完全免费给大家分享。1,WebUI 自动化 Python 系列。其他课程会持续更新中,欢迎关注!3,pytest 接口自动化。5,功能测试系列课程。
2024-10-16 19:58:42
388
原创 Android plugin如何兼容App插件和library插件
最近由于工作需要,开发了一个jacoco与记录用例执行顺序的插件,整体功能开发没有问题,但是在应用到项目的时候,就出错了。被测试的项目是个多模块的项目,原则上需要对app和libraries都添加插件,不然library中的代码没有插入jacoco的桩,也没有记录用例执行顺序的桩,无法达到目的。通过这两个地方的兼容处理,就可以保证插件在app插件和library插件中同时使用,经过Demo测试没有问题。作用于整个工程,包括当前工程、所有子工程及外部依赖库。仅作用于当前工程,不包括子工程或外部依赖库。
2024-05-28 11:25:49
675
原创 Electron+Vue构建项目时出错:Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT
Electron+Vue构建项目时出错:Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT。
2024-03-28 11:05:22
1097
原创 如何写出高质量的测试用例?
测试用例虽然很简单,也是测试人员入门必备的能力,但是要想写好一份高质量的用例也不那么简单。如果你能负责维护一套高可用,清晰易读的产品用例库,那就更加不简单了。当这样的能力成为你的习惯的时候,就不仅仅是在用例编写上,所以涉及到的项目,技术都能总结的很好,慢慢沉淀成你的知识体系,最后想不进步都难。
2023-07-05 19:25:09
1312
1
原创 React项目通过webpack-plugin-istanbul生成覆盖率报告
利用webpack-plugin-istanbul插件生成React项目的覆盖率报告
2023-07-03 16:07:02
965
原创 测试同学如何快速开发测试平台?
转眼已经好几个月没有发表什么文章了,因为疫情原因,大家工作都不怎么顺利,没有什么心情。再者,最近一直在搞移动端精准测试的项目,有太多技术难点需要攻克。从各个网站上都找不到解决方案,只能不断地尝试,摸着石头过河,还好最终影响项目开发的技术壁垒都给突破了,这类问题我也总结了不少技术文档,受众群体较少,也就没有发布出来。但这一个来月,看到组内的小伙伴,有不少业务线都有开发测试平台的需求,就根据自己以往的经验,介绍一下如何快速开发测试平台?
2023-03-10 15:55:32
735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人