软件工程自考复习资料-全 下载本文

一种结构测试,被测对象是源程序,以程序的内部逻辑为基础设计测试用例。

4. 逻辑覆盖是白盒法设计测试用例的技术,根据程序内部逻辑覆盖程度设计测试用

例。要求设计的测试用路覆盖程度高或覆盖最具代表性的路径。按逻辑覆盖程度不同,分为:

语句覆盖:设计足够的测试用例,是被测程序中每个语句至少执行一次。 判定覆盖:设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”

或“假”值,从而使程序的每个分支都通过一次。也叫分支覆盖。

条件覆盖:设计足够的测试用例,使判定表达式中的每个条件的各种可能的值至少出现一次。

判定/条件覆盖:设计足够的测试用例,使得判定表达式中的每个条件的所有可能取

值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。

条件组合覆盖:设计足够的测试用例,使得每个判定表达式中条件的各种可能的值

的组合都至少出现一次。

路径覆盖:设计足够的测试用例,覆盖被测程序中所有可能的路径。

它们的区别在于:逻辑覆盖程度不同、发现错误能力强弱不同、关注点不同、执行路径情况不同。

5. 黑盒测试是把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处

理过程,只在软

件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称功能测试或称数据驱动测试。其测试用例设计技术包括等价类划分、边界值分析、错误推测和因果图。

37

等价类划分:只用输入信息设计测试用例。优点是用少量有代表性的例子代替大量测

试目标的系统的例子,提高测试效率。缺点是不注意选择某些高效的、能发现更多错误的测试用例,孤立考虑各个输入数据的测试功能,没考虑多个输入数据的组合引起的错误。

边界值分析:一般和等价类划分结合,将测试边界情况作为重点,考虑输入、输出数

据的边界情况。优点是边界情况检查比较高效,可查出更多错误。缺点是孤立考虑各个输入数据的测试功能,没有考虑多个输入数据的组合引起的错误。

错误推测:没有确定步骤,根据经验和知觉设计测试用例。

因果图:通过画因果图,把用自然语言描述的功能说明转换成判定表,最后为判定表

的每一列设计测试用例。优点是有效检测输入条件的各种组合可能引起的错误。

6. 用白盒法或黑盒法设计测试用例各有所长,关键是测试用例的选择。实际测试中,

先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。

7. 软件测试是一个规则的过程,包括测试设计、测试执行、测试结果比较等。 8. 单元测试:指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规

定的功能,从而发现模块在编码或算法中的错误。涉及编码和详细设计文档。

主要目标:检查各个模块是否正确实现规定功能,发现模块在编码中或

算法中的错误。

测试内容:集中于单个模块的功能和结构检测,包括模块接口、局部数

据结构、重要

38

执行路径、错误处理、边界检测。

测试方法:总使用白盒测试法,为被测模块设计驱动模块和桩模块。

9. 集成测试:指在单元测试基础上,将所有模块按照设计要求组装成一个完整的系统

进行的测试,也称组装测试或联合测试。需要考察模块间接口和各模块间的联系。主要用于发现设计阶段产生的错误,涉及详细设计文档和概要设计文档。

主要目标:检查和设计相关的软件体系结构的有关问题。

测试内容:集中于模块组合的功能和软件结构检测,主要包括模块组装

中可能出现的问题,即数据穿过接口可能丢失、一个模块可能破坏另一个模块的内容、子功能组装可能不等于主功能、全程数据结构问题、误差积累问题。

测试方法:渐增式测试:指逐个把未经过测试的模块组装到已经过测试

的模块上,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。其组装模块的方法有:自顶向下结合(适用于顶层模块)和自底向上结合(适用于底层模块)。

非渐增式测试:指首先对每个模块分别进行单元测试,再把

所有模块按设计要求组装在一起进行测试。

10.

确认测试:指检查软件功能和性能是否与需求规格说明书中确定的指标相符合,又称有效性测试。

用于发现需求分析阶段产生的错误,涉及软件需求规格说明书和用户手

39

册。 主要目标:检查已实现的软件是否满足需求规格说明书中确定的各种需求。 测试内容:集中于论证软件需求的可追溯性,主要包括测试软件功能和性能是否满足于软件需求一致、测试软件配置的所有程序与文档是否正确完整而且一致。 测试方法:总是用黑盒测试法。 11. 软件的测试步骤: 模块单元设计信息 测试 其他系统元素 确认 通过 三种测试与软件开发各阶段间的关系图: 需求分析 概要设计 修改 详细设计 编码 确认测试 集成测试 单元测试 软件需求 单元集成测试 确认系统 测试 单元测试 已测模块 40 已集成的软件测试 确认的软件测试 可支付的软件