本章是软件工程核心实施章节,第 2 版教材在第 1 版基础上新增了软件实现概述体系、多维度测试分类、软件测试组织、软件部署四大模块,是软考高级系统分析师考试的高频分值区,选择题稳定 3-5 分,案例分析与论文也常结合测试策略、质量保障出题。
一、章节主要内容
本章共 6 大节,完整覆盖从代码实现到测试执行、组织管理、上线部署的全流程。
14.1 软件实现概述
本小节为第 2 版新增内容,核心是将软件设计转化为可执行代码的全流程方法论。
程序设计方法
结构化程序设计:采用自顶向下、逐步求精的设计思路,遵循单入口单出口的控制结构。经典结构包含顺序、选择、Do-while 循环;扩展结构新增 do-until 循环;修正结构再补充 LEAVE 跳出结构。
面向对象程序设计(OOP):以问题域中的事物映射为程序对象,事物关系映射为对象关系,核心优势是提升软件可靠性、可维护性、可复用性。
可视化程序设计:借助开发工具的控件库,以 “搭积木” 方式快速构建程序界面,降低 UI 开发成本。
程序设计语言与风格
语言选择三大原则:具备理想的模块化机制与可读的控制 / 数据结构;编译程序可尽可能多地发现错误;具备良好的独立编译机制。
良好程序设计的四大特性:可理解性、可复用性、可扩展性、健壮性。
编码规范
从命名规范、注释原则、编程风格规则、版本管理规则四个维度制定统一标准,保障团队协作效率与代码可维护性。
代码生成
针对用户认证、权限管理等重复度高的代码,通过 “模板 + 数据” 的方式自动生成,核心步骤为:准备模板、准备数据、定义合成机制、批量生成文件。
代码重用
分为三个层次(由低到高):代码重用、设计结果重用、分析结果重用;常见实现方法包括函数复用、对象复用、模块复用、类复用、算法复用。
14.2 软件测试概述
核心定义
IEEE 标准定义:使用人工或自动的手段运行或测量软件系统的过程,目的是检验软件是否符合规定需求,找出与预期结果的差异。
测试对象
不仅包含源程序、目标代码,还覆盖全生命周期文档(需求规格说明书、概要 / 详细设计文档等)、配置数据,实现全对象测试。
三方视角的测试目的
用户视角:发现隐藏缺陷,判断产品是否可接受
开发者视角:证明软件无错误,验证功能全部实现
测试人员视角:发现 / 预测错误,评估软件可靠性,给出质量评价
10 大测试原则
测试用例必须包含预期输出;程序员 / 开发组织不自测自有程序;用例需覆盖有效 + 无效输入;不穷举测试;测试尽早开展并贯穿全生命周期;测试需追溯到需求等。
14.3 软件测试方法
本章核心技术小节,是计算与案例题的核心出题点。
按被测程序代码可见度分类
按是否执行被测程序分类
静态测试:不运行程序,通过人工或工具检查代码、文档的缺陷,包括桌前检查、代码审查、代码走查、静态结构分析。可发现 30%-70% 的逻辑设计与编码缺陷。
动态测试:实际运行程序,通过构造测试用例、执行程序、分析输出结果发现缺陷,包含自动化测试(单元自动化、接口自动化、UI 自动化)。
14.4 软件测试类型
第 2 版大幅扩充了分类维度,是选择题高频考点。
按测试对象划分
功能测试、性能测试(含负载、压力、并发、容量、可靠性测试)、安全测试、兼容性测试、界面测试、易用性测试、稳定性测试。
按测试阶段划分(核心辨析点)
按被测软件形态划分(第 2 版新增)
App 测试、Web 测试、物联网测试、车联网测试、大数据测试、AI 测试、小程序测试。
其他通用测试类型
回归测试:代码修改后重新执行测试,防止修改引入新缺陷。
冒烟测试:版本更新后快速验证核心功能是否正常,不通过则终止后续测试,提升效率。
14.5 软件测试的组织(第 2 版新增)
完整测试过程:需求分析→测试计划→测试设计→测试环境搭建→测试执行→缺陷管理→测试总结。
测试管理四大模块
配置管理:管理测试计划、用例、版本、工具、结果的版本一致性。
过程管理:管控测试进度、质量、成本。
缺陷管理:缺陷提交、定级、分配、修复、验证、关闭的全流程。
风险管理:识别测试进度、用例覆盖、环境风险并制定应对方案。
14.6 软件部署(第 2 版新增)
部署目标:将软件产品正确安装到目标环境,完成配置与验证,保障系统可稳定运行。
标准部署步骤
环境准备:服务器、网络、数据库、依赖组件的搭建与校验。
软件安装:程序包部署、服务启动。
数据库与文件配置:参数配置、数据初始化、权限配置。
测试与验证:功能验证、性能校验、可用性确认。
二、主要考点与考情分析
1. 分值与题型分布
上午选择题:3-5 分,以概念辨析、分类区分、基础计算为主。
下午案例分析:高频出题点,常结合流程图考察白盒覆盖用例设计、McCabe 环路复杂度计算,或结合项目场景考察测试策略选择、缺陷管理流程。
论文写作:可结合 “软件质量保证”“测试自动化”“项目质量管理” 等主题出题,需结合本章测试方法、组织管理展开论述。
2. 高频考点盘点
选择题核心考点
程序设计三类方法的核心特征与区别,程序设计风格四大特性。
软件测试的 10 大原则,三方视角的测试目的,测试对象范围。
黑盒 / 白盒 / 灰盒测试的定义、适用场景、典型方法区分;静态测试与动态测试的核心差异。
白盒逻辑覆盖的 6 个等级强度排序(语句覆盖 < 判定覆盖 < 条件覆盖 < 判定 - 条件覆盖 < 条件组合覆盖 < 修改条件判定覆盖)。
四类测试阶段(单元 / 集成 / 系统 / 验收)的依据、目标、执行者辨析。
性能测试子类(负载 / 压力 / 并发)的核心差异;回归测试与冒烟测试的区别。
运维核心指标:MTTR(平均故障修复时间)、MTBF(平均故障间隔时间)、MTTF(平均无故障时间)、MTTA(平均应答时间)的区分。
第 2 版新增内容:软件测试组织流程、软件部署步骤、多形态软件测试特点。
案例分析核心考点
计算题:McCabe 环路复杂度计算(三种公式:判定节点数 + 1;边数 - 顶点数 + 2;封闭区域数 + 1)。
设计题:给定程序流程图,设计满足指定覆盖等级(语句、判定、条件)的测试用例。
应用题:给定项目场景,选择合适的集成测试策略(自顶向下 / 自底向上 / 三明治),设计黑盒测试用例(等价类、边界值)。
分析题:分析测试过程中的问题,优化缺陷管理流程,制定回归测试策略。
三、重难点深度解析
1. 重点内容解析
(1)软件测试基础概念
这是全章的理论基础,也是选择题必考点。核心记忆点:测试的核心目的是发现缺陷而非证明无错;测试对象是全生命周期产物而非仅代码;测试必须尽早开展,缺陷发现越晚,修复成本越高。
(2)测试阶段的分层逻辑
四个测试阶段是递进关系,核心区分依据是测试的粒度与依据文档:
粒度从小到大:单元→集成→系统→验收
依据文档从细到粗:详细设计→概要设计→需求规格→用户需求
测试方法从内到外:白盒为主→混合方法→黑盒为主→纯黑盒
(3)第 2 版新增内容
新增的软件测试组织、软件部署模块是近年考试的命题热点,侧重考察流程步骤与管理逻辑,属于记忆型考点,难度不高但丢分率高,需精准记忆核心环节。
2. 难点内容解析
(1)白盒逻辑覆盖等级辨析
6 种覆盖等级极易混淆,核心区分标准是覆盖的粒度:
语句覆盖:最基础,只保证每行代码执行一次,覆盖强度最低。
判定覆盖:保证每个判断的真假分支都走一遍,也叫分支覆盖。
条件覆盖:保证每个判断中的每个条件都取到真假值,但不保证判定分支全覆盖。
判定 - 条件覆盖:同时满足判定覆盖和条件覆盖的要求。
条件组合覆盖:每个判定中所有条件的真假组合都出现一次,强度高于判定 - 条件覆盖。
修改条件判定覆盖(MC/DC):每个条件都能独立影响判定结果,是航空等安全关键领域的强制标准。
(2)McCabe 环路复杂度计算
这是案例题高频计算题,最简便的计算方式是数判定节点数 + 1(判定节点指 if、while、for、switch 等包含分支的节点)。
示例:一个流程图包含 2 个 if 判断(每个 if 是 1 个判定节点),则环路复杂度 = 2+1=3。
(3)易混概念对比
(4)黑盒用例设计实操
等价类划分与边界值分析是案例题常考内容,核心规则:
等价类:有效等价类尽量用最少用例全覆盖,无效等价类每个单独设计用例。
边界值:选取刚好等于、刚好大于、刚好小于边界的值作为测试用例,例如范围 0-100,测试用例取 - 1、0、100、101。
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
欢迎访问 小易撩挨踢