软件测试(3)测试分类、原则

文章目录

  • 1 软件测试分类
    • 1.1 按开发阶段
      • 单元测试
      • 集成测试
      • 确认测试
      • 系统测试
      • 验收测试
    • 1.2 按测试技术
      • 黑盒测试
      • 白盒测试
      • 灰盒测试
    • 1.3 按代码运行
      • 静态测试
      • 动态测试
    • 1.4 按软件特性
      • 功能测试
      • 性能测试
      • 安全性测试
    • 1.5 其他测试类型
      • 回归测试
      • 冒烟测试
      • 随机测试
      • 猴子测试
  • 2 软件测试原则

1 软件测试分类

  • 按开发阶段: 单元测试、集成测试、系统测试、确认测试、验证测试
  • 按测试技术: 黑盒测试、白盒测试、灰盒测试
  • 按代码运行: 静态测试、动态测试
  • 按软件特性: 功能测试、性能测试、安全性测试
  • 其他测试类型: 回归测试、冒烟测试、随机测试、猴子测试
  • 按测试运行主体: 手工测试(功能测试)、自动化测试(利用工具软件,或者编写代码的方式,测试被测的软件系统)
单元测试 集成测试 系统测试 确认测试 验收测试
测试技术 黑盒、白盒 黑盒、白盒、灰盒 黑盒、白盒 黑盒、白盒 黑盒、白盒
代码运行 动态、静态 动态、静态 动态、静态 动态、静态 动态、静态
软件特性 功能、性能、安全 功能、性能、安全 功能、性能、安全 功能、性能、安全 功能、性能、安全
其他测试 回归测试 冒烟测试 随机测试、猴子测试

1.1 按开发阶段

单元测试

单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于检查每个程序模块单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各个模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

集成测试

集成测试也叫组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。它是一个持续不断的过程。

确认测试

确认测试也叫有效性测试,又称冒烟测试。是在模拟环境下,验证软件的所有功能和性能及其他特性是否与用户的预期要求一致。通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。一般不作为正式的测试环节。

系统测试

系统测试是在真实的系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连结,并且最终满足用户的所有需求。

  • 特性:
    全面的:系统所有功能的测试;模拟所有的软件用户的操作。
    全方位的:和硬件系统的联系;和系统软件的联系;和其它软件的关系。

验收测试

验收测试是软件产品检验的最后一个环节。一般是供求双方之间进行。按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。

  • 一般有三种验收测试的主体:
    α测试:软件的开发商自己进行的交付前的测试。
    β测试:软件的需求方。
    γ测试:第三方的软件测试(外包)。

1.2 按测试技术

黑盒测试

通过软件的外部表现来发现其缺陷和错误。黑盒测试法是把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理结果。黑盒测试是在程序界面处进行测试,它只是检查程序是否按照需求规格说明书的规定正常实现。

白盒测试

通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成是装在一个透明的盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。

灰盒测试

介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征型的现象、事件、标志来判断内部的运行状态。

1.3 按代码运行

静态测试

静态测试是指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误地过程。

  • 代码测试:主要测试代码是否符合相应的标准和规范
  • 界面测试:主要测试软件的实际界面与需求中的说明是否相符
  • 文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求

动态测试

动态测试是指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

所以我们判断一个测试属于动态测试还是静态测试唯一的标准就是看是否运行程序。

1.4 按软件特性

功能测试

是黑盒测试的一方面,它检查实际软件的功能是否符合用户需求

  • 逻辑功能测试
  • 界面测试
  • 易用性测试
  • 安装/卸载测试
  • 兼容性测试

性能测试

  • 功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常
    软件的性能包括很多方面,主要有 时间性能空间性能 两种

安全性测试

  • 验证安装在系统内的保护机制能否在实际应用中对系统 进行保护,使之不被菲菲入侵,不受各种因素的干扰。

1.5 其他测试类型

回归测试

是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例。

  • 目的:
    1)验证之前版本产生的所有缺陷已全部被修复。
    2)确认修复这些缺陷没有引发新的缺陷。

冒烟测试

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。也叫可测性测试。

随机测试

是指测试人员基于经验和直觉的测试,发现一些边缘性的错误。

猴子测试

把自己当成不懂产品的笨蛋或者小动物,随便乱点,没有任何的主观意识和想法参与进来,让一些意想不到的操作造成错误的结果。


2 软件测试原则

  • 所有测试的标准都是建立在用户需求之上。
  • 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。
  • 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
  • 软件项目一启动,软件测试也就是开始,而不是等程序开发完成,才开始测试。
  • 穷举测试是不可能的。
  • 第三方进行测试会更客观,更有效。
  • 软件测试计划是做好软件测试工作的前提。
  • 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
  • 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
  • 重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)。
  • 应当把“尽早和不断地测试”作为测试人员的座右铭。
  • 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
  • 测试应从“小规模”逐渐转到“大规模”。
  • 不可将测试用例置之度外,排除随意性。
  • 必须彻底检查每一个测试结果。
  • 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大关系。
  • 对测试错误结果一定要有一个确认的过程。

你可能感兴趣的:(软件测试笔记,软件测试)