一、按开发阶段划分:
1. 单元测试(Unit Testing)
又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性 。测试的对象是软件测试的最小单位:模块。【例如:登录测试】
2. 集成测试(Integration Testing)
集成测试也称联合测试(联调)、组装测试:将程序模块采用适当的集成策略组装起来, 对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
【例如:京东购物用微信支付】
3. 系统测试(System Testing)
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试 。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
【例如:房子能不能住人(功能) 房子抗不抗台风(性能);QQ能不能注册,能不能登录,能不能聊天发消息(功能) 人数太多会不会卡顿(性能)】
需求评审(功能需求、性能需求、接口需求) ;
测试计划 - 测试用例 - 用例评审 - 测试环境搭建(平台、架构、web服务器、数据库) - 执行
用例 - 提交问题 - 缺陷的跟踪和回归测试 - 测试报告 。
4. 验收测试(Acceptance Testing)
是部署软件前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试 。向软件购买者展示该软件系统满足原始需求 。
==实施验收测试的策略有三种:==
正式验收测试
非正式验收测试
Alpha 测试· Beta
二、按是否手工执行划分:
1. 手工测试(Manual Testing)
手工测试是 由人一个一个的输入用例,然后观察结果 ,和机器测试(指使用机器去测试,例如:手机、电脑)相对应,属于 比较原始但是必须的一种 。
2. 自动化测试(Automation Testing)
所谓自动化测试,就是 在预设条件下运行系统或应用程序,评估运行结果 。(预先条件包括:正常条件和异常条件)。简单来说,自动化测试就是 把人为驱动的测试行为,转化为机器执行 的一种过程。
三、按是否查看代码划分:
1. 黑盒测试(Black-Box Testing)
黑盒测试也是功能测试,测试中把被测的软件当做一个黑盒子,不关心盒子的内部结构是什么,只关心软件的 输入 数据和 输出 数据。
2. 白盒测试(White-Box Testing)
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是指打开盒子,去研究里面的 源代码和程序 结果。
3. 灰盒测试(Gray-Box Testing)
灰盒测试是介于白盒测试和黑盒测试之间的一种,灰盒测试多用于集成测试阶段, 不仅关注输入、输出的正确性,同时也关注程序内部的情况 。
四、按是否运行划分:
1. 静态测试(Static Testing)
静态方法是指 不运行被测程序本身 ,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。【静态测试属于白盒测试】
2. 动态测试(Dynamic Testing)
动态测试是指通过 运行被测程序 ,检查运行结果与预期结果的差异。【黑盒测试属于动态测试】
五、按测试对象划分:
(1)非功能测试
1. 性能测试(Performance Testing)
检查系统是否满足需求规格说明书中规定的性能。
通常表现在以下方面:
稳定性【例如:一万人的时候和十万人的时候,甚至一百万的时候系统会不会卡顿】
响应时间【例如:等待相应的时间是否过慢】
吞吐量(TPS)
2. 安全测试(Safety Testing)
安全测试是一个相对独立的领域,需要更多的专业知识。 如:WEB的安全测试、需要熟悉各种网络协议、防火墙、CDN、熟悉各种操作系统的漏洞、熟悉路由器等。
3. 兼容性测试(Compatibility Testing)
兼容性测试主要指软件之间能否很好的运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。
平台测试【例如:各种不同品牌型号、不同操作系统(如:android、iOS)的手机是否兼容】
浏览器测试【例如:不同浏览器兼容性测试(火狐、谷歌、360等)】
软件本身是否向前或向后兼容【例如:本版本和上一版本是否兼容】
测试软件是否与其他相关软件兼容【例如:同时下载两款软件是否都能正常使用】
数据兼容性测试【数据之间有一定的隔离性,两个软件里面的数据不会串、相互隔离、兼
容】
4. 文档测试(Document Testing)
开发文件:可行性研究报告、 软件需求说明书 、数据要求说明书、概要设计说明书、详细设
计说明书、数据库设计说明书、模块开发卷宗。
用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易
用性;改善软件可靠性;降低技术支持成本。
管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
==在实际的测试中,最常见的就是用户文件的测试,例如:用户操作说明书等。==
文档测试关注的点:
文档的术语 ;文档的正确性文档的完整性 ;文档的一致性 ;文档的易用性 。
5. 易用性(用户体验性测试)(User Ability Testing)
易用性是 交互的适应性、功能性和有效性 的集中体现。又叫用户体验测试。
6. 界面测试(User Interface Testing,UI测试)
界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
7. 安装测试(Installation Testing)
安装测试是指:测试程序的安装、卸载。最经典的就是APP的安装、卸载。
(2)功能测试(Functional Testing)
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。也是黑盒测试,测试中把被测的软件当做一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。
按测试实施的组织划分:
1. α测试(Alpha Testing)
2. β测试(Beta Testing)
α测试与β测试区别:
1. 测试的 场所不同 :Alpha测试是指把用户请到开发方的场所来测试,Beta测试是指在一个或多个用户的场所进行的测试。【例如:游戏内测版本】
2. Alpha测试的 环境是受开发方控制 的, 用户的数量相对比较少, 时间比较集中 。
Beta测试的 环境是不受开发方控制 的, 用户数量相对比较多,时间不集中 。
3. Alpha测试 先于 Beta测试执行。通用的软件产品 需要较大规模的Beta测试 , 测试周期比较长 。
3. 第三方测试(Third-party Testing)
介于开发方和用户之前的测试组织。【例如:众测网】
按测试地域划分:
1. 国际化测试(International Testing)
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化测试俨然成为一个独特的测试专门领域。
2. 本地化测试(Localization Testing)
本地化测试的对象是软件的本地化版本。之前我们一起学习的测试都是本地化测试。
以上就是软件测试的方法,你了解了吗?
#干货分享,喜欢的话,三连一下呀!