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

系统架构设计师备考第25天——软件测试

一、软件测试概述

软件测试定义
使用人工或自动化手段运行/测定软件系统,目的是验证其是否满足需求,识别预期与实际结果的差异。
核心目标

  • 确保软件质量,确认软件正确实现用户期望。
  • 发现错误、验证技术指标、支持软件组装、为质量模型提供依据。
  • 贯穿开发生命周期,辅助风险评估。

二、测试方法分类

根据不同标准,测试方法可分为以下六类:

1. 静态测试(Static Testing, ST)
  • 特点:不运行程序,通过分析源码结构、流程、文档找出错误(如参数不匹配、未定义变量)。
  • 适用场景:需求评审、代码审查、设计文档检查。
  • 典型方法:代码走查、静态分析工具(如SonarQube)。
2. 动态测试(Dynamic Testing, DT)
  • 特点:运行程序,对比实际结果与预期值,分析效率与健壮性。
  • 步骤:构造测试用例 → 执行程序 → 分析结果。
  • 适用场景:功能验证、性能测试。
3. 黑盒测试
  • 特点:视程序为“黑盒”,仅关注输入输出,不涉及内部逻辑。
  • 重点:验证界面与功能是否符合需求规格书。
  • 量化要求:测试行为需量化以保证质量。
  • 典型方法:等价类划分、边界值分析。
4. 白盒测试
  • 特点:基于程序内部逻辑设计用例,检查路径、控制流、数据流。
  • 覆盖标准(由低到高):
    • 语句覆盖:每条语句至少执行一次。
    • 判定覆盖:每个逻辑条件取真/假至少一次。
    • 路径覆盖:覆盖所有可能路径(最高强度)。
  • 典型方法:控制流分析、数据流测试。
5. 灰盒测试
  • 特点:介于黑盒与白盒之间,关注输出正确性及部分内部逻辑。
  • 适用场景:内部逻辑错误但输出正确时(效率高于白盒,适用性广于黑盒)。
  • 典型场景:接口测试、集成测试。
6. 自动化测试(AT)
  • 特点:通过工具自动执行测试用例并分析结果,替代人工驱动。
  • 优势:提升重复测试效率,适用于回归测试、性能测试。
  • 工具举例:Selenium(Web)、JUnit(单元测试)。

三、 测试阶段划分

按开发阶段,测试分为以下四类:

1. 单元测试
  • 目标:验证模块功能与编码正确性。
  • 方法
    • 静态测试:代码审查、静态分析。
    • 动态测试:黑盒+白盒结合(黑盒设计用例,白盒补充覆盖)。
  • 覆盖标准:高可靠性模块需满足路径覆盖或条件组合覆盖。
2. 集成测试
  • 目标:检查模块组装正确性,发现接口问题。
  • 方法:黑盒与白盒结合,验证需求实现与结构合理性。
  • 典型策略:增量式(自顶向下/自底向上)、非增量式(Big Bang)。
3. 系统测试
  • 目标:验证整体系统是否符合需求(黑盒主导)。
  • 测试类型
    测试类型目的
    功能测试验证业务功能正确性
    性能测试评估系统响应时间、吞吐量
    压力测试确定系统崩溃点及最大负载能力
    可靠性测试检查系统容错与恢复能力
    安全性测试验证数据加密、权限控制
  • 结束标志:需求覆盖率达标,所有缺陷归零。
4. 其他专项测试
  • 性能测试
    • 负载测试:逐步增加负载,观察性能变化。
    • 压力测试:突破极限负载,定位系统瓶颈。
  • 验收测试
    • 用户验收:验证合同/需求符合性(如Alpha测试、Beta测试)。
    • Alpha测试:开发环境下模拟用户操作。
    • Beta测试:真实环境中多用户测试并反馈。
  • 新型测试(Web/App场景):
    • AB测试:对比多个版本界面/流程,选择最优方案。
    • Web测试
      • 链接测试:验证链接有效性、页面存在性、无孤立页面。
      • 表单测试:检查提交功能、数据校验、错误处理(如注册、登录)。

四、重点考点总结

类别核心要点
测试方法静态vs动态、黑盒(功能)vs白盒(结构)vs灰盒(混合)、自动化测试场景
测试阶段单元测试(模块级)、集成测试(接口)、系统测试(整体)、验收测试(用户需求)
覆盖标准语句覆盖 → 判定覆盖 → 路径覆盖(强度递增)
新型测试AB测试(版本优化)、Web链接/表单测试(功能完整性)

五、常见考题示例

  1. 单选题

    白盒测试中,“每条语句至少执行一次”属于哪种覆盖标准?
    A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖
    答案:A

  2. 判断题

    灰盒测试既关注输出正确性,也分析部分内部逻辑,因此效率始终高于白盒测试。(×)
    解析:灰盒在内部错误但输出正确时效率更高,非绝对。

  3. 简答题

    简述系统测试结束的标志。
    :需求覆盖率达标,且所有已发现缺陷修复归零。

  4. 案例题

    某电商平台需测试支付功能,应选择哪些测试类型?
    :功能测试(流程正确性)、性能测试(并发支付)、安全性测试(数据加密)、表单测试(输入校验)。



文章转载自:

http://2mZoFpH3.zyndj.cn
http://cDkVAcOt.zyndj.cn
http://6ejQ2e2p.zyndj.cn
http://E9dTqy6Z.zyndj.cn
http://6PCpccG7.zyndj.cn
http://mAiaer5H.zyndj.cn
http://FWk04Lam.zyndj.cn
http://Df9v5CCP.zyndj.cn
http://CQWLIxqa.zyndj.cn
http://SMJ1QH1C.zyndj.cn
http://5MseIphP.zyndj.cn
http://hCAYuso4.zyndj.cn
http://5jEWb15m.zyndj.cn
http://pYcCGmOM.zyndj.cn
http://OrE58Srp.zyndj.cn
http://wiH1NSWS.zyndj.cn
http://31cPxlTW.zyndj.cn
http://1iCQmI55.zyndj.cn
http://ky8zfsuK.zyndj.cn
http://VOwNEhSv.zyndj.cn
http://25HEXqEI.zyndj.cn
http://XlvOSq5D.zyndj.cn
http://1ijbhUlp.zyndj.cn
http://7NnZaoUM.zyndj.cn
http://s79Y5GID.zyndj.cn
http://ZbAkGtmM.zyndj.cn
http://SUejbZg1.zyndj.cn
http://hbtWFt88.zyndj.cn
http://NBW6N6o9.zyndj.cn
http://bK5Vsf8i.zyndj.cn
http://www.dtcms.com/a/387522.html

相关文章:

  • 十、vue3后台项目系列——登录页面的搭建
  • 在博主内容推送系统中,通过RabbitMQ异步解耦及消息持久化+重试机制,使推送效率提升300%,成功率提升至99.9%的原理及实现
  • 【FreeRTOS】二值信号量vs互斥量核心差异
  • 记一次golang结合前端的axios进行预签名分片上传遇到403签名错误踩坑
  • LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)
  • 微信小程序修改页面导航标题的方式
  • Torch-Rechub学习笔记-task1
  • LightTools照明光学系统设计
  • 从技术探索到社区共建:程宇翔的隐私计算开源之路
  • 【Redis】云原生时代Redis高可用新范式:多活架构+异地容灾 生成详细内容
  • JsonCpp: 一个好用且轻量级的JSON解析库
  • 【设计模式】桥接模式
  • ACP(五):优化提示词(Prompt),精细地控制大模型的输出
  • Egg.js 性能测试全解析:从压力测试到深度调优
  • 自制脚本,解决Ubuntu20.04 键盘会突然失灵、键盘延迟突然很大问题
  • 172.在vue3中使用openlayers:引用 hover 效果,展示各种鼠标 cursor 样式
  • SpringBoot Oracle
  • LLMs之IR:《MUVERA: Multi-Vector Retrieval via Fixed Dimensional Encodings》的翻译与解读
  • Redis与Java集成实战:从入门到高级应用
  • Chromium 138 编译指南 macOS篇:配置depot_tools(三)
  • qt QHXYModelMapper详解
  • 机器学习中的编码问题和标准化:类别编码、one-hot编码缺陷及改进
  • Qt QHorizontalStackedBarSeries详解
  • Python爬虫实战:研究Pandas,构建全运会数据采集和分析系统
  • 告别冗余 DOM:Vue Fragment 用法与性能优化解析
  • 快速排序:原理、实现与优化
  • JavaScript性能优化实战:深入剖析性能瓶颈与最佳实践
  • Lattice ECP5系列FPGA介绍
  • PySpark 窗口函数row_number、lag、lead的使用简述
  • 华为FreeBuds 7i不同设备要如何连接?