软件测试分类全解析:从测试对象到实施组织的全方位指南
创作时间:
作者:
@小白创作中心
软件测试分类全解析:从测试对象到实施组织的全方位指南
引用
CSDN
1.
https://blog.csdn.net/m0_64003319/article/details/140025508
软件测试是软件开发过程中不可或缺的重要环节,通过系统地对软件进行测试,可以确保软件的质量和可靠性。本文将从多个维度对软件测试进行分类,帮助读者全面了解各种测试类型的特点和应用场景。
测试分类
1. 按照测试对象划分
- 界面测试
- 界面:用户直观看到的
- WEB站(浏览器打开的网站)、APP、小程序…
- 用户是通过界面和软件进行交互的
- 测试页面,要参考软件规格说明书、UI设计稿
- 验证界面内容显示的完整性 (比如屏幕自适应…)
- 验证整个界面布局和排版是否合理
- 对界面的不同控件进行测试
- 界面的布局和色调符合当下实事的发展
- 可靠性测试
- 可靠性就是可用性。指系统正常运行的能力。
- 可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)*100%
- 比例越高,软件的可靠性就越高
- 99.99% 全年不能工作的时间只有52min
- 99.999%全年不能工作的时间只有5min
- 容错性测试
- 容错性测试指系统能够处理异常,用户的错误操作不会导致系统崩溃,从而提高系统的可用性
- 输入异常数据或进行异常操作,来检查系统的保护性。如果系统容错性好,就只会给出提示或内部消化,不会导致系统的崩溃。(数据集测试、校验测试、环境容错性测试、界面容错性测试)
- 灾难恢复性测试:通过各种手段,让系统强制发生故障。验证保存的用户数据是否消失。系统和数据能否快速恢复。
- 文档测试
- 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗
- 用户文件:用户手册、操作手册。用户文档的作用:改善易安装性、易学性、易用性,改善技术可靠性,降低技术支持成本。
- 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告
- 文件测试的关注点:文档的术语、文档的正确性、完整性、一致性、易用性。
- 兼容性测试
- 兼容测试需求是指明确要测试的兼容环境,软硬件的兼容。
- 软件主要考虑:
- 系统自身版本的兼容、用户已有数据的兼容
- 测试与应用环境的兼容:操作系统、应用平台、浏览器的兼容。
- 测试与第三方系统以及第三方数据的兼容
- A软件不能影响B软件的使用
- 易用性测试
- 易用性的七要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性和实用性。
- 安装卸载测试
- 软件不同的安装和卸载方式
- 是否能在不同的系统下安装
- 安装或卸载过程中,是否可以手动暂停、取消
- 安装空间不足时,是否有提示
- 是否能正常卸载
- 安装卸载时环境出现问题(死机、断电、断网),软件能否正常的应对处理
- 安全性测试
- 输入域:输入恶性或带有病毒的脚本或字符串
- 代码中的安全性问题:SQL/XML注入
- 不安全的数据存储或传递
- 访问控制、权限分配
- 假冒ID:身份欺骗
- 对数据恶意篡改、破坏数据的完整性
- 性能测试
- 资源泄露(如内存泄漏)
- 资源瓶颈(如带宽上下限的瓶颈)
- 线程死锁、线程阻塞
- 查询速度慢、效率低
- 受外部系统影响越来越大
- 衡量系统性能好坏的指标:用户响应时间、事务平均响应时间(TPS)、吞吐量、每秒点击次数、内存和CPU使用率等
- 内存泄漏测试
- 常见的内存泄漏原因:
- 分配完内存之后忘记回收
- 程序写法有问题(如死循环),导致无法执行回事
- 有些API函数使用不正确,导致内存泄漏
- 检查方法:
- 人工静态法:人工查找未被回收的内存
- 自动工具法:利用工具,记录每次内存分配
2. 按照是否查看代码划分
- 黑盒测试
- 黑盒测试又叫“数据驱动测试”,只注重软件的功能
- 在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书使用、是否能适当的接收输入数据(设计的测试用例)并能输出正确的结果。
- 优点:
- 不需要了解程序内部的代码和实现
- 从用户角度出发设计测试用例
- 测试用例基于需求开发文档,不容易遗漏
- 缺点:代码覆盖率低,不可能覆盖到所有的代码
- 用到的测试方法有:等价类、边界值、判定表、场景法、错误猜测法。
- 白盒测试
- 又叫 “结构测试” 或 “逻辑测试”,关注的是代码逻辑,就可能对业务功能会存在漏洞
- 针对程序内部的逻辑结构来设计测试用例进行测试,对软件路径中的逻辑路径进行覆盖测试。在程序不同地方设立测试点,检查程序的状态,来确定运行状态和预期的结果是否一致。
- 主要包含六种测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
- 优点:代码覆盖率高
- 缺点:业务功能覆盖率低
- 灰盒测试
- 介于黑河测试和白盒测试之间
- 多用于集成测试阶段。不仅关注输入输出的正确性,同时也关注程序内部的情况。
3. 按照开发阶段划分
- 越往上越接近用户,定位问题的成本就越高。
- 单元测试
- 对软件组成单元进行测试,来检测软件基本组成单位的准确性。
- 测试的对象是软件设计的最小单元:模块。所以也称为模块测试
- 测试阶段:编码后或编码前(TDD)
- 测试对象:最小模块(在Java中就是一个类或方法)
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:代码、注释、详细的测试文档
- 测试方法:白盒测试
- 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
- 集成测试
- 也叫联合测试、组装测试
- 将程序模块按照适当的集成策略组装起来,对系统的接口,和集成后的功能进行测试
- 测试阶段:在单元测试之后
- 测试对象:模块之间的接口
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒与白盒相结合
- 测试内容:模块之间的数据传输、模块之间的功能冲突、模块组装的正确性、全局数据结构、单模块缺陷对系统的影响。
- 系统测试
- 把软件系统看成是一个系统进行测试。包括对功能、性能、软硬件环境
- 测试阶段:集成测试通过之后
- 测试对象:整个系统(软硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明书
- 测试方法:黑盒测试
- 测试内容:界面、功能、可靠性、易用性、性能、兼容性、安全性等。
- 回归测试
- 指修改旧代码之后,重新进行测试,来检查是否会引出新的错误。
- 冒烟测试
- 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。
- 冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。 如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。
- 回归测试和冒烟测试都属于系统测试
- 需求讲解->梳理测试点(设计测试用例)->评审设计用例->测试->项目上线
- 梳理测试点时包含了冒烟测试用例(测试点是本次测试的主流程)
- 评审时,确定所有测试用例(包含冒烟测试)
- 测试时,先执行冒烟测试用例。通过后进行正式测试,不通过打回修改
- 验收测试
- 也叫交付测试,是产品上线之前最后一个测试流程。
- 确保软件准备就绪,符合用户预期
- 测试阶段:系统测试通过之后
- 测试对象:整个系统(软硬件)
- 测试人员:最终用户或需求方
- 测试依据:用户需求、验收标准
- 测试方法:黑盒测试
- 测试内容:界面、功能、可靠性、易用性、性能、兼容性、安全性、各类文档等。
4. 按照实施组织划分
- α测试
- α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的 测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。 大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成。
- β测试
- Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行。
- α测试和β测试的区别
- 环境:α测试是在公司内部进行测试,β测试环境不确定
- 测试人员类型:α测试是公司内部人员,β测试人员是用户
- 测试人员数量:α测试人员较少,β测试人员多
- 阶段:α测试是在β测试之前
- 周期:α测试周期短,β测试周期长
- 第三方测试
- 介于开发方和用户方间的组织的测试。
5. 按照是否运行划分
- 静态测试
- 不实际运行测试的软件,静态的检查代码程序、界面、文档。是对测试对象的分析过程
- 动态测试
- 实际运行被测软件,输入响应的测试数据。检查输出结果是否符合预期。
6. 按照是否手工划分
- 手工测试
- 人工进行测试用例的输入
- 优点:自动化测试无法进行探索性测试、发散思维结果的测试
- 缺点:执行效率慢,容易出错
- 自动化测试
- 自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。 自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比 UI测试高。
- 自动化实施步骤:
- 完成功能测试,版本基本稳定
- 根据项目特性,选择适合项目的自动化工具,并搭建环境
- 提取手工测试的测试用例转化为自动化测试的用例
- 通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
- 生成自动测试报告
- 持续改进,脚本优化
7. 按照地域划分
- 国际化测试
- 是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时, 不需要重新设计源程序代码的软件工程方法
- 本地化测试
- 点击移步博客主页,欢迎光临~
热门推荐
韭菜种子快速催芽方法
理学家还是风水大师?蔡元定的双重人生抉择
常吃这类食物,血糖降了,体重轻了,连脂肪肝也悄悄变好了
企业数字化转型与新质生产力发展
拿什么来拯救你,我的睡眠——共同关注青春期睡眠问题
如何预防职业性苯肼中毒?
《流浪地球2》精彩视效解析
《名侦探柯南》前200集恐怖集数盘点,哪一集是你童年阴影?
显示器屏幕测试方法与软件推荐
基于深度学习探索地下流体中的地震前兆信息
派出所处理案件没了音讯:权利救济途径与法律分析
一元二次方程:解题技巧与应用场景
肝功能总胆红素正常值是多少
Excel中记录变化数据的多种实用方法
从甲骨文到简体字:汉字演变的历史脉络与文化价值
长沙六大地标建筑:从历史文化到现代繁华
房屋改造安全指南:这些地方千万不能动!
各种“睡不好”,中医教您调理,助您睡个安稳觉
如何确保公司的请假制度符合法律规定?
春节期间深圳科学技术馆试运营:好玩又免费,体验未来科技
揭秘一起去中介找活扣押身份证的真相:陷阱还是误解?
开学装备选择:6000元笔记本VS台式机
如何让自我介绍简洁明了
提前还房贷的次数限制是怎样的?
北京建设五大平原新城,究竟新在哪里?
《斗破苍穹》中,药老最后的结局是什么?
学会这项技术,让你的樱桃产量直线上升
“家鸭始祖”绿头鸭:睡着了,好像又没睡着
继发性痫症是什么意思
担心营养素缺乏,这张表能帮你快速查漏补缺,还不快收藏~