当前位置: 首页 > news >正文

软件测试分类指南(上):从目标、执行到方法,系统拆解测试核心维度

🔥草莓熊Lotso:个人主页

❄️个人专栏:《C++知识分享》《Linux 入门到实践:零基础也能懂》

生活是默默的坚持,毅力是永久的享受。


🎬博主简介:


目录

前言:

一. 按测试目标分类:聚焦 “测什么”

1.1 界面测试(UI 测试):软件的 “颜值审核”

1.2 功能测试:软件的 “能力验证”

1.3 性能测试:软件的 “速度与耐力考核”

1.4 可靠性测试:软件的 “稳定度评分”

1.5 安全性测试:软件的 “防盗门锁”

1.6 易用性测试:软件的 “用户体验评分”

二. 按执行方式分类:聚焦 “怎么测”

2.1 静态测试:不运行软件的 “火眼金睛”

2.2 动态测试:运行软件的 “实际验证”

三. 按测试方法分类:聚焦 “从什么角度测”

3.1 白盒测试:看透代码的 “内部视角”

3.1.1 语句覆盖

3.1.2 判定覆盖

3.1.3 条件覆盖

3.1.4 判断条件覆盖

3.1.5 条件组合覆盖

3.1.6 路径覆盖

3.2 黑盒测试:只看功能的 “用户视角”

3.3 灰盒测试:介于两者之间的 “折中视角”

结尾:


前言:

在软件生命周期中,测试是保障产品质量的关键环节。但软件测试并非 “一刀切” 的工作 —— 不同阶段、不同场景需要不同的测试策略。本文将从测试目标、执行方式、测试方法三个维度,拆解软件测试的核心分类,帮你建立系统化的测试认知。


一. 按测试目标分类:聚焦 “测什么”

测试目标决定了测试的核心方向,不同目标对应不同的质量维度,常见分类包括界面、功能、性能等 6 类,覆盖软件从 “颜值” 到 “能力” 的全面验证。

1.1 界面测试(UI 测试):软件的 “颜值审核”

界面是用户与软件的第一触点,UI 测试的核心是验证 “界面是否符合设计预期”,避免出现 “设计图是精致海报,实际是潦草涂鸦” 的差距。测试核心内容

  • 验证界面内容显示的完整性,一致性,准确性,友好性。比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示
  • 验证整个界面布局和排版时否合理,不同板块字体的设计,图片的展示是否符合需求
  • 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理
  • 界面的布局和色调符合当下时事的发展。

举个 “找茬” 例子:若设计图中 “百度新闻” 页面有 “百度一下” 按钮,而实际页面只显示 “百度” 二字,或 “文库” 模块被错写为 “太库”,均属于 UI 测试需发现的问题。

1.2 功能测试:软件的 “能力验证”

功能测试是最基础的测试类型,核心是验证 “软件是否按需求实现功能”,确保 “用户要的,软件都能做到”。测试逻辑

  • 依据:产品规格说明书(PRD),用黑盒测试方法(等价类、边界值、场景法等)设计用例;
  • 重点:逐项验证功能是否正常(如登录功能支持手机号 / 邮箱登录)、异常场景是否处理(如输入错误密码时提示 “密码错误”)、功能逻辑是否符合预期(如购物车结算时自动计算折扣)。

举个例子:测试博客系统的 “发布文章” 功能,需验证:输入标题 + 正文后能成功提交、未填标题时提示 “请输入标题”、发布后在列表页能看到新文章 —— 这些均属于功能测试范畴。

1.3 性能测试:软件的 “速度与耐力考核”

你是否遇到过 “网页加载半分钟”“查询数据时页面卡死” 的情况?这些都是性能问题。性能测试的核心是验证 “软件在不同场景下的响应速度、稳定性”。常见场景

  • 响应时间:如博客列表页加载时间是否≤2 秒、数据查询是否≤1 秒;
  • 并发能力:如 1000 人同时登录系统时,是否出现卡顿或崩溃;
  • 资源占用:如软件运行时 CPU / 内存占用是否过高(避免手机后台运行时耗电过快)。

测试逻辑:先分析性能需求(如 “支持 500 并发用户”),再通过工具模拟场景,最后根据结果调优。

1.4 可靠性测试:软件的 “稳定度评分”

可靠性(可用性)指软件 “正常服务的时间占比”,核心是 “少出故障、出故障后快速恢复”。计算公式:可靠性=正常运行时间+非正常运行时间正常运行时间​×100%行业标准

  • 一般网站:99%~99.5%(允许全年 downtime 约 438~876 小时);
  • 金融 / 电商系统:99.99%(全年 downtime 仅约 52 分钟);
  • 军事 / 医疗系统:99.999%(全年 downtime 仅约 5 分钟)。

举个通俗例子:若让 “老王请吃饭” 10 次,他只请了 1 次,可靠性就是 10%(不可靠);若 10 次都请,可靠性就是 100%(可靠)—— 软件的可靠性同理,故障越少越可靠。

1.5 安全性测试:软件的 “防盗门锁”

安全性测试聚焦 “保护用户数据和系统安全”,避免黑客攻击、数据泄露等风险。常见安全漏洞

  • 输入域,如输入恶性或者带有病毒的脚本或字符串;
  • 代码中的安全性问题,如SQL/XML注入
  • 不安全的数据存储或者传递
  • 数据文件,邮件文件,系统配置文件等里面有危害系统的信息或者数据
  • 有问题的访问控制,权限分配等
  • 假冒ID:身份欺骗
  • 篡改,对数据的恶意修改,破坏数据的完整性

测试方法:静态测试(代码评审找漏洞)、动态测试(渗透测试模拟黑客攻击),常用工具如 OWASP ZAP(动态)、HP Fortify(静态)。

1.6 易用性测试:软件的 “用户体验评分”

易用性测试的核心是 “让用户用得舒服”,符合 ISO25020 标准中 “易发现、易学习、易使用” 的要求,重点关注 4 个维度:

  • 规范性:如安装界面符合系统默认风格(Windows 软件的 “下一步” 按钮在右侧);
  • 直观性:如数据统计用柱状图展示、搜索框提示 “请输入关键词”;
  • 灵活性:如手机键盘支持九宫格 / 全键盘 / 手写,满足不同用户习惯;
  • 舒适性:如界面色调柔和、按钮点击有反馈(如按压效果)。


二. 按执行方式分类:聚焦 “怎么测”

按是否运行软件,可分为静态测试和动态测试,前者 “不跑代码找问题”,后者 “跑代码验证结果”。

2.1 静态测试:不运行软件的 “火眼金睛”

静态测试无需执行程序,通过分析代码、文档、界面等 “静态对象” 找问题,核心是 “防患于未然”。常见方式

  • 代码走查:人工检查代码逻辑(如是否有未定义变量、循环条件是否正确);
  • 代码扫描工具:用 Coverity、SonarQube 等工具检测代码漏洞(如内存泄漏风险)。

优势:提前发现问题,避免代码运行后才暴露(如上线后才发现的语法错误)。

2.2 动态测试:运行软件的 “实际验证”

动态测试需实际执行程序,输入测试数据,对比 “实际输出” 与 “预期输出” 是否一致 —— 大多数测试工作都属于此类。

优势:直接验证软件运行效果,贴近用户实际使用场景。


三. 按测试方法分类:聚焦 “从什么角度测”

按是否了解软件内部结构,可分为白盒、黑盒、灰盒测试,三者覆盖从 “全知视角” 到 “用户视角” 的不同场景。

3.1 白盒测试:看透代码的 “内部视角”

白盒测试又称之为结构测试或逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试。

白盒测试的测试目的是,通过软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试主要分为静态测试和动态测试两种。静态测试常见于桌面检查,代码审查,代码走查,代码扫描工具,动态测试方式主要包含六种测试方法:语句覆盖,判断覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖

给出简单的案例,接下来了解一下白盒测试方法的概念和使用

3.1.1 语句覆盖

每个语句至少执行一次。

针对A and B:A为T且B为T

针对C or D:C为T或者D为T

得出示例:

  • 用例1:A为T,B为T,C为T,D为F

3.1.2 判定覆盖

A and B 要为T -> A=T B=T  

A and B 要为F -> A=T B=F 或者 A=F B=T 或者 A=F B=F 

C or D 要为T -> C=T D=T/F 或者 C=T/F D=T 

C or D 要为 F -> C=F D=F 

得出用例:

  • 用例1:A=T B=T C=T D=F 满足 ①③
  • 用例2:A=T B=F C=F D=F 满足 ②④

3.1.3 条件覆盖

A: T F
B: T F
C :T F
D :T F
⑤ ⑥
得出用例:
  • 用例1:A=T B=T C=T D=T ⑤
  • 用例2:A=F B=F C=F D=F ⑥

3.1.4 判断条件覆盖

结合判定覆盖和条件覆盖。
得出用例:
  • 用例1:A=T B=T C=T D=T 满足①③⑤
  • 用例2:A=F B=F C=F D=F 满足②④⑥

3.1.5 条件组合覆盖

A B ∣ C D
T T ∣ T TT F ∣ T F
F T ∣ F T
F F ∣ F F
每行就可以是⼀个用例,一共四个用例。

3.1.6 路径覆盖

判定条件定义如下:
(1)if(x>0 && y>0)判定:记为P1
(2)if(z < 0)判定:记为P2
(3)x > 0:记为C1
(4)y > 0:记为C2
(5)z < 0:记为C3
数据C1C2C3P1P2路径
{x=3,y=3,z=-2}TTTTTa-b-d-f
{x=-3,y=3,z=-2}FTTFTa-c-d-f
{x=3,y=3,z=2}TTFTFa-b-e-f
{x=-3,y=15,z= 2}FTFFFa-c-e-f
总结:
  • 白盒测试主要应用于单元测试阶段
  • 先执行静态设计用例的放法,再执行动态设计测试用例的方法
  • 设计用例⼀般使用路径测试,重点模块追加使用逻辑覆盖方法

3.2 黑盒测试:只看功能的 “用户视角”

黑盒测试无需了解内部结构,仅通过 “输入输出” 验证功能是否符合需求,核心是 “站在用户角度找问题”。

测试方法:等价类(如登录密码分 “有效长度”“无效长度”)、边界值(如密码长度 10 位时测试 9 位、10 位、11 位)、场景法(如模拟 “用户注册→登录→下单” 全流程)。

优势:无需懂代码,聚焦用户需求,避免遗漏用户高频场景;

缺点:无法覆盖所有代码路径(如某些隐藏的逻辑漏洞可能测不到)。

3.3 灰盒测试:介于两者之间的 “折中视角”

灰盒测试既关注输入输出(如黑盒),也关注部分内部结构(如接口),常用于集成测试阶段。

特点:不深入所有代码细节,但会关注模块间接口(如验证 “用户模块” 向 “订单模块” 传递数据是否正确);

局限:无法完全替代黑盒(覆盖范围不足)和白盒(深度不够),需结合两者使用。


结尾:

往期回顾:

测试新人必看:6 种易上手的用例设计方法,快速搭建思路

结语:按目标分类,帮你明确 “要验证软件的哪些质量维度”;按执行方式分类,帮你选择 “是否需要运行程序”;按方法分类,帮你确定 “从内部还是外部视角测试”。这些分类并非孤立 —— 比如 “测试登录功能的性能”,属于 “性能测试(目标)+ 动态测试(执行)+ 黑盒测试(方法)” 的交叉场景。下一篇,我们将继续拆解按测试阶段、是否手工、实施组织划分的测试类型,帮你构建更完整的测试知识体系。

✨把这些内容吃透超牛的!放松下吧✨
ʕ˘ᴥ˘ʔ
づきらど

http://www.dtcms.com/a/464945.html

相关文章:

  • 李宏毅机器学习笔记18
  • 深圳做网站优化工资多少长沙官网seo分析
  • 深入理解SELinux:从核心概念到实战应用
  • W5500接收丢数据
  • 【深度学习新浪潮】大模型推理实战:模型切分核心技术(下)—— 流水线并行+混合并行+工程指南
  • 烟台建站价格推荐门户网站建设公司
  • Node.js/Python 实战:编写一个淘宝商品数据采集器​
  • 网站html模板贵州网站开发流程
  • 【分布式训练】分布式训练中的资源管理分类
  • 重生归来,我要成功 Python 高手--day24 Pandas介绍,属性,方法,数据类型,基本数据操作,排序,算术和逻辑运算,自定义运算
  • 如何在关闭浏览器标签前,可靠地发送 HTTP 请求?
  • http cookie 与 session
  • Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
  • ICRA-2025 | 机器人具身探索导航新策略!CTSAC:基于课程学习Transformer SAC算法的目标导向机器人探索
  • ManipulationNet:开启真实世界机器人操作基准测试新时代
  • 物流公司网站模版网页设计与制作做网站
  • 北京网站 百度快照单位如何建设网站
  • 英语文章工具: 提取、过滤文章单词在线工具
  • 良策金宝AI:为光伏工程师打造专属“智能外脑”
  • 《C++ STL list 完全指南:从基础操作到特性对比,解锁链表容器高效用法》
  • 刀客doc:亚马逊广告再下一城,拿下微软DSP广告业务
  • Agent 开发设计模式(Agentic Design Patterns )第 3 章:并行化模式
  • 配电系统接地 | TT, TN-C, TNC-S,TN-S, IT
  • Qemu-NUC980(七):Timer定时器
  • 20251009
  • CanFestival 主站-NMT初始化
  • Transformer基础之注意力机制
  • 模板式网站价格网页设置快捷键
  • 重要通知:spring-ai-hunyuan 已兼容 Spring AI 稳定版!
  • 惊艳的网站工作室网页模板