2014-08-29 166 views
0

我有一个求职面试,他们问我一个排序功能的测试场景。我应该为分类功能做些什么测试?

的问题是: 我们有3个数字,并且对其进行排序的功能。你会做什么测试这个功能?

我说

  • 检查零
  • 检查负数
  • 检查不止一次

他们说,这个问题的答案是确定的,但返回相同的号码,如果数字限制在1 - 1000之间,我应该做些什么额外的测试?

回答

0

你也可以做边界测试(非常小或非常大的值检查)。如果数字在1-1000范围内,您可以尝试使用小数字(1,2,4)和大数字(998,996,1000)。

0

我会写下面的测试。我假设函数带有一个数组,例如, [1,2,3]。

  • 测试该功能实际上排序无序输入:
    • 所有存在于输入的数字,并没有其他的,必须存在于输出。
    • 输出必须排序,即输出中的每个数字必须小于以下数字。 (您只需通过测试该排序例如,[2,1]给你断言这两个东西[1,2],但它们是不同的要求,应明确说明。)
  • 如果语言允许你可以用一个数组的不同类型的数组(例如整数和浮点数)来调用函数,测试排序[1.1,1]返回[1,1.1]。
  • 测试一下,给定[],函数返回[]。 (这是输入数组长度的边缘情况。)
  • 测试如果给定[1],函数返回[1]。 (这是输入数组长度的边缘情况。)
  • 测试在给定[1000]的情况下函数返回[1000]。 (这是一个边缘的情况下对输入元件的尺寸。)
  • 测试该功能会引发异常(或任何它应该做时,有一个错误),如果输入是[0](数量最多的是小于允许范围)。如果允许浮动,使用[0.9]。
  • 测试,如果输入是[1001]将抛出异常或任何(比所允许的范围更大的最小数量)。如果允许浮动,请使用[1000.1]。
  • 如果该函数被写入语言允许您调用该函数以

    • 空,
    • 一个非空值,它是不是一个数组,
    • [空]
    • 一个包含非空值的数组,它不是一个数字

    测试函数在这些情况下引发异常或其他情况。

如果性能测试是在范围,上测试

  • 随机排序的给定长度的输入(作为基线)的长度相同的
  • 输入排序的函数的时间性能以有趣的方式:

    • 已经至少排序,以最大
    • 所以在反向
    • 由相同数量的rted重复

    和你拿出从研究排序算法并检查执行其他潜在的病理情况下。

您甚至可能需要测试空间(内存使用情况)的性能。

相关问题