工作流程
4 个步骤,每一步做什么、依据什么,都写在这里。
覆盖率证据
工作流程
- 1建立变更索引基于 Git Diff 建立差异索引,标出新增、修改和删除的方法。
- 2反查入口与调用链从改动方法向上追溯到 API 与页面入口,确定需要回归的范围。
- 3召回用例并判定覆盖按测试调用关系和测试文件召回已有用例,逐个方法给出三档覆盖结论。
- 4输出报告并补测生成一份 HTML 报告,包含影响入口、改动清单、测试方案和覆盖判定,并为未覆盖点新增可运行的测试文件。
智测 OpenQA 为每次代码变更给出覆盖证据:改动方法被哪些用例覆盖、能从哪些接口和页面触发、还缺哪些测试。现在可通过开源技能 codexqa-change-analysis 获得三档覆盖判定;代码行与分支的增量覆盖率系统规划中。
2 项能力中 1 项现已可用覆盖率证据是回答“这次改动到底测到没有”的一组可核对数据:用例是否覆盖改动方法,改动能从哪些接口或页面触发,调用链上哪些路径被走到,代码行和分支执行了多少。一个全量行覆盖率百分比说明不了具体改动;OpenQA 按变更逐项给出结论,并把未覆盖的点列出来,交给人或 Agent 补测。
为每个改动方法召回已有用例,给出已覆盖、部分覆盖、未覆盖三档结论,并标出依据用例的文件与行号。现在可用。
从改动方法沿调用关系反查上游入口,列出能触发它的 API 与页面,作为接口层回归的范围。现在可用。
对未覆盖的点生成可运行的测试文件,只新增、不修改已有测试。现在可用。
智能代码覆盖率系统规划中,将合并单元、接口与 UI 测试的执行数据,统计本次改动的行与分支覆盖。
4 个步骤,每一步做什么、依据什么,都写在这里。
目标是让团队少花时间重复确认,把注意力留给证据不足和风险更高的变更。
JaCoCo、Istanbul、Coverage.py 统计代码执行比例,是覆盖证据的一种来源。OpenQA 面向一次具体变更,把用例、接口入口和调用链与改动方法对应起来,回答这次改动测到没有、还缺什么。代码行与分支的增量统计将由规划中的智能代码覆盖率系统提供。
现在可用的是开源技能 codexqa-change-analysis:差异索引、入口反查、用例召回、三档覆盖判定和补测文件生成,需要安装 codexqa CLI。多层增量覆盖率系统规划中。
方法级判定只分已覆盖、部分覆盖、未覆盖三档,并写明依据的用例位置。百分比容易掩盖关键分支完全没测的情况,三档结论配合用例位置更容易核对。