黑盒测试作业

本节作业共有两个题目,每个题目都会描述一个待测函数。对于每个待测函数,你应该对其的每个输入参数做如下分析:

  • 用自然语言对其进行等价类划分,你需要给出其每个等价类的描述
  • 在等价类划分的基础上对其进行边界值分析,你需要对每个边界值进行描述
  • 给出最终的测试样例,对于多元输入的情况,你应该考虑哪些组合是无效的

题目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) { /* ... */ } 
Last Updated:
Contributors: Lychnis