【Software Testing】软件测试的种类

Posted by 西维蜀黍 on 2018-02-23, Last Modified on 2021-10-17

Background

软件测试是一项验证并提高软件质量的行为。

软件测试可以被开发者(developer)或专业的测试人员进行。

以测试组件的粒度区分

单元测试(Unit Testing)

单元测试(Unit Testing)是指执行一个完整的类(class)、程序块(routine) 或者小规模的程序(small program),且这个执行过程会将测试单元从复杂的系统中隔离出来。

组件测试(Component Testing)

组件测试(Component Testing)是指执行一个类、包(package)或者小规模的程序。在软件系统中,组件较单元相比是一个更大的单元。

与单元测试相同,这个执行过程会将测试单元从复杂的系统中隔离出来。

集成测试(Integration Testing)

集成测试(Integration Testing)是指执行两个或两个以上的类、包、组件或子系统(subsystem)。

系统测试(System Testing)

系统测试(System Testing)是指执行整个系统,可包括软件和硬件系统。

其测试的目的可以是系统的可用性(usability)、需求实现的正确性(correctness)、安全性(security)、性能表现(peformance)、资源消耗(resource loss)或完成效率(timing problem)。

以测试进行时的阶段区分

回归测试(Regerssion Testing)

回归测试(Regerssion Testing)是指为了验证新增加或修改的代码未破坏原有系统的功能而进行的测试。

执行回归测试不需要编写新的测试代码,而是通过执行已有的测试代码进行。其测试粒度可以是单元、组件、子系统,具体可根据实际情况中,修改了的代码的体量决定。

可接受测试(Regerssion Testing)

可接受测试(Acceptance Testing)

  • 冒烟测试(Smoke and sanity Testing)
  • Alpha Testing
  • Beta Test

其他测试

  • 性能测试(Performance testing)
  • 配置测试(Configuration testing)
  • 兼容性测试(Compatibility testing)
  • 平台测试(Platform testing)
  • 压力测试(Stress testing)
  • 可用性测试(Usability testing)
  • 安全性测试(Security testing)
  • 端到端测试(end to end testing): 模拟真实的用户行为
  • UI层自动化测试

Reference