Skip to content

6、软件测试

分类

动态测试(需要依赖计算机运行)

白盒测试【结构测试】

关注内部结构与逻辑

主要用于单元测试阶段

  • 控制流测试【逻辑覆盖测试(语句覆盖最弱、路径覆盖最强)】
  • 数据流测试
  • 程序变异测试

黑盒测试【功能测试】

关注输入输出及功能

主要用于集成测试、确认测试和系统测试阶段

  • 等价类划分:不同等价类,揭示不同问题;有效等价类/无效等价类
  • 边界值分析:1<=x<=10,可取 x 的值为 0、1、10 和 11 作为测试数据
  • 错误推测:依靠测试人员的经验和直觉
  • 判定表:最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行那些不同的动作
  • 因果图:根据输入条件与输出结果之间的因果关系来设计测试用例

  • 灰盒测试:介于白盒测试和黑盒测试之间
  • 自动化测试:先写脚本 -> 自动化执行【不适合项目周期短,需求频繁变动】

静态测试(人工监测和计算机辅助分析)

  • 桌前检查
  • 代码审查
  • 代码走查

都是【静态分析】

静态分析

  • 控制流分析:是否存在没有使用的语句 / 无法到达的语句 / 调用并不存在的子程序
  • 数据流分析:引用未定义的变量 / 对以前未使用的变量再次赋值
  • 接口分析:模块之间接口的一致性 / 子程序和函数之间的接口一致性 / 函数形参与实参的数量、顺序、类型的一致性
  • 表达式分析:括号不配对 / 数组引用越界 / 除数为零

阶段

先从局部 再到整体

单元测试

依据【详细设计】

模块测试、模块功能、性能、接口等

集成测试

依据【概要设计】

模块间接口

策略

系统测试

依据【需求文档】

包括功能测试、性能测试、确认(验收)测试、压力测试等

性能测试

  • 负载测试:各种工作负载下系统的性能
  • 压力测试【测上限】:系统的瓶颈或不能接受的性能点
  • 强度测试【测下限】:系统资源特别低的情况下运行
  • 容量测试【并发测试】:同时在线的最大用户数
  • 可靠性测试:MTTF 之类的参数

确认(验收)测试

依据【需求文档】,验证软件与需求的一致性。

内部确认测试、Alpha 测试、Beta 测试、验收测试

其他测试

AB 测试

多版本同时使用,利于收集各版本的用户反馈,评估出最好版本。也算是一种【网页优化方法】

Web 测试

Web 系统测试与其他系统测试内容基本相同,只是测试重点不同 Web 代码测试包括:源代码规则分析、链接测试、框架测试、表格测试、图形测试等方面

链接测试

分为三个方面:

  • 测试所有链接是否按指示的那样链接到了该链接的页面
  • 测试所链接的页面是否存在
  • 保证 Web 应用系统上没有孤立的页面

表单测试

验证服务器是否能正确的保存这些数据,后台运行的程序能否正确解释和使用这些信息。测试提交操作的完整性

回归测试

测试软件变更之后,变更部分的正确性和对变更需求的符合性

KESHAOYE-知识星球 V20250415095821