sorting - 我应该对排序功能进行哪些测试?

标签 sorting testing qa

我有一个工作面试,他们要求我提供一个排序功能的测试场景。

问题是:
我们有 3 个数字和一个对它们进行排序的函数。你会对这个功能做哪些测试?

我说

  • 检查零
  • 检查负数
  • 检查是否多次返回相同的数字

  • 他们说这个答案是可以的,但是如果数字限制在 1 - 1000 之间,我应该做哪些额外的测试?

    最佳答案

    我会写以下测试。我假设该函数需要一个数组,例如写成[1、2、3]。

  • 测试该函数是否实际对未排序的输入进行排序:
  • 输入中出现的所有数字,而不是其他数字,必须出现在输出中。
  • 输出必须排序,即输出中的每个数字必须小于以下数字。
    (你可以通过测试排序来断言这两个东西,例如 [2, 1] 给你 [1, 2],但它们是不同的要求,应该明确说明。)
  • 如果语言允许您使用不同类型的数字数组(例如整数和浮点数)调用函数,请测试排序 [1.1, 1] 返回 [1, 1.1]。
  • 测试,给定 [],函数返回 []。 (这是输入数组长度的边缘情况。)
  • 测试给定 [1],函数返回 [1]。 (这是输入数组长度的边缘情况。)
  • 测试给定 [1000],函数返回 [1000]。 (这是输入元素大小的边缘情况。)
  • 如果输入为 [0](小于允许范围的最大数字),则测试该函数是否引发异常(或出现错误时应该执行的任何操作)。如果允许 float ,请使用 [0.9]。
  • 如果输入为 [1001](大于允许范围的最小数字),则测试该函数是否引发异常。如果允许 float ,请使用 [1000.1]。
  • 如果编写函数的语言允许您使用
  • 空,
  • 一个非空值,它不是一个数组,
  • [空]
  • 一个包含非空值的数组,该值不是数字

  • 测试该函数在这些情况下是否引发异常或其他任何情况。
    如果性能测试在范围内,请测试功能的时间性能
  • 给定长度的随机排序输入(作为基线)
  • 相同长度的输入以有趣的方式排序:
  • 已经从小到大排序
  • 反向排序
  • 由重复的相同数字组成

  • 以及您在研究排序算法和检查实现时提出的其他潜在病态案例。
    您甚至可能需要测试空间(内存使用)性能。

    关于sorting - 我应该对排序功能进行哪些测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571301/

    相关文章:

    c++ - 快速排序和合并排序错误的内存分配(不对超过 32k 的元素进行排序)

    php - 按列名排序在列表页面上的纯 PHP 中不起作用

    java - 按姓氏和顺序对行进行排序

    objective-c - NSDictionary 键按数值排序

    sql - Laravel 查询生成器输出测试

    android - 为 QA 工作备份 Android 模拟器

    android - 质量检查系统词库

    spring-boot - junit 测试中的自定义属性,例如 application.setDefaultProperties

    c++ - 读/写锁

    testing - 如何获得JDK开发人员在JDK类上执行的单元测试用例?