| 这个作业属于哪个课程 | 2023软工W班 |
|---|
| 这个作业要求在哪里 | 作业要求 |
| 团队名称 | Machine Guard |
| 这个作业的目标 | Alpha冲刺阶段测试随笔 |
| 其他参考文献 | 无 |
目录
- 1 测试工作安排
- 1.1 测试人员
- 1.2 测试内容
- 1.3 测试方法
- 1.4 测试时间
- 1.5 测试流程与跟踪
- 2 测试工具选择和运用
- 2.1 接口测试
- 2.2 单元测试
- 2.3 性能测试
- 2.4 E2E测试
- 3 测试用例文档
- 3.1 完整测试用例文档
- 3.2 部分接口测试样例和预期
- 3.3 部分单元测试断言和结果
- 3.4 性能测试结果
- 4 测试体会
- 5 项目测试评述
1 测试工作安排
1.1 测试人员
| 工作内容 | 测试人员 |
|---|
| 接口测试 | 222000318、222000317、222000320、222000322 |
| 单元测试 | 222000318、222000322 |
| 性能测试 | 222000318 |
| 端到端测试 | 222000321 |
1.2 测试内容
测试针对与MachineGuard的各方面进行单元测试和集成测试,测试包含下面的部分。
- 接口测试:可以认为是针对后端的黑盒测试,也可以认为是针对系统的白盒测试。对于接口文档的若干的接口,根据文档上提供的接口的访问规则以及请求体格式,针对性地设计若干的测试样例和预期结果,然后输入自动化测试工具来检查是否符合接口返回的预期。
- 单元测试:是针对后端的内部某个模块进行的测试,使用自动化测试工具判定后端某个模块的若干个方法是否符合返回值的预期。
- 性能测试:在接口测试的基础上,使用压力测试的方法,连续请求接口,测算接口的可用性以及性能指标。
- 端到端测试:在前端的部署环境,仿真实现用户请求若干页面,以及对页面的元素进行操作,检查请求的页面和操作的结果是否符合预期。由于是alpha阶段,不是正式的部署环境,本类测试将被弱化,仅在少部分部署无关的页面使用,不再单独列出。
1.3 测试方法
全面使用自动化测试方法,先设计测试样例或者断言代码,然后运行自动化测试软件来生成测试结果和报告。
使用交叉测试。一般不由开发人员来完成自己开发部分的测试工作,而是由别的人员完成。
1.4 测试时间
| 工作内容 | 测试人员 |
|---|
| 接口测试 | Day3-Day8接口开发期 |
| 单元测试 | Day3-Day7后端业务逻辑开发期 |
| 性能测试 | Day8接口测试结束时 |
| 端到端测试 | Day10冲刺结束前 |
1.5 测试流程与跟踪
- 开发人员完成某个接口或模块的开发,在接口文档中注明该接口或模块的开发状态为待测试(而不是待开发)
- 测试人员对该接口进行测试,产生测试结果保存。如果测试成功,状态将自动改为已完成。如果测试失败,状态将自动改为待修复。
- 如果待修复的接口被修复,开发人员将接口再次修改为待测试,循环这个过程直到修复。
- 在最后,对于所有的接口,生成测试文档。如果某些接口未能修复,将注明测试不符合预期。
2 测试工具选择和运用
2.1 接口测试
- 使用Apifox进行接口测试
- 样例测试编写:
- 后端已经对Controller添加了swagger注解,并生成了接口文档,使用导入功能直接导入

- 将接口与测试样例绑定,在每个测试样例的接口请求体部分,书写请求体


2.2 单元测试
- 使用junit进行单元测试
- 在Juit5的基础上,使用IJ IDEA进行可视化单元测试,同时进行覆盖率检查。
2.3 性能测试

2.4 E2E测试
3 测试用例文档
3.1 完整测试用例文档
测试用例文档
链接给出了完整的测试用例文档,其中涵盖了:
- 接口测试的测试样例
- 单元测试的断言
- 性能测试参数和结果
3.2 部分接口测试样例和预期
- 通过sensorId调用ha接口获取对应感应器信息

- 根据deviceId(可选)和time(可选)获取统计信息


3.3 部分单元测试断言和结果






3.4 性能测试结果

4 测试体会
- 需要测试的接口比较多,在测试的过程中,时常需要与后端队员讨论,如参数形式,返回结果形式。
- 测试的过程中,需要处理的异常情况比较多,每当出现了新的异常情况,就需要及调整接口
- 在前端与后端接口功能对接时,需要根据前端队员的要求来更新接口,与此同时,也需要设计新的测试用例
- 需要重视对接口的测试,在设计测试用例时,一定要选择适当而充分的测试用例
5 项目测试评述
全程大约用了18个小时的时间来完成测试,其中最主要的测试是对于后端接口的接口测试,在设计测试用例时,需要考虑多种异常情况,如参数缺失,参数错误,记录表中数据不存在,用户操作权限不足等等,在测试过程中,既有后端队友设计接口考虑不充分而出现的异常情况,也有我们测试人员理解不到位而造成的乌龙。除此之外,在后端接口与前端对接时,总有因为需求变化而导致需要添加接口或着改变接口返回参数的情况,这也在一定程度上拖慢了测试的进度。最后值得提出的是,对接口进行的单元测试,应该在接口完成时就应该尽可能的补充上去,而不是留到项目后期,才统一补上单元测试代码。