根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖 、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修改条件判定覆盖、组合覆盖和路径覆盖。
1.3面向对象的覆盖
面向对象的覆盖主要讨论继承上下文覆盖和基于状态的上下文覆盖。
1.4测试覆盖准则
测试覆盖准则主要讨论(ESTCA)错误敏感测试用例分析和(LCSAJ)线性代码序列与跳转。
(1)ESTCA覆盖准则
(2)现行代码序列与跳转LCSAJ线性代码序列与条状LCSAJ是指一组顺序执行的代码,以控制流跳转为结束点。可产生4层覆盖
②、插桩技术
插桩测试是一个被广泛应用的测试方法。插桩测试就是向源程序中插入语句然后执行程序,通过打印语句,获得动态信息(我们最为关心的信息)
③、基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
重点内容如下:
程序的控制流图:描述程序控制流的一种图示方法。
程序环形复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
3.1程序控制流图
程序控制流图(可简称流图)是对程序流程图进行简化后得到的,它突出表示程序控
制流的结构。程序控制流图是描述程序控制流的一种方式。控制流图图形符号;
图形符号:圆圈代表一个结点, 表示一个或多个无分支的语句或源程序语句;
程序控制流边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域;
判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断。
基本路径测试方法是在控制流图的基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集,再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤:
3.1.1画出程序的控制流图。
3.1.2计算程序的环形复杂度,导出程序基本路径集中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
3.1.3导出基本路径集,确定程序的独立路径。
3.1.4根据③中的独立路径,设计测试用例的输入数据和预期输出。
④、域测试法
域测试是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择测试点进行测试。主要为:
4.1域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误;
4.2 计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误;
4.3丢失路径错误:由于程序中的某处少了一个判定谓词而引起的丢失路径错误
⑤、符号测试
符号测试基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式
5.1符号测试执行的是代数运算,可以作为普通测试的一个扩充;
5.2符号测试可以看作是程序测试和程序验证的一个折衷办法;
5.3 符号测试程序中仅有有限的几条执行路径;
⑥、Z路径覆盖法
分析程序中的路径是指检验程序从入口开始,执行过程中经历的各个语句,直到出口。
Z路径覆盖对循环机制进行简化,减少路径的数量,使得覆盖所有路径成为可能,简化循环意义下的路径覆盖称为Z路径覆盖;
循环简化:限制循环次数,只考虑循环一次或零次情况;