32小时通关第1~2个小时学习内容

一、第一个小时

  1. 软件定义:程序 + 数据 + 文档;软件是逻辑产品,不是硬件实物,不会磨损,但会随着修改引入缺陷。
  2. 软件质量的 6 大特性(ISO 25010,必考)
    • 功能性:功能是否满足需求
    • 性能效率:响应速度、资源占用
    • 兼容性:和别的系统、不同环境能不能正常跑
    • 易用性:用户好不好上手
    • 可靠性:稳定、不容易崩溃(容错、故障恢复)
    • 可维护性:后续好不好改代码、修复 bug 拓展:可移植性(放到别的环境部署难不难)

速记口诀:功效兼易,维靠移

二、软件缺陷(bug)基础

  1. 缺陷定义:只要不满足需求、和预期不一致,都算缺陷。 不止是程序崩溃;界面文字错误、需求没有实现,全都属于 bug。
  2. 缺陷产生的主要原因: ① 需求问题(需求描述不清、需求理解错误,占最高比例) ② 设计问题 ③ 编码错误 ④ 其他(文档、环境)

考点:大部分缺陷根源是需求,不是写代码写错。

三、软件测试基本概念

  1. 测试目的:发现缺陷,不是证明软件没有 bug;无法做到穷尽测试。
  2. 测试对象:不只有代码,需求文档、设计文档、用户手册,都属于测试对象。
  3. 测试和调试区分(选择题高频)
    • 测试:找 bug,测试人员做;目的发现缺陷
    • 调试(排错 debug):定位 bug 原因、修复 bug;开发人员做。测试发现问题,调试解决问题。

四、测试分类(基础划分)

  1. 按测试技术:黑盒、白盒、灰盒
    • 黑盒:不看内部代码,只看输入输出(功能测试)
    • 白盒:看代码内部逻辑结构(结构测试)
    • 灰盒:介于两者之间,知道部分内部结构,常见接口测试
  2. 按是否运行程序
    • 静态测试:不运行代码。文档评审、代码走查、静态代码检查(重点!静态不需要启动程序)
    • 动态测试:运行程序,给输入,看输出(单元、集成、系统测试都属于动态)

考试坑:静态测试≠不用测试,静态测文档、源代码。

五、静态测试详细内容

静态测试手段:

  • 评审(需求评审、设计评审、代码评审)
  • 代码走查、代码审查 静态测试优势:在运行代码前,提前找到缺陷,成本很低

六、基础考点速记(第 1 小时背诵短句)

  1. 软件 = 程序 + 数据 + 文档
  2. 缺陷最多来源:需求
  3. 测试:找 bug;调试:修复 bug
  4. 静态测试:不运行软件;动态测试:运行软件
  5. 黑盒:不看代码;白盒:看代码;灰盒:部分了解内部
  6. 软件质量六大特性:功能性、性能效率、兼容性、易用性、可靠性、可维护性

 

一、第二个小时

软件从概念提出、开发、使用,直到退役消亡全过程

  1. 可行性研究:技术 / 经济 / 社会可行性,输出可行性研究报告,判断项目能不能做、值不值得做
  2. 需求分析:确定用户需要什么,产出软件需求规格说明书 SRS;SRS 是需求阶段最重要文档,确认功能、性能、约束
  3. 概要设计(总体设计):划分模块、模块间接口、整体架构;输出概要设计说明书
  4. 详细设计:每个模块内部逻辑、数据结构;输出详细设计说明书
  5. 编码:程序员写代码
  6. 测试:单元→集成→系统→验收测试,发现缺陷
  7. 运行维护(占生命周期成本最高,70% 左右):
    • 改正性维护:修复上线后发现 bug
    • 适应性维护:适配新环境(操作系统升级)
    • 完善性维护:新增功能(占维护工作量最多)
    • 预防性维护:提前改造,防止未来出问题

二、软件开发模型(高频考点)

  1. 瀑布模型:线性顺序,阶段固定,上阶段完成才进入下一阶段;适合需求明确、稳定项目;缺点:后期才能看到产品,无法应对需求变更
  2. V 模型:瀑布的变种,测试阶段和开发阶段一一对应(考试重点)
    • 需求分析 ↔ 验收测试
    • 概要设计 ↔ 系统测试
    • 详细设计 ↔ 集成测试
    • 编码 ↔ 单元测试

    V 模型核心:测试和开发并行规划;缺点:需求一旦出错,后期修改代价巨大

    • V:开发从上往下做完,对应阶段写用例,代码写完才执行测试;不检查文档
    • W:开发做一步,测试同步验证一步,文档也要评审检查;线性,不能迭代
    • H:测试独立出来,只要模块就绪就能测,支持迭代开发

三、软件测试基础概念

  1. 软件测试目的:发现缺陷,不是证明没有 bug(必考判断题)
  2. 测试原则:7 大原则(必背) ① 穷尽测试不可能,测试有终止条件 ② 尽早测试,越早发现缺陷修复成本越低 ③ 缺陷集群性(80% 缺陷集中在 20% 模块) ④ 杀虫剂悖论:同样用例反复测,很难再发现新 bug,需要不断更新用例 ⑤ 测试显示存在缺陷,不能证明不存在缺陷 ⑥ 避免 “自测”,开发尽量不要测试自己写代码 ⑦ 所有测试,应当追溯到用户需求
  3. 测试分类(按阶段,就是你之前学的)
    • 单元测试:测模块 / 函数,白盒为主
    • 集成测试:模块之间接口
    • 系统测试:完整软件,黑盒,整体功能性能
    • 验收测试:用户角度,确认产品满足需求

四、白盒 & 黑盒测试

  • 黑盒(功能测试):不关心内部代码,只看输入输出;方法:等价类、边界值、判定表、场景法
  • 白盒(结构测试):看代码内部逻辑,覆盖代码路径;方法:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正条件判定覆盖 MC/DC、路径覆盖

五、概要设计 vs 详细设计(你刚才问的考点)

  • 概要设计:宏观,分模块、模块接口、整体架构,不关心模块内部怎么写
  • 详细设计:微观,单个模块内部逻辑、算法、数据结构

六、简单速记(选择题直接用)

  1. 维护里面:完善性维护工作量最大
  2. V 模型:开发阶段和测试阶段一一对应
  3. 测试目标:找缺陷,不是证明无 bug
  4. 7 大测试原则是高频判断、选择题
posted on 2026-10-13 15:53  轻微强迫症  阅读(11)  评论(0)    收藏  举报