首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >软件测试分类指南(上):从目标、执行到方法,系统拆解测试核心维度

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

作者头像
草莓熊Lotso
发布2025-10-29 15:13:12
发布2025-10-29 15:13:12
1700
举报
文章被收录于专栏:C++/LinuxC++/Linux

🔥草莓熊Lotso:个人主页

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

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


🎬博主简介:

前言:

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


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

测试目标决定了测试的核心方向,不同目标对应不同的质量维度,常见分类包括界面、功能、性能等 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

数据

C1

C2

C3

P1

P2

路径

{x=3,y=3,z=-2}

T

T

T

T

T

a-b-d-f

{x=-3,y=3,z=-2}

F

T

T

F

T

a-c-d-f

{x=3,y=3,z=2}

T

T

F

T

F

a-b-e-f

{x=-3,y=15,z= 2}

F

T

F

F

F

a-c-e-f

总结:

  • 白盒测试主要应用于单元测试阶段
  • 先执行静态设计用例的放法,再执行动态设计测试用例的方法
  • 设计用例⼀般使用路径测试,重点模块追加使用逻辑覆盖方法

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

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

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

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

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

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

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

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

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


结尾:

往期回顾:

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 一. 按测试目标分类:聚焦 “测什么”
    • 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 灰盒测试:介于两者之间的 “折中视角”
  • 结尾:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档