[2-1]图覆盖标准

  1. 一个有效的图应该具备:

①节点结合N,N不为空 ②初始节点集合N0,N0不为空③终点集合Nf,Nf不为空④边集合E,E⊆N×N,E不要求非空,如下:

  1. 图中的路径

①Path:节点序列集合:【n1,n2,n3……】

②Length:边的数量,一个单节点是长度为0的路径

③子路径:p的节点序列是q的子集,则p是q的子路径

  1. Syntatic reach(语法可达)和Semantic reach(语义可达的区别):语法可达,当前节点的Reach(n)涵盖了目标节点,则目标节点可达,Reach(n)为从n可达节点结合;语义可达要求存在一条测试路径能够执行该路径。

  1. 路径和测试路径的区别:测试路径要求从起始点开始,在终点结束,代表了测试用例的执行,而路径无此要求。

SESE graphs:所有的测试路径从一个节点开始在另一个节点结束,单入单出,初始和终止节点只存在一个。

  1. Visit和Tour的区别:

Vist:一个测试路径p vist 节点n,如果n在测试路径当中;一个测试路径p visit 边e 如果e在p当中;

Tour:一个测试路径p tour q 如果q是p的一个子路径,例子如下:

  1. path(t): 执行测试用例t的测试路径;path(T):执行测试集合T的测试路径集合。

△对于一个确定性的图来说,每个测试用例执行且只执行一条测试路径;完全执行是指从起始点开始到终止点结束。

  1. 测试用例和测试路径之间的关系:

①many-to-one ②many-to-many

  1. 设计图覆盖标准的角度:

Satisfaction(完善性):

Given a set TR of test requirements for a criterion C, a set of tests T satisfies C on a graph if and only if for every test requirement in TR, there is a test path in path(T) that meets the test requirement tr (简单来说就是给定标准设计了若干测试需求,一个测试集合满足了测试需求,且每条测试用例都是在图上的测试路径)

-Structural Coverage Criteria(结构覆盖标准):覆盖了所有的节点和边

-Data Flow Coverage Criteria(数据流覆盖标准):主要关注数据流之间的关系和操作

  1. 几种结构覆盖标准:

①Node Coverage(NC,节点覆盖):要求图中的每个节点都被执行

②Edge Coverage(EC,边覆盖):要求每个边都要被执行

△NC和EC的区别以及什么情况下测试需求不同:

一般来说,EC测试标准比NC测试标准强,比如对于常见的具有分支的结构:

但是,对于一个只有一个节点的图来说,具有NC覆盖,EC覆盖为空,但是EC覆盖对于单节点也是必须的,EC覆盖的标准即使需要满足NC覆盖,这种情况我们定义了"length up to 1",同理对于Edge-Pair标准存在"length up to 2"。

③Edge-Pair Coverage(EPC,边对覆盖标准):包含了G中所有长度为2的可达路径,对于特殊的但长度定义了"length up to 2"。

④Complete Path Coverage(CPC,完全覆盖标准):TR包含了图中所有的测试路径

△当一个图中存在环(loop),该标准是不可能满足的

⑤Specified Path Coverage(SPC,特定路径测试标准)TR包含了特殊测试路径中的所有测试路径,S作为参数给出。

⑥Prime Path Coverage(PPC,主路径覆盖):TR包含了所有的主路径

提出原因:为了解决CPC存在环难以满足和SPC需要测试者给出S太过主观的弊端

Simple Path(简单路径): A path from node ni to nj is simple if no node appears more than once,except possibly the first and last are the same。(除去起始节点和终止节点相同,路径中所有的节点不会出现两次)

Prime Path(主路径):A simple path that does not appear as a proper subpath of any other simple path(简单路径中,不是任何路径子路径的路径)

△PPC在什么情况下不包含EPC:

当一个节点有指向自己的边的时候,如下:

  1. 如何分析出图中的主路径:

①写出所有简单路径筛选

②分别写出长度为0,为1,为2直到为n的路径,找出主路径

  1. sidetrip(侧访/经旁)和detour(绕道)的区别是什么?

Tour:A test path p tours subpath q if q is a subpath of p

Tour with sidetrips:A test path p tours subpath q with sidetrips if every edge in q is also in p in the same order

Tour with Detours: A test path p tours subpath q with detours if every node in q is also in p in the same order.

  1. 为什么要定义侧访和绕路:

当侧访不被允许,许多结构化覆盖标准会有很多不可行的测试需求,但是当侧访总被允许又会削弱测试标准。

Best Effort Touring:

思想:

让测试需求在没有侧访情况下尽可能多的满足测试需求,用侧访满足剩下的测试需求。

  1. Round Trips: A prime path that starts and ends at the same node

(1)Simple Round Trip Coverage(SRTC):TR包含至少一条G中的round-trip

(2)Complete Round Trip Coverage(CRTC):TR包含G中的所有可达的round-trip

  1. Data Flow Criteria

目标:确保所有的变量都被正确使用和计算

①Definition(def):变量的值被存储进Memory的位置

②Use:变量值被访问的位置

例子如下:

  1. DU Pair 和 DU Path

①DU Pair: A pair of locations(Ii,Ij) such that a variable v is defined at Ii and used at Ij。(定义使用对)

②Def-clear: A path from Ii to Ij is def-clear with respect to variable v if v is not given another value on any of the nodes or edges in the path(未改变定义值的路径)

③Reach: if there is a def-cear path from Ii to Ij with respeact to v, the def of v at Ii reaches the use at Ij。(最远达到未改的值)

④du-path: A simple subpath that is def-clear with respeact to v from a def of v to a use of v

⑤du(ni,nj,v)-the set of du-paths from ni to nj

⑥du(ni,v)-the set of du-paths that start at ni

16.Touring DU-Paths: A test path p du-tours subpath d with respeact to v if p tours p and the subpath taken is def-clear with respect to v.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值