我一直在研究功能测试的定义,无法找到具体的解释,希望能提供一些额外的信息来帮助协调这一点。
我遇到的两个主要想法是:
- 功能测试作为一种测试类型,由以下测试级别组成:单元测试、集成测试、系统测试和验收测试。
- 功能测试作为与单元测试和集成测试(有时是系统测试的一个子集,其他时间在它之前)分开的级别,它使用黑盒方法对产品进行端到端测试。目的是验证定义的所有功能规范。
我一直在研究功能测试的定义,无法找到具体的解释,希望能提供一些额外的信息来帮助协调这一点。
我遇到的两个主要想法是:
它关于不同类型的测试分类。
在案例 1 中,我们将功能测试和非功能测试分开。
这种分类是关于测试什么样的案例:
- 在功能场景中,我们检查系统能够做什么以及它是否满足要求。例如:用户是否可以通过 facebook 进行授权。
- 在非功能性场景中,我们检查系统的运行情况:是否足够安全?是否清晰简单(用户体验、可用性等)?优化和性能怎么样?
在案例 2 中,我们根据隔离级别进行了分离。
这个分类是关于我们产品的哪一部分被测试:
我们是在测试单独的代码模块、两个服务的集成还是整个产品?
在这个分类中,功能测试是关于抽象级别的,当我们对单个业务场景(用户功能)进行测试时。
测试术语是垃圾。每个人都有自己的术语。因此,即使您确定其中一个定义,您也应该期望其他人可能不理解您。
就个人而言,我认为我们需要坚持该术语所暗示的词源。功能测试(对我来说)意味着它检查业务逻辑(功能)的事实。我们可以在任何级别上编写这些测试 - 单元、系统级别等。开发人员的工作是确定此类测试在哪里最有效。
但是再一次 - 当他们说“功能性”%时,你会听到人们提到 Selenium 测试)
另外,我不认为您的第一个定义意味着功能测试包含级别。我认为这意味着它可以在不同的层面上进行。这和我刚才写的差不多。
PS:验收测试也不是一个级别 - 这是您接受新代码的事实。与回归测试相反,它检查以前有效的方法是否继续有效。虽然还有一个用户验收测试 - 它指的是最终用户使用系统。