一种结构测试,被测对象是源程序,以程序的内部逻辑为基础设计测试用例。
4. 逻辑覆盖是白盒法设计测试用例的技术,根据程序内部逻辑覆盖程度设计测试用
例。要求设计的测试用路覆盖程度高或覆盖最具代表性的路径。按逻辑覆盖程度不同,分为:
语句覆盖:设计足够的测试用例,是被测程序中每个语句至少执行一次。 判定覆盖:设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”
或“假”值,从而使程序的每个分支都通过一次。也叫分支覆盖。
条件覆盖:设计足够的测试用例,使判定表达式中的每个条件的各种可能的值至少出现一次。
判定/条件覆盖:设计足够的测试用例,使得判定表达式中的每个条件的所有可能取
值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
条件组合覆盖:设计足够的测试用例,使得每个判定表达式中条件的各种可能的值
的组合都至少出现一次。
路径覆盖:设计足够的测试用例,覆盖被测程序中所有可能的路径。
它们的区别在于:逻辑覆盖程度不同、发现错误能力强弱不同、关注点不同、执行路径情况不同。
5. 黑盒测试是把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处
理过程,只在软
件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称功能测试或称数据驱动测试。其测试用例设计技术包括等价类划分、边界值分析、错误推测和因果图。
37
等价类划分:只用输入信息设计测试用例。优点是用少量有代表性的例子代替大量测
试目标的系统的例子,提高测试效率。缺点是不注意选择某些高效的、能发现更多错误的测试用例,孤立考虑各个输入数据的测试功能,没考虑多个输入数据的组合引起的错误。
边界值分析:一般和等价类划分结合,将测试边界情况作为重点,考虑输入、输出数
据的边界情况。优点是边界情况检查比较高效,可查出更多错误。缺点是孤立考虑各个输入数据的测试功能,没有考虑多个输入数据的组合引起的错误。
错误推测:没有确定步骤,根据经验和知觉设计测试用例。
因果图:通过画因果图,把用自然语言描述的功能说明转换成判定表,最后为判定表
的每一列设计测试用例。优点是有效检测输入条件的各种组合可能引起的错误。
6. 用白盒法或黑盒法设计测试用例各有所长,关键是测试用例的选择。实际测试中,
先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。
7. 软件测试是一个规则的过程,包括测试设计、测试执行、测试结果比较等。 8. 单元测试:指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规
定的功能,从而发现模块在编码或算法中的错误。涉及编码和详细设计文档。
主要目标:检查各个模块是否正确实现规定功能,发现模块在编码中或
算法中的错误。
测试内容:集中于单个模块的功能和结构检测,包括模块接口、局部数
据结构、重要
38
执行路径、错误处理、边界检测。
测试方法:总使用白盒测试法,为被测模块设计驱动模块和桩模块。
9. 集成测试:指在单元测试基础上,将所有模块按照设计要求组装成一个完整的系统
进行的测试,也称组装测试或联合测试。需要考察模块间接口和各模块间的联系。主要用于发现设计阶段产生的错误,涉及详细设计文档和概要设计文档。
主要目标:检查和设计相关的软件体系结构的有关问题。