黑盒测试作业
本节作业共有两个题目,每个题目都会描述一个待测函数。对于每个待测函数,你应该对其的每个输入参数做如下分析:
- 用自然语言对其进行等价类划分,你需要给出其每个等价类的描述
- 在等价类划分的基础上对其进行边界值分析,你需要对每个边界值进行描述
- 给出最终的测试样例,对于多元输入的情况,你应该考虑哪些组合是无效的
题目I
函数的签名及描述如下:
/**
* @brief 第一题,简单的等价类划分和边界值分析。
* @details
* 此函数用于百分制分数到等级制分数的转换,具体来说:
* 1. [85, 100] => 返回A
* 2. [75, 85) => 返回B
* 3. [65, 75) => 返回C
* 4. [60, 65) => 返回D
* 5. [0, 60) => 返回F
* 6. 其他情况,返回E代表错误
* @param grade 百分制分数,可以有小数
* @return 对应的等级制分数
*/
char exercise_bb_1(double grade) { /* ... */ }
题目II
函数的签名及描述如下:
/**
* @brief 第二题,多元等价类划分和边界值分析。
* @details
* 此函数用于将传入的数据结构中的元素进行去重,然后进行排序。
* Container 需要是可写的顺序访问容器,元素类型需要是 Elem,
* Elem 需要支持小于比较以便在未指定比较函数时执行升序排序。
* @param container 传入的容器,要求可写
* @param cmp 传入的比较函数,作为排序的依据,缺省则默认从小到大排序
* @return 若去重和排序正常进行,返回true,否则返回false
*/
template <typename Container, typename Elem, typename Compare>
bool exercise_bb_2(Container &container, Compare cmp) { /* ... */ }