如何测试排名系统?

时间:2018-12-26 12:29:35

标签: validation testing dataset automated-tests functional-testing

让我们假设我们一班有3个学生,并获得以下分数

===============================================
|      | Maths  | English  | Science  | Rank  |
|----------------------------------------------
|Mark  |   60   |    40    |    80    |   2   |
|----------------------------------------------
|John  |   40   |    30    |    50    |   3   |
|----------------------------------------------
|Alice |   60   |    60    |    70    |   1   |
===============================================

通常,排名是通过添加所有三个标记来确定的。 查看上表,排名顺序为爱丽丝,马克,约翰。

如果存在一个以学生成绩作为输入并根据学生排名给出学生姓名列表的系统,那么我如何证明该系统针对所有可能的数据集返回正确的学生列表?

测试这种系统应该采用什么方法?当学生和学科的数量增加时,生成所有可能的数据组合将是详尽无遗的。

2 个答案:

答案 0 :(得分:1)

鉴于这是黑盒测试,我将按照以下方式进行测试任务:

  • 验证排名实际上适用于简单的数据集(烟雾测试)
  • 两个或两个以上的学生得分相同时,验证排名是否有效
  • 验证当数据集包含学生缺少分数,负分数(如果可能!?)或分数大于允许的分数时,排名计算是否有效
  • 鉴于上下文(学生和科目),我认为可以创建一个现实的数据集。验证是否已正确处理。
  • 创建第二个数据集,其中学生和学科的数量不切实际(例如,比您的实际数据集大100%)-尝试扔给它:)
  • 缺少学生姓名的数据集,但该行存在主题标记
  • 与上述相同,但缺少主题,但所有行均带有该主题的标记
  • 没有分数但有学生和科目的数据集

基于我上面建议的测试,我不会担心所有可能的数据组合。不过,如果您具有代码访问权限,则xUnit之类的单元测试工具可以帮助您测试所有可能的组合(如果您定义了参数)

希望这会有所帮助:)

答案 1 :(得分:0)

除了以上答案:

  • 边界条件-标记在边界上时-0,100
  • 边界情况-分数不同,但等级相同-对于第一名,最后一名,中学生
  • 边界案例-名称或主题重复(例如,一个有2个Johns的班级)
  • 错误情况-名称或主题存在但无效(数字,空字符串,null等)