Skip to content

PaddlePaddle Unit test specification

YUNSHEN XIE edited this page Aug 30, 2021 · 3 revisions

Paddle单元测试规范

【单测开发规范】

  1. PR新增代码需要保证行覆盖率达到90%。
  2. 单测中需要有充分的断言检查。
  3. 单测case禁止使用test1/test2等无实际含义的命名方式。
  4. 每个单测需要有明确的负责人。
  5. 单测代码本身的依赖环境,如MPI等,由负责该单测的相应团队的同学来解决。
  6. code review需要对单测代码进行有无断言和结果校验的的检查。

【单测维护和跟进规范】

1. 单测失败跟进流程

(1)单测随机失败以及disable单测需要在icafe空间创建卡片跟进维护:http://newicafe.baidu.com/v5/space/PaddleUT/dashboard/i?click=true

(2)卡片由QA验证后关闭。

(3)如果disable单测,请RD同学更新流程状态为“Disable”,更新“Disable时间”、“Disable PR”字段。

(4)QA验证是否修复的方式是“修复PR”字段有对应pr,并且该单测3天内未出现失败。

(5)造成大量CI任务失败且短时间内难以修复的随机失败单测建议先disable并尽快修复。

2. 单测修复时间约束

(1)单测随机失败创建卡片后,3天内卡片状态是未修复或6天内未关闭,限制单测负责人pr合入,直至问题修复后恢复。

(2)disable单测14天内卡片状态是未修复或17天内卡片未关闭,限制单测负责人pr合入,直至问题修复后恢复。

(3)在限制pr合入后,对于修复随机失败单测问题的pr,经过QA确认后解除对该pr的限制。

3. 修复时间调整机制

(1)如果需要延长单测修复时间,应由相应团队经理在卡片中评论并给出建议延长的时间,并告知QA((xieyunshen 谢云燊 或 liuxudong04 刘续东)。

4. 删单测规范

(1)原则上不允许删单测,如果有特殊原因删单测,需要告知QA创建卡片记录,并从单测列表中删除,否则视为disable单测(要求修复时间)。

5. 耗时规范

(1)由于单测数量多,可以并行执行的单测,禁止独占执行,单个单测的耗时控制在15S以内。

  • 独占,两卡单测(RUN_TYPE=EXCLUSIVERUN_TYPE=DIST)需要QA approval,除非必须,否则不建议修改。
  • 其他自定义设置TIMEOUT字段,必须由指定QA approve才能merge
Clone this wiki locally