课程
2696 字
约 8 分钟
大三上
06-coding-and-testing
软件工程notes/se-review-obsidian·更新于 2026-09-15
编码
定义:编码是把软件设计结果翻译成用程序设计语言书写的程序,是对设计的进一步具体化,因此程序的质量主要取决于软件设计的质量。
程序设计语言:
- 具有一致性、二义性、紧致性、局部性等特点
- 分为机器语言、汇编语言、高级语言、面向问题语言
编码风格:也称为程序设计风格或编程风格,是指编程的原则和约定,良好的编码风格有助于提高代码的可读性、可维护性和可靠性。好的编码风格应遵循一致性、模块化、简单化、文档化的规则。
测试
测试:为了发现程序中的错误而执行的过程
测试用例:测试输入数据和预期的输出结果
测试方案:测试目的、测试用例的结合
测试目标:
- 测试是为了发现程序中的错误而执行程序的过程
- 好的测试方案是极有可能发现迄今为止尚未发现的错误的测试方案
- 成功的测试是发现了至今为止尚未发现的错误的测试
测试准则:
- 所有测试都应该能追溯到用户需求
- 应该远在测试之前就制定测试计划
- Pareto原理:80%的错误是由20%的模块造成的
- 应该从小规模测试开始,并逐步进行大规模测试
- 穷举测试是不可能的
- 为了尽最大可能的发现错误,应该由独立的第三方担任测试工作
白盒测试(结构测试):把软件看作一个透明的盒子,完全知道程序内部结构和处理算法,根据程序内部的逻辑结构测试程序内部的主要执行通路是否能够按照预定的要求正确工作
黑盒测试(功能测试):把软件看成一个黑盒子,不考虑其内部结构和处理过程,只按照规格说明书的规定,测试软件是否能够正确接收输入数据,并产生正确的输出数据。也即测试程序是否正确实现了其功能
测试步骤:
- 单元测试(模块测试):把每个模块作为一个单独的实体来测试,目的是保证每个模块作为一个单元能正确运行。
- 集成测试:子系统测试和系统测试总称为集成测试。有非渐增式组装方式、渐增式组装方式
- 子系统测试:把经过单元测试的模块放在一起形成一个子系统来测试,着重测试模块的接口
- 系统测试:把经过测试的子系统装配成一个完整的系统来测试(黑盒法)。
- 验收测试(确认测试):把软件系统作为单一的实体进行测试,它是在用户积极参与下进行的,验证系统是否确实能够满足用户的需要。有Alpha(内测)、Beta(公测)
- 平行运行:同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果
判断题:
- 软件测试的目的是证明程序没有错误。(×)
- 测试用例由一系列输入和实际的输出组成。(×)
- 系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。(×)
- 白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。(×)
- 集成测试主要由用户来完成。(×)
- 确认测试计划应该在可行性研究阶段制定。(×)
- 黑盒测试无需考虑模块内部的程序结构,只要了解模块的功能即可。(√)
选择题:
- 软件测试的目的是()。
- A 评价软件的质量
- ==B 发现软件的错误==
- C 找出软件的所有错误
- D 证明软件是正确的
- 提高测试的有效性非常重要,成功的测试是指()。
- A 证明了被测试程序正确无误
- B 说明了被测试程序符合相应的要求
- C 未发现被测程序的错误
- ==D 发现了至今为止尚未发现的错误==
- 确定测试计划是在()阶段指定的。
- ==A 总体设计==
- B 详细设计
- C 编码
- D 测试
- 软件测试过程中的确认测试主要是为了发现()阶段的错误。
- ==A 需求分析==
- B 概要设计
- C 详细设计
- D 编码
- ()是维护中常用的方法,其目的是检验修改所引起的副作用。
- ==A 回归测试==
- B 模块测试
- C 功能测试
- D 结构测试
白盒测试
定义:白盒测试也称结构测试或逻辑驱动测试,需要知道程序代码,是针对被测单元内部是如何进行工作的测试,在测试早期进行。
逻辑覆盖技术:
- 语句覆盖:每条语句至少执行一次。
- 判定覆盖:又叫分支覆盖,每一判定的分支至少执行一次。
- 条件覆盖:每一判定中的每个条件,分别按真假至少各执行一次。
- 判定/条件覆盖:同时满足判定覆盖和条件覆盖的要求。
- 条件组合覆盖:求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次。
- 点覆盖:通常与语句覆盖标准相同。
- 边覆盖:通常与判定覆盖一致。
- 路径覆盖:使程序的每条可能路径都至少执行一次。
控制结构测试技术:
- 基本路径测试
- 条件测试
- 循环测试
选择题:
- 白盒法又称为逻辑覆盖法,主要用于()。
- A.功能测试
- B.系统测试
- C.测试
- ==D.单元测试==
- 以下哪种测试方法不属于白盒测试技术()
- A.基本路径测试
- ==B.边界值分析测试==
- C.循环覆盖测试
- D.逻辑覆盖测试
- 以下不属于逻辑覆盖的是()。
- A.语句覆盖
- B.判定覆盖
- C.条件覆盖
- ==D.基本路径==
- 单元测试的测试对象是()。
- A.系统
- ==B.程序模块==
- C.模块接口
- D.系统功能
黑盒测试
定义:数据或功能驱动,无需知道代码逻辑。着重测试软件功能,测试后期进行。
目的:
- 功能不正确或遗漏了功能
- 界面错误
- 数据结构错误或外部数据库访问错误
- 性能错误
- 初始化和终止错误
典型技术:
- 等价划分法
- 边界值分析
- 错误推测法
- 因果法
选择题: 在黑盒测试中,作为相关黑盒测试有效补充的测试方法是()。
- A.等价类划分法
- C.错误推测法
- ==B.边界值分析法==
- D.因果图法 黑盒测试在设计测试用例时,主要需要研究()。
- ==A.需求规格说明与概要设计说明==
- B.详细设计说明
- C.项目开发计划
- D.概要设计说明与详细设计说明 下面哪些测试属于黑盒测试()。
- A.路径测试
- ==C.边界值分析==
- ==B.等价类划分==
- ==D.错误推测==
- E.循环测试













