测试报告包括:
0 测试对象
0.1 被测类来自Algorithm;
0.2 除去注释与空白,代码行应不低于100;
0.3 单个方法的圈复杂度应大于5;
1 分析:
1.1 识别两个及以上质量特性;
1.2 分解测试需求,使之具备可测试性,具有量化指标;
1.3 应根据需求划分测试对象的优先级;
2 设计:
2.1 依据优先级制定测试策略;
2.2 合理设定测试目标,如充分性准则(覆盖率指标);
2.3 采用两种以上测试技术设计测试用例,如分支覆盖、数据驱动、变异分析、基于属性测试、蜕变测试;
2.4 基于结构测试应绘制控制流图,分析判定节点、逻辑条件;
2.5 合理运用Mock对依赖组件进行解耦,隔离被测对象;
2.6 变异分析应说明变异算子选取的合理性,分析等价变异体,计算变异得分;
3 实施
3.1 根据测试对象搭建测试环境;
3.2 依据测试用例,使用现代测试工具编写测试脚本;
3.3 正确使用Mock框架,实现被测对象的隔离,如Java的Mockito、Spock等;
4 执行
4.1 执行测试;
4.2 收集测试数据;
5 评估与报告
5.1 达成测试目标;
5.2 测试评价应包括静态与动态两个维度;
5.3 测试报告应包括计划、设计、分析与评价;
5.4 测试计划应描述测试策略,包括测试环境、测试技术、测试数据、回归测试;
5.5 测试设计应给出蜕变关系、变异算子、属性的说明;
5.6 实现了对应质量特性的测试,给出量化评价结论,如功能性良好,性能效率中等,信息安全及格;
测试源代码
1 规范性,遵循3A规范,脚本执行无错误;
2 完整性,测试脚本、测试数据与用例设计应保持一致;
3 多样性,运用两种以上测试工具,如:JUnit、PIT、QuickCheck、Evosuite、Randoop;
4 创新性,如 覆盖率高,蜕变关系有效性高,变异得分高,自动化程度高等。