软件测试的分类

本文详细介绍了软件测试的多种分类,包括按开发阶段、实施组织、是否运行等角度划分。重点阐述了研发阶段的测试,如单元测试、集成测试、系统测试和验收测试,以及各阶段的目标、测试内容和方法。此外,还涵盖了静态测试、动态测试、黑盒测试、白盒测试等,并探讨了不同测试类型的优缺点。
摘要由CSDN通过智能技术生成

一、软件测试的分类

1、按开发阶段:单元测试、集成测试、系统测试、验收测试
2、按测试实施组织:α、β、第三方
3、按是否运行:静态测试、动态测试
4、按是否查看代码:黑盒测试、白盒测试、灰盒测试
5、按是否手工执行划分:手工测试、自动化测试
6、按测试对象划分:功能测试、性能测试、安全测试、兼容性测试、稳定性测试、文档测试、易用性测试(用户体验测试)、业务测试、界面测试、安装测试
7、按测试地域划分:本地化测试、国际化测试
二、按研发阶段划分:(重要!!)

1、UI界面层(用户界面测试):功能性验证测试、兼容性与用户测试
2、业务逻辑层(API层面):客户端模拟测试、内外接口测试、SDK接口测试(Software Development Kit一般指的是软件工程师特定的软件包建立的开发工具的集合)
3、数据处理层:单元测试
1)单元测试
单元测试:是对软件组成单元进行的测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称为模块测试。

  • 测试阶段:编码后或者编码前(TDD)
    注释:TDD是测试驱动开发,指研发人员拿着测试人员测试用例去编写代码

  • 测试对象:最小模块 (核心测试:单模块接口、代码)

  • 测试人员:白盒测试工程师或开发人员

  • 测试依据:代码和注释+详细设计文档 (单元测试对应的是V模型中的详细设计阶段)

  • 测试方法:白盒测试

  • 测试内容:模块接口测试、业务逻辑、局部数据结构测试、路径覆盖测试、错误处理测试、边界处理测试
    单元测试是白盒测试,但白盒测试不是单元测试
    2)集成测试
    集成测试:也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作;
    集成主要目的:是检查软件单位之间的接口是否正确。
    测试阶段:一般的单元测试之后进行
    测试对象:多模块间的接口 、集成后的功能
    测试人员:白盒测试工程师或开发工程师
    测试依据:单元测试模块+概要设计文档
    测试方法:黑盒测试和白盒测试相互结合 (白+黑=灰)
    测试内容:模块之间的接口、模块之间的功能、集成后的功能、强调全局数据结构、一个模块出问题对其他模块的影响(模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响。)
    为什么集成测试既涉及到了黑盒测试又涉及到白盒测试:因为测试对象是多模块接口(代码)、集成后的功能(功能测试),即涉及到了代码和功能测试
    3)系统测试(是测试人员花费时间最长的阶段)
    将软件系统看成一个系统测试。包括对功能、性能以及软件所运行的硬软件环境进行测试。时间大部分在系统测试执行阶段,包括了回归测试和冒烟测试
    测试阶段:集成测试之后
    测试对象:整个系统(软+硬件)
    测试人员:黑盒测试工程师
    测试依据:需求规格说明文档
    测试方法:黑盒测试
    测试内容:功能、界面、业务、安装、可靠性、易用性、性能、兼容性、安全等
    回归测试(Regression Tesing)
    回归测试指的就是你修改了旧的代码之后。重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
    在整个软件的过程中占有很大的工作量比重,软件开发的各个阶段都会运行多次回归测试。
    冒烟测试(Regression Tesing)
    对一个硬件或硬件组件进行更改或修复后,直接给设备加电,如果没有冒烟就认为该组件通过了测试,
    冒烟测试的对象都是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的测试工作,冒烟测试的执行者是版本编译人员。
    冒烟测试一般是开发人员开发完毕之后送给测试人员进行测试时,测试人员要先进行冒烟,用以保证基本功能是正确的,不会阻碍后续的测试。
    4)验收测试
    验收测试是部署软件之前的最后一个测试操作,它是技术测试室的最后一个阶段,也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。
    测试阶段:系统测试之后
    测试对象:整个的系统(包括软硬件)
    测试人员:最终的用户或者需求方
    测试依据:用户需求和验收标准(验收文档+合同)
    测试方法:黑盒测试
    测试内容:同系统测试一样(功能。。。。文档等)
    验收测试与系统测试只有在测试人员和测试依据上不一样:验收测试的测试人员(用户)测试依据(验收文档+合同);系统测试的测试人员(黑盒测试工程师)测试依据(需求规格说明书)
    三、按测试实施组织(重要了解)
    1)α测试
    主要是由一个用户在开发环境进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
    主要的目的是:评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持);
    测试人员:公司内部(除本项目的研发人员和测试)
    测试环境:研发环境或预发布环境
    先后顺序:先α测试
    测试周期:α测试时间短
    预发布环:和生产环境是一样的,由本项目以外的研发和测试人员进行的测试、公司内部的客户不参与,项目以外的人员都可以进行与
    2)β测试(验收测试)
    β测试:由软件的最终的用户们在一个或者多个客户场所进行的测试。
    测试人员:用户
    测试环境:用户环境
    先后顺序:后β测试
    测试周期:β测试时间长
    α测试和β测试的区别:
    测试的场所是不同的:α测试是把用户请到开发方的场所进行的测试,β测试值的是就是在一个用户或者多个用户场所所进行的测试。
    α测试的测试环境是由开发方进行控制的,用户的数量是相对比较少的,时间也是相对比较集中的。β测试的测试场所也不是由开发方进行控制的,相对来说用户的数量是相对比较多的,但是时间也不是很集中的。
    α测试是先与β测试的,通用的软件产品时需要大规模的β测试,猜测是的周期是相对是比较长的。
    3)第三方测试
    介于开发方和用户之间的组织测试
    软件评测试机构、外包(只外包测试阶段)
    四、按是否运行进行划分(重要了解)
    1)静态测试:
    静态测试值指的是不运行程序本身,仅通过分析和检查源程序的语法、结构、过程、接口来检查程序的正确性。对需求规格说明书、软件设计说明书、流程图分析、符号执行来进行找错。

  •     不运行程序
    
  •     测试内容:
    
  1. 代码(语法、业务逻辑、词义、结构)
    测试代码用到的一些方法:代码走查、代码审查、coderiviwer
    2. 文档
    验证文档:一致性、完整性、可读性
  • 检查项:代码的风格和规则审核;程序设计和结构审核;业务逻辑的审核、走查、审查与技术复审手册
  • 静态质量:软件的质量主要有以下六个方面来衡量:功能性、可靠性、可移植性、可用性、有效性、可维护性。
  • 代码静态分析和文档测试都是属于静态测试
    2)动态测试
    动态测试指的就是运行被测的程序。检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性的等性能,这种方法主要是由三部分进行组成的:测试用例、执行程序、分析程序运行输出的结果。
    大多数的软件测试就是属于动态测试的。
  • 运行程序
  • 通常执行的测试(功能测试)

五、按是否进行手工
1)手工测试:
是由人一个一个的输入测试用例,然后观察结果、和机器测试相对应,属于比较原始,大事需要一个一个步骤进行测试。
优点:自由测试、探索性测试
缺点:效率低,容易出错
手工测试和自动化测试互相存在(不存在手工测试被自动化测试代替的这种说法)
2)自动化测试
在预设条件下运行系统或应用程序,评估运行结果、预先条件应该包括正常的条件和异常条件。简单的说自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。
优点:效率高,不容易出错
缺点:死的,按代码测试执行
自动化测试有:功能测试自动化、性能测试自动化、安全测试自动化
通常我们所说的自动化测试就是指的是功能自动化测试
自动化测试按照测试的对象来分:分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。
自动化实施的步骤
1、完成功能测试,版本基本稳定
2、根据项目特性、选择合适的项目自动化工具,并搭建环境
3、提取手工测试的测试用例转化为自动化测试的用例
4、通过工具,代码实现自动化的构造输入,自动检测输出结果是否符合预期
5、生成自动化的构造输入,自动的检测世界古是否符合预期
6、生成自动测试报告
7、持续改进、脚本优化
六、按是否查看代码(重要!)
1)黑盒测试(Black-box-Testing)
黑盒测试也称为功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。

  • 功能测试 ,不看代码
  • 什么是黑盒测试:黑盒测试就是功能测试,就是通常我们在电脑上对软件进行一系列的操作。操作完之后,看结果是否是我们想要的结果。
    2)白盒测试(White-box-Testing)
    白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒值的是打开的盒子,去研究里面的源代码和程序结果。
    接口测试也是一种白盒测试。
  • 看代码,对代码进行测试
  • 什么是白盒测试:对代码进行测试,测试代码的业务逻辑、数据结构、错误处理、边界值的处理、路径覆盖的处理等等
    3)灰盒测试(White-box-Testing)
    灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,主要用于集成测试阶段。不仅关注输入输出的正确性。同时也关注程序内部的情况。
  • 白+黑
    七、按照地域进行划分
    1)国际化测试(White-box-Testing)
    软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是这类软件产品进行测试。由于软件的全球普及。还有软外包行业的兴起,软件的本地化和软件的国际化俨然称为了一种软件测试的专门领域。
    本地化和国际化的软件测试的一些测试要点。
    1、本地化后的软件在外观上与原来版本存在着一些差异,外观是否整齐、不定样。
    2、是否对界面元素进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示、日志等)。
    3、在不同分辨率界面下是否显示的是正常的。
    4、是否存在不同的字体的大小,字体设置的是否恰当。
    5、日期、数字格式、货币等是否能够适应不同的国家的文化习俗。例如年、月、日,而英文是月日年。
    6、排序的方式是否考虑到了不同语言的特点。
    7、在不同个的国家采用的是不同的度量单位,软件是否能够自适应和转换。
    8、软件是否能够在不同类型的硬件上正常运行。正文翻译是否正确,恰当是否有语法的错误。
    9、软件是否能够适应不同的操作系统的平台。
    10、联机帮助和文档是否已经进行翻译,翻译后链接是否正常。正文翻译是否正确,恰当是否有语法的错误。
    本地化测试
    之前所有我们将的都是基于本地化进行测试的。
    2)本地化测试
    八、按测试对象划分(重要!!)
    可划分为业务、功能、性能、安全、界面、易用、移植、可靠性、稳定性、(是系统测试和验收测试的测试内容;也是编写测试用例的方法里边分类)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值