【软件测试】5_测试理论 _软件测试分类(重点)

文章目录

  • 一、按测试阶段划分
    • [1.1 单元测试[ UT unit test ]](#1.1 单元测试[ UT unit test ])
    • [1.2 集成测试[ IT integration test ]](#1.2 集成测试[ IT integration test ])
    • [1.3 系统测试[ST system test ]](#1.3 系统测试[ST system test ])
  • 二、按是否查看源代码划分
    • [2.1 白盒测试(white-box testing)](#2.1 白盒测试(white-box testing))
    • [2.2 灰盒测试](#2.2 灰盒测试)
    • [2.3 黑盒测试(black-box testing)](#2.3 黑盒测试(black-box testing))
      • [2.3.1 黑盒测试能发现以下几类错误](#2.3.1 黑盒测试能发现以下几类错误)
      • [2.3.2 黑盒测试的优缺点](#2.3.2 黑盒测试的优缺点)
      • [2.3.3 黑盒测试的分类](#2.3.3 黑盒测试的分类)
        • [2.3.3.1 功能测试](#2.3.3.1 功能测试)
        • [2.3.3.2 性能测试](#2.3.3.2 性能测试)
  • 三、按是否运行分类
    • [3.1 静态测试](#3.1 静态测试)
    • [3.2 动态测试](#3.2 动态测试)
  • 四、按其它分类
    • [4.1 回归测试](#4.1 回归测试)
    • [4.2 冒烟测试](#4.2 冒烟测试)
    • [4.3 随机测试(探索测试)](#4.3 随机测试(探索测试))
    • [4.4 验收测试](#4.4 验收测试)
      • [4.4.1 α测试-内测](#4.4.1 α测试-内测)
      • [4.4.2 β测试-公测](#4.4.2 β测试-公测)
      • [4.4.3 γ测试](#4.4.3 γ测试)
      • [4.4.4 UAT测试](#4.4.4 UAT测试)
  • 五、是否自动化分类
    • [5.1 人工测试](#5.1 人工测试)
    • [5.2 自动化测试](#5.2 自动化测试)
  • 六、小结
    • [6.1 测试主流技能](#6.1 测试主流技能)
    • [6.2 测试分类](#6.2 测试分类)
    • [6.3 总结](#6.3 总结)

一、按测试阶段划分

1.1 单元测试[ UT unit test ]

  • 又称模块测试,针对软件设计中的最小单位------程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
  • 单元定义:C中指一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。

1.2 集成测试[ IT integration test ]

又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。(接口测试)

1.3 系统测试[ST system test ]

  • 指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
  • 系统测试在系统集成完毕后进行测试,前期主要测试系统的功能 是否满足需求,后期主要测试系统运行的性能 是否满足需求,以及系统在不同的软硬件环境中的兼容性等。

1、功能测试:验证当前的软件主体功能是否可用。

2、兼容性测试:验证当前软件在不同的环境下是否还可以使用。

3、安全测试:验证软件是否只是对授权用户提供功能使用。

4、性能测试:相对于当前软件消耗的资源 它的产出能力。

二、按是否查看源代码划分

在软件公司,往往采用黑盒测试&白盒测试相结合的方式。

  • 软件的整体功能和性能进行黑盒测试
  • 软件的源代码采用白盒测试
  • 下述三种方法当中的 "盒" 指的就是被测对象。

2.1 白盒测试(white-box testing)

指的是把盒子打开,去研究里面的源代码和程序结构。

2.2 灰盒测试

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构,但不会去对内部程序功能和运作做详细了解,灰盒测试结合了白盒测试和黑盒测试的要素。

2.3 黑盒测试(black-box testing)

又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和输出数据。

2.3.1 黑盒测试能发现以下几类错误

  • 功能不对或功能遗漏。
  • 界面错误。
  • 数据库访问或者处理错误。
  • 性能问题。

2.3.2 黑盒测试的优缺点

1、优点

  • 测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例);
  • 测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关);
  • 从用户的角度进行测试,很容易被接受和理解;
  • 有助于暴露任何与规格不一致或者歧异的地方;

2、缺点

  • 不能测试程序内部特定部位;
  • 如果程序未执行的代码无法发现;
  • 不可能做到穷举测试

2.3.3 黑盒测试的分类

2.3.3.1 功能测试

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

​ 1、逻辑功能测试 (functiontesting)

​ 2、界面测试 (UItesting)

​ 3、易用性测试 (usability testing)

​ 4、安装测试 (installationtesting)

​ 5、兼容性测试 (compatibilitytesting)

2.3.3.2 性能测试

性能测试(performance testing)峰值:是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。

​ 1、时间性能(事务响应时间等)

​ 2、空间性能 (系统资源消耗)

​ 3、一般性能测试:软件正常使用,正常走通的测试。

​ 4、稳定性测试

​ 5、负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。

​ 6、压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。

三、按是否运行分类

3.1 静态测试

静态测试(static testing):指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。(测文档,看网页)

互审(不正式)------走读------审查(正式)

3.2 动态测试

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

四、按其它分类

4.1 回归测试

回归测试:当我们将某个缺陷提交给开发之后,由它们进行修复,修复完成之后需要测试人员再次对其进行测试【回归测试】

4.2 冒烟测试

  • ① 一般在执行用例之前我们会做一个冒烟测试。这种测试的核心就是快速的对当前软件的核心功能或者主体执行流程进行验证。如果冒烟测试阶段有问题,则可以将此版本回退给开发。
  • ② 如果冒烟测试通过,那么才会开展全面的测试。

4.3 随机测试(探索测试)

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。

总结:针对重要功能、新增加的功能、特殊情况、以前发现过重大bug的模块进行二次测试;也叫探索测试,它可以结合回归测试来使用;

4.4 验收测试

  • 软件正式版本推出之前的几个版本, 需要有人测试一下, 看看是不是有问题。在开发该软件的公司内部的由该公司内部人员测试的称为: Alpha 测试, Alpha 测试主要看有没有功能缺失或系统错误, Alpha 测试完后一般不会有大问题了。然后把软件拿给用户测试,称为: beta 测试, 主要是看用户对软件外观、使用方便等的反应。这么多的测试版一方面为了最终产品尽可能地满足用户的需要, 另一方面也尽量减少了软件中的bug。然后做过一些修改, 成为正式发布的候选版本时, 叫做gamma( 现在叫做RC - Release Candidate) 。
  • 简单来说,阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。
  • 验收测试的核心就是让用户为当前软件 "买单"

4.4.1 α测试-内测

Alpha 是内测版本,即现在所说的CB,此版本表示该软件仅仅是一个初步完成品, 通常只在软件开发者内部交流, 也有很少一部分发布给专业测试人员。一般而言, 该版本软件的bug 较多, 普通用户最好不要安装。

4.4.2 β测试-公测

Beta是公测版本,是对所有用户开放的测试版本。该版本相对于α 版已有了很大的改进,消除了严重的错误, 但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改。该版本也不适合一般用户安装。

4.4.3 γ测试

Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本。

4.4.4 UAT测试

UAT( user acceptance test )测试---- 由客户派出对于业务非常精通的人员来使用该软件,从而对功能进行测试。

五、是否自动化分类

5.1 人工测试

人工测试:由测试人员手动的对被测对象进行验证,优点就是可以灵活的改变测试操作及环境。

5.2 自动化测试

  • 自动化测试:所谓自动化主要有二种形,一种是自己写测试脚本,另外一种就是通过第三方的工具对被测对象进行测试。优点就是可以高效率的去执行一些人工无法实现的操作。
  • 自动化测试归属功能测试

六、小结

6.1 测试主流技能

yacas 复制代码
一、测试主流技能
1、功能测试:测试主要验证程序的功能是否满足需求(主要是有测试思维,是测试基本功)
2、自动化测试:使用代码或工具代替手工,对项目进行测试--属于功能测试
3、接口测试:使用代码或工具验证程序中的接口是否访问正常
4、性能测试:模拟多人使用软件,查找服务器缺陷

主流⽅向建议:
	1、功能测试+接⼝测试
	2、功能测试+性能测试
	3、功能测试+web自动化

6.2 测试分类

yacas 复制代码
一、按测试阶段划分
1、单元测试:针对程序源代码进行测试。(单元:最⼩独⽴功能代码段)
提示:
-国内单元测试⼀般开发自测
-单元测试可以解决-快速定位缺陷
-使⽤技术⼿段验证软件是否满⾜需求
2、集成测试:又称接口测试,针对模块之间访问地址进行测试。
3、系统测试:对整个系统进行测试包括功能、兼容、文档等测试。(针对程序功能、非功能进行测试)
4、验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷。

二、按代码可见度划分
⽩盒测试:针对程序源代码进⾏测试(测试阶段划分->单元测试)
灰盒测试:针对接⼝测试(测试阶段划分->集成测试)
⿊盒测试:主要针对功能(测试阶段划分->系统测试)

6.3 总结

yacas 复制代码
单元测试和白盒测试是对代码进行测试
集成测试和灰盒测试⼜称接⼝测试
系统测试和黑盒测试重点核⼼是功能测试

自动化测试归属功能测试
性能测试、安全测试归属专项测试
相关推荐
程序员三藏5 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
程序员小远1 天前
如何搭建Appium环境?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
秃了也弱了。1 天前
testng:Java界功能强大的单元测试框架
java·单元测试·log4j
川石课堂软件测试1 天前
自动化过程中验证码的解决思路
数据库·python·功能测试·测试工具·单元测试·tomcat·自动化
十二测试录1 天前
测试用例,常见的一些问题
功能测试·单元测试·测试用例·压力测试·可用性测试
x***J3481 天前
测试驱动开发:从单元测试到集成测试
驱动开发·单元测试·集成测试
测试老哥1 天前
软件测试:测试用例的设计
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
程序员杰哥2 天前
Python自动化测试之线上流量回放:录制、打标、压测与平台选择
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
测试者家园2 天前
从“找 bug”到“降风险”:测试思维模式的底层迁移
软件测试·bug·风险管理·持续测试·测试基础·智能化测试·测试思维模式