七 实现
考纲:常见的程序设计语言的选择,编码风格。软件测试定义和目的,黑盒测试和白盒测试,软件测试的步骤,单元测试、集成测试和验收测试的方法,测试用例的设计,调试技术和策略,软件可靠性的概念。
常见的程序设计语言的选择,编码风格
实用标准
- 软件用户的要求
- 可以使用的编译程序
- 可以得到的软件工具
- 工程规模
- 程序员的知识
- 软件可移植性要求
- 软件的应用领域
编码风格
- 程序内部的文档
- 数据说明
- 语句构造
- 输入输出
- 效率
软件测试的定义和目的
通常把对软件的质量检验过程称为测试
软件测试的目标
- 测试是为了发现程序中错误而执行的过程
- 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
- 成功的测试是发现了至今为止尚未发现的错误的测试
测试方法:黑盒测试和白盒测试
- 黑盒测试(功能测试):将程序看作一个黑色盒子,完全不用考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的而测试,它只检查程序功能是否按规格说明书的规定正常使用,程序是否适当的接受输入输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。
- 白盒测试(结构测试):把程序看成装在一个透明的白色盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检查程序中主要执行通路是否能按预定要求正确工作
软件测试步骤
- 模块测试
- 子系统测试
- 系统测试
- 验收测试
- 平行运行
单元测试、集成测试和验收测试的方法
单元测试
-
测试重点
- 模块接口。
2)局部数据结构。
- 重要的执行通路。
4)出错处理通路。
5)边界条件。
-
代码审查:
组成人员:组长、程序的设计者、程序的编写者、程序的测试者。
-
计算机测试:
(1)代码审查与计算机测试的比较:
一次审查会上可以发现许多错误,用计算机测试的方法发现错误之后,通常要先改正这个错误然后才能继续测试,因此错误是一个一个的发现的并改正的,也就是代码审查的方法可以减少系统验证的工作量。
集成测试
是测试和组装软件的系统化技术
非渐增式测试方法
-
非渐增式方法的缺点:
①把所有模块放在一起,测试者面对的情况十分复杂。
②在庞大的程序中诊断定位一个错误非常困难。
③一旦改正一个错误之后,又会遇到新的错误,没有穷尽。
渐增式方法
-
渐增式方法的优点:
①把程序划分成小段来构造和测试,比较容易定位和改正错误。
②对接口可以进行更彻底的测试。
③可以使用系统化的测试方法。
*下面介绍渐增式的两个方法(具体步骤看书即可)😗
1.自顶向下集成:从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。
2.自底向集成:从"原子模块"开始组装和测试。
3.不同集成策略的比较:
1)自顶向下测试方法的主要优点是不需要测试驱动程序。能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误
2)自顶向下测试方法的主要缺点是需要存根程序,可能遇到与此相联系的测试困难,底层关键模块中的错误发现的晚,而且用这种方法在早期不能充分展开人力。
4.回归测试:
是指重复执行已经做过的测试的某个子集,以保证没有非预期的副作用。回归测试使用来保证由于测试或者其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。
验收测试(确认测试)
-
目标是验证软件的有效性,通常使用黑盒测试。
软件的有效性:
如果一个软件的功能和性能如同用户合理期待的那样,软件就是有效的。
软件配置复查:
目的是保证软件配置的所有成分都齐全,质量符合要求,文档与程序完全一致。具有完成软件维护所必须的细节,而且已经编好的目录。
测试用例的设计
*白盒测试技术*
-
逻辑覆盖(选择题)
1)语句覆盖。
2)判定覆盖。
3)条件覆盖。
4)判定|条件覆盖。
5)条件组合。
6)点覆盖。
7)边覆盖。
8)路径覆盖。
*黑盒测试技术*
测试力争发现如下错误:
- 功能不正确或遗落了功能。
- 界面错误。
- 数据结构错误或外部数据库访问错误。
- 性能错误。
- 初始化和终止错误。
测试方法:(选择题爱出,或者给你场景让你编写等价类或者边界值并设计测试用例)
- 等价划分(具体划分规则在书的172页)。
- 边界值分析(同上)。
- 错误推测(同上)。
调试技术和策略
定义:调试也称为纠错。作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。
-
调试困难的原因:
1)技术难以实现。
2)症状和产生症状的原因可能在程序中相距甚远。
3)当改正一个错误之后,症状可能暂时消失了。
4)症状可能实际上并不是错误引起的。
5)症状可能是由不易跟踪的认为错误引起的。
6)症状可能是由定时问题而不是由处理问题引起的。
7)可能很难重新产生完全一样的输入条件。
8)症状可能时有时无。
9)症状可能是由分布在许多任务中原因引起的。
-
调试途径
1)蛮干法。
2)回溯法。
3)原因排除法:
A 归纳法 B 演绎法 C 对分查找法
软件可靠性
-
软件的可靠性:
程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率。
-
软件的可用性:
程序在给定的时间点,按照规格说明书的规定成功运行的概率。