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

【软件测试】测试分类


​1. 概念​

软件测试是通过系统化的方法评估软件质量的过程,就像给产品做全方位体检。它贯穿软件开发的整个生命周期,目的是在用户发现问题前,提前发现并修复缺陷。举个例子:开发团队完成一个新功能后,测试人员会模拟用户操作,验证功能是否符合需求文档描述,同时检查是否存在崩溃、数据错误等问题。


​2. 按测试目标分类​

​2.1 界面测试​

  • ​核心目标​​:验证用户界面(UI)的视觉效果和交互是否符合设计规范。
  • ​测试内容​​:
    • 按钮、图标的位置和大小是否准确
    • 字体颜色、间距是否与设计稿一致
    • 页面在不同分辨率下的显示效果
  • ​实例​​:
    某电商App的购物车页面中,测试人员发现“结算”按钮在iOS设备上被截断,导致部分文字无法显示,需调整布局。

​2.2 功能测试​

  • ​核心目标​​:确保软件功能按需求正常运行。
  • ​测试方法​​:
    • 正向测试:验证功能正常使用场景(如登录成功)
    • 反向测试:验证异常输入时的处理(如密码错误提示)
  • ​实例​​:
    测试银行转账功能时,输入金额为负数,系统应提示“金额无效”而非执行转账。

​2.3 性能测试​

  • ​核心目标​​:评估系统在高负载下的稳定性。
  • ​测试类型​​:
    类型场景示例指标参考
    负载测试模拟1000用户同时在线支付响应时间≤3秒,CPU使用率<80%
    压力测试逐步增加用户直到系统崩溃找出最大承载用户量
    疲劳测试持续运行72小时处理交易内存泄漏检测
  • ​实例​​:
    某社交平台在明星官宣时服务器宕机,事后通过压力测试优化数据库分表策略。

​2.4 可靠性测试​

  • ​核心目标​​:验证系统长期运行的稳定性。
  • ​重点检查项​​:
    • 内存泄漏(如连续操作后内存占用持续上升)
    • 数据持久化(重启后数据不丢失)
  • ​实例​​:
    智能家居App连续执行100次开关灯操作,第87次时出现指令延迟,排查为线程阻塞问题。

​​2.5 安全性测试​​

  • ​核心目标​​:防止数据泄露和恶意攻击。
  • ​常见测试项​​:
    • SQL注入:输入' OR 1=1 --尝试绕过登录
    • XSS攻击:在输入框插入<script>alert(1)</script>
    • 权限越权:普通用户尝试访问管理员接口
  • ​实例​​:
    某论坛系统未过滤特殊字符,导致用户昵称可嵌入恶意脚本,攻击他人浏览器。

​2.6 易用性测试​

  • ​核心目标​​:降低用户学习成本,提升操作流畅度。
  • ​评估维度​​:
    • 新手引导是否清晰(如首次使用时的浮层提示)
    • 功能入口是否直观(如“设置”按钮放在右上角)
    • 错误提示是否友好(如“密码错误”改为“账号或密码不正确,还可尝试3次”)
  • ​实例​​:
    测试发现某医疗App的预约流程需要点击6次才能完成,优化后缩短至3步。

​3. 按执行方式分类​

​3.1 静态测试​

  • ​特点​​:不运行程序,通过检查文档或代码发现问题。
  • ​实施方式​​:
    • 代码评审:开发团队互相审查代码逻辑
    • 需求评审:测试人员参与确认需求可测试性
  • ​实例​​:
    评审时发现需求文档中“用户年龄范围为18-60岁”未说明包含60岁,需明确边界条件。

​3.2 动态测试​

  • ​特点​​:通过运行程序并输入数据验证结果。
  • ​典型流程​​:
    1. 准备测试数据(如测试账号、模拟文件)
    2. 执行测试用例(如点击按钮、提交表单)
    3. 比对实际结果与预期结果
  • ​实例​​:
    测试文件上传功能时,上传10GB视频文件,系统提示“文件大小超过限制”而非卡死。

​4. 按测试方法分类​

​4.1 白盒测试​

  • ​适用对象​​:开发人员和测试工程师(需懂代码)
  • ​覆盖标准详解​​:
    标准描述示例代码片段
    ​语句覆盖​每行代码至少执行一次if(a>0) { x=1; } else { x=2; } 需测试a>0和a≤0两种情况
    ​条件覆盖​每个逻辑条件取真/假各一次if(a>0 && b<5) 需覆盖4种组合
    ​路径覆盖​覆盖所有可能的代码执行路径循环和嵌套分支需全路径测试
  • ​实例​​:
    测试支付接口时,覆盖正常支付、余额不足、网络超时等所有异常分支。

​4.2 黑盒测试​

  • ​适用对象​​:测试人员和最终用户
  • ​常用技术​​:
    • 等价类划分:将输入数据分为有效类和无效类(如年龄输入分为0-17、18-60、61-120)
    • 边界值分析:测试边界值(如允许最大文件大小99.99MB和100MB时的处理)
  • ​实例​​:
    测试注册功能时,输入手机号“1881234567”(10位)触发“号码格式错误”提示。

​4.3 灰盒测试​

  • ​适用场景​​:API测试、性能优化分析
  • ​实施方式​​:
    • 结合代码日志定位性能瓶颈
    • 根据接口文档设计测试用例,同时监控数据库变更
  • ​实例​​:
    测试订单查询接口时,发现响应时间长,通过SQL执行计划分析优化索引。


​5. 按测试阶段分类​

​5.1 单元测试​

  • ​执行者​​:开发人员
  • ​工具​​:JUnit(Java)、Pytest(Python)
  • ​重点​​:
    • 函数/方法的输入输出验证
    • 隔离测试(使用Mock对象模拟依赖)
  • ​实例​​:
    测试计算税率的函数:输入收入10万元,验证输出税额是否符合税法规则。

​5.2 集成测试​

  • ​执行者​​:测试工程师 + 开发人员
  • ​策略​​:
    • 自顶向下:先测高层模块,逐步集成底层
    • 自底向上:先测底层模块,逐步组装
  • ​实例​​:
    测试用户注册模块与邮件服务集成:注册成功后检查收件箱是否收到验证邮件。

​5.3 系统测试​

  • ​关键测试类型​​:
    • ​冒烟测试​​:开发提交版本后立即执行,确认基础功能正常(如App能正常启动)
    • ​回归测试​​:修复Bug后重新执行全量用例,避免引入新问题
    • ​兼容性测试​​:跨浏览器(Chrome/Firefox)、跨设备(iOS/Android)验证
  • ​实例​​:
    iOS 17系统升级后,某金融App的指纹登录功能失效,回归测试发现是系统API变更导致。

​5.4 验收测试​

  • ​用户验收测试(UAT)​​:
    • 真实用户验证功能是否符合业务需求
    • 签署验收报告作为项目结项依据
  • ​实例​​:
    医院管理系统上线前,护士长验证排班功能能否满足三班倒的实际需求。

​6. 按是否手工测试​

​6.1 手工测试​

  • ​优势​​:灵活应对探索性测试(如随机操作发现隐藏Bug)
  • ​适用场景​​:
    • 用户体验评估(如页面流畅度)
    • 复杂业务场景验证(如保险理赔流程)
  • ​实例​​:
    游戏测试员手动体验剧情任务,发现某关卡NPC对话出现逻辑矛盾。

​6.2 自动化测试​

  • ​工具​​:Selenium(Web)、Appium(移动端)、LoadRunner(性能)
  • ​实施步骤​​:
    1. 筛选适合自动化的用例(重复执行、核心流程)
    2. 编写和维护脚本
    3. 集成到CI/CD流水线(如Jenkins定时执行)
  • ​实例​​:
    电商平台每日凌晨自动执行500个核心用例,邮件发送测试报告。

​7. 按实施组织划分​

​7.1 α测试(内测)​

  • ​参与人员​​:公司内部员工
  • ​测试重点​​:
    • 发现严重功能缺陷
    • 收集内部反馈优化流程
  • ​实例​​:
    钉钉新版本发布前,阿里全体员工测试“文档协同编辑”功能。

​7.2 β测试(公测)​

  • ​参与人员​​:真实用户自愿申请
  • ​价值​​:
    • 获取真实场景下的使用反馈
    • 测试服务器压力承载能力
  • ​实例​​:
    微信“小程序”功能上线前,开放10万用户公测,收集性能数据。

​7.3 第三方测试​

  • ​执行机构​​:国家质检中心、专业测评实验室
  • ​认证类型​​:
    • 安全认证(等保2.0)
    • 性能认证(TPC-C基准测试)
  • ​实例​​:
    某银行核心系统通过中国银联安全认证,获准接入央行结算系统。

​8. 按测试地域划分​

​8.1 国际化测试​

  • ​重点​​:
    • 多语言支持(如阿拉伯语从右向左排版)
    • 时区与日期格式(美国:MM/DD/YYYY vs 中国:YYYY-MM-DD)
    • 货币与单位转换(如英镑符号£显示异常)
  • ​实例​​:
    某国际会议系统未适配希伯来语,导致文字重叠,需调整UI布局。

​8.2 本地化测试​

  • ​重点​​:
    • 符合当地法律法规(如中国《网络安全法》)
    • 文化习俗适配(如伊斯兰国家App去除酒精相关内容)
  • ​实例​​:
    某短视频App在印度上线前,移除涉及宗教敏感的内容。

相关文章:

  • Android ViewStub显示VISIBLE与消失GONE,Kotlin(2)
  • 【数据结构】3.单链表专题
  • 从零开始构建 Ollama + MCP 服务器
  • 数据结构-树与二叉树
  • Fiddler 进行断点测试:调试网络请求
  • Python自动化办公
  • OFDM 信道表示(1)
  • 如何编制实施项目管理章程
  • shardingsphere-jdbc集成Seata分布式事务
  • 大模型提示词prompt
  • 解释`Function.__proto__ === Function.prototype`的结果及原因。
  • c#从ftp服务器下载文件读取csv
  • 在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法,支持 npm/yarn/pnpm 等主流工具
  • 小目标、狭长目标检测的一些优化方法
  • RK3588 Buildroot 串口测试工具
  • es6面试常见问题╮(╯▽╰)╭
  • 【C++】Stack和Queue的底层封装和实现
  • 分享一下这几天在公司学到的东西
  • python学习 -- 综合案例1:设计一款基于python的飞机大战小游戏
  • 阿里云 AI 搜索开放平台新功能发布:大模型联网能力上线
  • 政府网站域名要求/上海seo优化
  • 济南腾飞网络网站建设/如何优化网站排名
  • 河南网站建设找哪家/国际实时新闻
  • 做英文网站用什么字体好/网上销售培训课程
  • 小程序制作流程微信/河北百度竞价优化
  • 外贸网站建设排名/昆山seo网站优化软件