32小时通关第1~2个小时学习内容
一、第一个小时
- 软件定义:程序 + 数据 + 文档;软件是逻辑产品,不是硬件实物,不会磨损,但会随着修改引入缺陷。
- 软件质量的 6 大特性(ISO 25010,必考)
- 功能性:功能是否满足需求
- 性能效率:响应速度、资源占用
- 兼容性:和别的系统、不同环境能不能正常跑
- 易用性:用户好不好上手
- 可靠性:稳定、不容易崩溃(容错、故障恢复)
- 可维护性:后续好不好改代码、修复 bug 拓展:可移植性(放到别的环境部署难不难)
速记口诀:功效兼易,维靠移
二、软件缺陷(bug)基础
- 缺陷定义:只要不满足需求、和预期不一致,都算缺陷。 不止是程序崩溃;界面文字错误、需求没有实现,全都属于 bug。
- 缺陷产生的主要原因: ① 需求问题(需求描述不清、需求理解错误,占最高比例) ② 设计问题 ③ 编码错误 ④ 其他(文档、环境)
考点:大部分缺陷根源是需求,不是写代码写错。
三、软件测试基本概念
- 测试目的:发现缺陷,不是证明软件没有 bug;无法做到穷尽测试。
- 测试对象:不只有代码,需求文档、设计文档、用户手册,都属于测试对象。
- 测试和调试区分(选择题高频)
- 测试:找 bug,测试人员做;目的发现缺陷
- 调试(排错 debug):定位 bug 原因、修复 bug;开发人员做。测试发现问题,调试解决问题。
四、测试分类(基础划分)
- 按测试技术:黑盒、白盒、灰盒
- 黑盒:不看内部代码,只看输入输出(功能测试)
- 白盒:看代码内部逻辑结构(结构测试)
- 灰盒:介于两者之间,知道部分内部结构,常见接口测试
- 按是否运行程序
- 静态测试:不运行代码。文档评审、代码走查、静态代码检查(重点!静态不需要启动程序)
- 动态测试:运行程序,给输入,看输出(单元、集成、系统测试都属于动态)
考试坑:静态测试≠不用测试,静态测文档、源代码。
五、静态测试详细内容
静态测试手段:
- 评审(需求评审、设计评审、代码评审)
- 代码走查、代码审查 静态测试优势:在运行代码前,提前找到缺陷,成本很低
六、基础考点速记(第 1 小时背诵短句)
- 软件 = 程序 + 数据 + 文档
- 缺陷最多来源:需求
- 测试:找 bug;调试:修复 bug
- 静态测试:不运行软件;动态测试:运行软件
- 黑盒:不看代码;白盒:看代码;灰盒:部分了解内部
- 软件质量六大特性:功能性、性能效率、兼容性、易用性、可靠性、可维护性
一、第二个小时
软件从概念提出、开发、使用,直到退役消亡全过程
- 可行性研究:技术 / 经济 / 社会可行性,输出可行性研究报告,判断项目能不能做、值不值得做
- 需求分析:确定用户需要什么,产出软件需求规格说明书 SRS;SRS 是需求阶段最重要文档,确认功能、性能、约束
- 概要设计(总体设计):划分模块、模块间接口、整体架构;输出概要设计说明书
- 详细设计:每个模块内部逻辑、数据结构;输出详细设计说明书
- 编码:程序员写代码
- 测试:单元→集成→系统→验收测试,发现缺陷
- 运行维护(占生命周期成本最高,70% 左右):
- 改正性维护:修复上线后发现 bug
- 适应性维护:适配新环境(操作系统升级)
- 完善性维护:新增功能(占维护工作量最多)
- 预防性维护:提前改造,防止未来出问题
二、软件开发模型(高频考点)
- 瀑布模型:线性顺序,阶段固定,上阶段完成才进入下一阶段;适合需求明确、稳定项目;缺点:后期才能看到产品,无法应对需求变更
- V 模型:瀑布的变种,测试阶段和开发阶段一一对应(考试重点)
- 需求分析 ↔ 验收测试
- 概要设计 ↔ 系统测试
- 详细设计 ↔ 集成测试
- 编码 ↔ 单元测试
V 模型核心:测试和开发并行规划;缺点:需求一旦出错,后期修改代价巨大
-
- V:开发从上往下做完,对应阶段写用例,代码写完才执行测试;不检查文档
- W:开发做一步,测试同步验证一步,文档也要评审检查;线性,不能迭代
- H:测试独立出来,只要模块就绪就能测,支持迭代开发
三、软件测试基础概念
- 软件测试目的:发现缺陷,不是证明没有 bug(必考判断题)
- 测试原则:7 大原则(必背) ① 穷尽测试不可能,测试有终止条件 ② 尽早测试,越早发现缺陷修复成本越低 ③ 缺陷集群性(80% 缺陷集中在 20% 模块) ④ 杀虫剂悖论:同样用例反复测,很难再发现新 bug,需要不断更新用例 ⑤ 测试显示存在缺陷,不能证明不存在缺陷 ⑥ 避免 “自测”,开发尽量不要测试自己写代码 ⑦ 所有测试,应当追溯到用户需求
- 测试分类(按阶段,就是你之前学的)
- 单元测试:测模块 / 函数,白盒为主
- 集成测试:模块之间接口
- 系统测试:完整软件,黑盒,整体功能性能
- 验收测试:用户角度,确认产品满足需求
四、白盒 & 黑盒测试
- 黑盒(功能测试):不关心内部代码,只看输入输出;方法:等价类、边界值、判定表、场景法
- 白盒(结构测试):看代码内部逻辑,覆盖代码路径;方法:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正条件判定覆盖 MC/DC、路径覆盖
五、概要设计 vs 详细设计(你刚才问的考点)
- 概要设计:宏观,分模块、模块接口、整体架构,不关心模块内部怎么写
- 详细设计:微观,单个模块内部逻辑、算法、数据结构
六、简单速记(选择题直接用)
- 维护里面:完善性维护工作量最大
- V 模型:开发阶段和测试阶段一一对应
- 测试目标:找缺陷,不是证明无 bug
- 7 大测试原则是高频判断、选择题
浙公网安备 33010602011771号