【160313 18:00】四则运算 2 的单元测试
此篇讲的是截止时间至 3 月 13 日 18:00 的四则运算 2 单元测试之小结,相应的题目,可以见王建民老师的博客:
http://www.cnblogs.com/wangjm1975/p/5266559.html
Right-BICEP 法则
这是一个有关「单元测试」的标准,其中 Right 指程序的正确性,BICEP 每个字母代指一个测试的方面。具体来说:
- Right: 传入程序单元期待的参数、数据,是否能够得到正确的结果。
- Boundary Conditions: 程序单元是否能够正确处理所有的边界条件。
- Inverse relationships: 反向测试。比如你写了一个求平方根的函数,那么它的反向就应该是求平方。因此,你需要验证 \(x = (\sqrt{x})^2\)。
- Cross-check: 交叉测试。比如你写了一个求平方根的函数,那么你可以用你的函数产生的结果与系统库里对应函数产生的结果做对比。它们应该得到相同的结果。
- Error-condition: 异常情况。你应该验证在发生异常情况时,你的程序能够正确处理。比如:硬盘满了、当前目录无写入权限、网络通讯中断了等等。
- Performance: 性能。你应该检查,在程序有大量输入的情况下,程序是否正常运作。
对于四则运算 2 的题目要求,至少需要测试:
- Right: 按照设计者意图输入参数时,程序能够正确输出结果。
- B: 在程序受到极端参数时,程序能够正确进行相应。比如用户将题目涉及的数字的上下限设置反了,下限比上限要高,怎么办?
- E: 有些同学将出题结果写入一个文件。那么,如果此时硬盘满了,文件写不进去了,怎么办?
- P: 出题速度应该足够快,100 个题目应该 1 秒中之内足够输出了。
上述四项内容,至少要测试其中三项,否则认为没有遵照 Right-BICEP 法则进行单元测试。
评分标准
本次作业满分 10 分,采取扣分制与体验分相结合的方式。具体来说:
- 每见到一处问题/缺陷,扣除该类问题/缺陷相应的分数;
- 与此同时,还会有 \(\pm 1\) 分的体验分浮动:博文结构清晰、排版整洁、代码清爽等情况酌情加分,反之扣分。
10 分
- 作业迟交超过 24 小时
- 未能完成任务。
2 分
- 作业迟交,但未超过 24 小时。
- 没有按照 Right-BICEP 要求设计单元测试用例
- 没有写明测试计划或没有写清测试结果
1 分
- 单元测试用例有明显问题
- 单元测试用例数量不足 6 个
- 单元能测试用例没有说明清楚设计原因
- 博文代码没有使用「代码模式」编辑
- 博文中,非代码内容使用了「代码模式」编辑