
Take screenshot from <https://mermaid-js.github.io/mermaid-live-editor>

## 用例设计、编写调试、运行的流程

```mermaid
graph TD
  
  classDef dev stroke-dasharray: 0 0 
  classDef qa stroke-dasharray: 10 10
  classDef devqa stroke-dasharray: 4 2
  classDef devinendless stroke-width: 5px,stroke-dasharray: 0 0 

  RecordTestCase(使用飞书用例模板录入测试用例集)
  ReviewTestCase(开发和测试一起 review 该测试用例集并确认各用例 ID)
  ImportTestCase(将测试用例导入到 TCMS 平台)
  WriteAndDebugTestCase(使用 Endless 编写调试测试用例, 本地调试 OK 之后在 Endless 上提交 PR)
  ReviewPR(开发与测试一起 review 测试用例代码)
  CreateRunPlan(创建日常运行计划)
 
  RecordTestCase:::dev -->  ReviewTestCase:::devqa -->  
    ImportTestCase:::qa --> WriteAndDebugTestCase:::devinendless --> 
    ReviewPR:::devqa --> CreateRunPlan:::qa

  subgraph 图例
    direction TB
    Dev(用例实现人员参与的步骤):::dev -.-
      QA(测试人员参与的步骤):::qa -.-
      DevAndQA(用例实现人员和测试人员一起):::devqa
  end
```

## Review 流程

```mermaid
graph TD
start([开始])
ende([结束])
start --> Coding(构思并编写用例) --> PR(用例编写者向 Endless 提交 pull request)
PR --> IsStable[["用例是否已经完成并且稳定？"]]

    Parallel((同时<br/> 进行))
    IsStable --是--> Parallel
    IsStable --否--> TagWIP("由用例提交者在 pull request<br/> 标题的最前面标明 [WIP]")
    TagWIP --> WIPCase("用例提交者继续完善用例")
    WIPCase --> UntagWIP("删除用例标题最前面的<br/> [WIP] 标记")

    UntagWIP --> Parallel
    LogicReview("由用例提交者请求研发或<br/> 负责该组件的 QA 同学 review<br/> 用例逻辑（request review）")
    EndlessReview("由 Endless reviewer<br/> review endless 用法")
    LarkNoti("由用例提交者在飞书上通知<br/> Endless reviewers（暂定）<br/>，该 case 已经可以合并")
    Parallel --> LogicReview --获得至少一个 approve--> LarkNoti
    Parallel --> EndlessReview --> LarkNoti
    LarkNoti --> Merge("Endless reviewers 执行 squash and merge，<br/> 整理该 pr 的提交历史，title 需要以 (testcase) 开头")
    Merge --> ende
```