- 博客主页:Duck Bro 博客主页
- 系列专栏:软件测试专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
测试分类篇
关键词:测试方法的概念、测试类型、先后顺序
目录
一、为什么需要分类?
软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度
加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试工作进行更好的执行和管理测试
的分类方法
各分类如下:测试目标分类、执行方式分类、测试方法分类、测试阶段分类、手工测试&自动化测试、实施组织划分、测试地域划分
二、测试目标分类
1. 界面测试
界面测试(简称UI测试)是对软件或应用程序的界面进行测试的过程。这种测试确保用户界面的设计(⼀般是UI设计稿)和布局符合预期,功能按钮和菜单项的位置和功能正确,以及界面元素的交互和响应正常。
2. 功能测试
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
功能测试是一种软件测试方法,旨在验证软件的各个功能是否按照设计要求正常工作。 根据产品特性、操作描述和用户方案,测试⼀个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对⽬标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证⽬标用户的体验将足够好,就像应用程序是专⻔为该市场开发的⼀样。
功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对⼀个系统的所有的特性和功能都进行测试确保符合需求和规范
3. 性能测试
性能测试是一种测试应用程序、系统或网络的性能和稳定性的过程。它通常用来评估系统在不同负载条件下的响应时间、吞吐量、资源利用率和容量。
性能测试可以帮助发现系统中的瓶颈和性能问题,并为系统的优化提供数据和指导。常见的性能测试方法包括负载测试、压力测试、容量测试和稳定性测试。
4. 可靠性测试
可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,⼀般用正常向用户提供软件服务 的时间占总时间的百分比表示。
系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因
素 能让系统停⽌工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务
等。
如果可用性达到99.99%,对于⼀个全年不间断(7*24的方式)运行的系统,意味着全(252600min),不能正常工作的时间只有52min,不到⼀个小时。如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min。
5. 安全性测试
安全性是指信息安全,是指计算机系统或网络保护用户数据隐私,完整,保护数据正常传输和抵御黑客,病毒攻击的能力。
6. 易用性测试
易用性测试是一种评估软件、网站或其他技术产品的用户友好性和易用性的方法。它旨在确定用户在使用产品时是否能轻松地完成任务,以及他们对产品界面和功能的满意程度。
标准性和规范性
对于现有的软件运行平台,通常其UI标准已经不知不觉地被确立了,成为⼤家的共识。多数用户已经习 惯并且接受了这些标准和规范,或者说已经认同了这些信息所代表的的含义。比如安装软件的界面的外观,
直观性
用户界面的直观性,要求软件功能特性易懂,清晰。用户界面布局合理,对操作的响应在用户的预期之中。
灵活性
软件可以有不同的选项以满足不同使用习惯的用户来完成相同的功能。但是灵活性的设计要把握好
度,不然可能由于太多的用户状态和方式的选择,增加了软件设计的复杂性,和程序实现的难度。 例如手机键盘有九宫格和全键盘,还⽀持手写,满足了不同用户的需求
舒适性
舒适性主要强调界面友好,美观,操作过程顺畅,⾊彩用运恰当,按钮的立体感等
三、执行方式分类
1. 静态测试
静态测试(static testing)是一种软件测试技术,通过对软件源代码、设计文档和其他可视化模型进行分析和检查,以发现潜在的问题和错误。
静态测试不涉及运行软件或执行测试用例,而是依赖于人工检查和工具支持来评估软件的质量和可靠性。
2. 动态测试
动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结
果和预期结果是否相符的过程,所以判断⼀个测试属于动态测试还是静态的,唯⼀的标准就是看是否运行程序。
四、测试方法分类
1. 白盒测试
白盒测试是一种软件测试方法,也被称为结构测试或透明测试。它的目的是检查和评估软件内部的结构、逻辑和代码,以揭示可能存在的错误和缺陷。
白盒测试通常由开发人员或测试团队执行,他们熟悉软件的内部工作原理和代码实现。这种测试方法通过检查程序的源代码、设计文档和程序执行路径,来验证软件是否按照设计规范和预期工作。
在白盒测试中,测试人员通常使用一系列的测试用例来覆盖软件的不同代码路径和逻辑分支。这些测试用例可涵盖语句覆盖、分支覆盖、路径覆盖等不同的覆盖准则。
白盒测试主要分为静态测试和动态测试两种。
静态测试常见于桌面检查、代码审查、代码走查、代码扫描工具
动态测试方法主要包含:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
(这里不过多介绍,后面专门写一篇博客进行白盒测试介绍)
2. 黑盒测试
黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果,满足规范需求。
优缺点
3. 灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的⼀种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
但是,灰盒测试没有白盒测试详细和完整,黑盒测试是覆盖产品范围最⼴的测试,因此灰盒测试基本是不能够替代黑盒测试,否则需要很⼤的代价,设计非常多的用例。
五、测试阶段分类
1. 单元测试
与编码同步进行,针对软件最小组成单元进行测试,主要采用白盒测试方法,从被测对象的内部结构出发设计测试用例
2. 集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接
口 及集成后的功能进行正确性检测的测试工作。集成主要⽬的是检查软件单位之间的接口是否正确。
3. 系统测试
对通过集成测试的系统进行整体测试,验证系统功能性和非功能性需求的实现。
回归测试和冒烟测试都属于系统测试。
3.1 冒烟测试
冒烟测试的对象是每⼀个新编译的需要正式测试的软件版本,⽬的是确认软件主要功能和核⼼流程正
常,在正式进行系统测试之前执行。冒烟测试⼀般在开发人员开发完毕后提交给测试人员来进行测试
时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试
3.2 回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产⽣错
误。在整个软件测试过程中占有很⼤的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞⼤,回归测试的成本越来越⼤,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
3.3 冒烟和回归测试的区别
冒烟测试(Smoke Testing):
◦ 阶段: 通常在软件开发的早期阶段进行,主要用于验证基本功能是否正常工作。
◦ ⽬的: 确保软件的主要功能能够基本运行,以便在后续的详细测试阶段发现更深层次的问题。
回归测试(Regression Testing):
◦ 阶段: 在软件开发的后期,通常在每次代码修改或新增功能后执行。
◦ ⽬的: 确保已有的功能仍然正常工作,并且新的更改没有引入新的错误。⽬的是防⽌已有功能因为代码修改而出现问题
4. 验收测试(交付测试)
针对用户需求,对通过系统测试的软件进行交付性测试,以确定系统是否满足验收标准,由用户
或其他授权机构决定是否接受系统。验收测试是部署软件之前的最后⼀个测试操作。它是技术测试的
最后⼀个阶段,也称为交付测试。验收测试的⽬的是确保软件准备就绪,按照项⽬合同、任务书、
双方约定的验收依据⽂档,向软件购买都展示该软件系统满足原始需求。
六、手工测试&自动化测试
1. 手工测试
手工测试(Manual Testing),就是由人去⼀个⼀个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的⼀个步骤。
优缺点
2. 自动化测试
自动化测试(Automation Testing)是指使用软件工具或脚本来执行测试任务的一种测试方法。它可以自动化执行一系列测试步骤、输入和验证预期结果,节省了人工执行测试的时间和精力。自动化测试能够降低测试的成本,提高测试的效率和一致性,并且可以在短时间内执行大量的测试用例。
自动化测试可以应用于各种不同的软件测试阶段,包括单元测试、集成测试、系统测试和回归测试等。它可以用于测试不同的软件应用,包括Web应用、移动应用和桌面应用等。(后续会单独出一期关于自动化测试的内容,查看》》》软件测试专栏)
优缺点
七、实施组织划分
1. α测试
α测试(Alpha Testing)又叫内测或者叫a测
α测试通常是公司内部的用户在模拟实际操作环境下进行的测试。α测试的⽬的是评价软件产品的FLURPS(即功能、可使用性、可靠性、性能和⽀持)。 α测试不能由程序员或测试员完成。
2. β测试
β测试(Beta Testing)又叫公测或者叫b测
β测试由软件的最终用户们在⼀个或多个场所进行,这⾥就可以理解为,β测试是正式用户中的⼀部分,他们在任意的场合来使用软件,⽬的是为了发现软件是否存在⼀系列的问题。β测试通常会发送⼀些邀请码,来邀请用户参与项⽬测试
3. α测试与β测试的区别
测试的场所不同:α测试是在公司内部进行测试的,但是β测试是在用户环境下进行测试的
八、测试地域划分
1. 软件国际化
这里以抖音和Tik Tok举例
抖音,是由字节跳动孵化的音乐创意短视频社交软件,上线于2016年9月,是一个面向全年龄的音乐短视频社区平台。
Tik Tok(抖音短视频国际版本)是字节跳动旗下一款短视频社交平台,属于抖音全球化战略的产物,于2017年5月上线。
测试人员需要测试软件在不同语⾔和地区是否能正常工作
2. 国际化测试
国际化测试是指针对软件、网站或应用程序进行的测试,以确认其在多个语言和文化环境下的正确性、适应性和可用性。通常包括以下方面:
- 语言测试:测试软件是否能正确显示和处理多种语言,包括各种语言字符和字体的支持等。
- 地区测试:测试软件是否能适应不同的地区和国家的文化差异,例如日期和时间格式、数字格式、货币符号等。
- 字符编码测试:测试软件是否能正确处理各种字符编码,如ASCII、Unicode等。
- 本地化测试:测试软件的界面和文本是否能够被翻译成不同的语言,并且保持正确的语法和语义。
- 健壮性测试:测试软件在各种特殊字符和语言环境下的容错能力,确保不会因为输入特殊字符或语言导致崩溃或错误。
- 国际化兼容性测试:测试软件是否能够兼容各种操作系统和硬件平台,以及不同的浏览器和设备。
3. 本地测试
本文上面几章都是本地测试