软件测试学习笔记(三)控制&数据流测试

软件测试学习笔记(三)控制&数据流测试

视频链接:软件测试_中国大学MOOC

2.3 结构化覆盖
2.4 控制流测试
2.5 数据流测试

1、什么是顶点覆盖?
对每个测试需求,即可达顶点,都可从测试用例集T里找到测试用例t,对应的测试路径覆盖该顶点,测试用例集T满足顶点覆盖。
2、什么是边覆盖?
对每个测试需求,即可达边,都可从测试用例集T里找到测试用例t,对应的测试路径覆盖该边,测试用例集T满足边覆盖。
3、讨论边覆盖与顶点覆盖的关系。
满足边覆盖,即满足顶点;满足顶点覆盖不一定满足边覆盖。
4、什么是边对覆盖?
边对覆盖:边对是相邻的两条边,两条测试路径即可满足顶点覆盖和边覆盖,但不满足边对覆盖
5、什么是n路径覆盖?
是通过不同的路径,完成全部节点的覆盖
6、为什么要扩展覆盖的定义?
扩展覆盖的定义是为了提高其完整性
7、什么是蕴含?
蕴含是指:测试准则C1蕴含测试准则C2:对任意的测试用例集T,假如它满足C1,则一定满足C2。
8、结构覆盖举例
TR ={1,2,3,4,5,6,7}
TestPaths:[1,2,3,4,7][1,2,3,5,6,7]
边对覆盖subsume边覆盖,边覆盖subsume点覆盖。
9、什么是控制流图?
使用图符号表示程序执行的所有可能流转过程。顶点可以来自代码语句、语句块、函数、模块等,边用来表示代码、函数、模块之间的某种流转、跳转
10、if如何转化为控制流图?
分别将循环的不同条件分成两个路径,将对应的条件填入相应的路径,将输出的结果填入节点。
11、if-return如何转化为控制流图?
出现有多个终结点,可以构建亚结点,构建只有一个输入一个输出的图。
12、while循环如何转化为控制流图?
初始节点填入输入数据,在边上填入循环条件,不同的循环条件要分给不同的路径,还要在数据达到循环点的节点处链接循环起始节点的连线。
13、do循环如何转化为控制流图?
可以在2之后增加一个新的结点,去控制while这个条件,使得有4个结点来表示控制流
14、for循环如何转化为控制流图?
变量填入对应的节点,对应节点的边上填入循环语句以及累加等操作,此变量有关的循环条件,要注意没一个循环过程都要在控制流图中体现。
15、break、continue如何转化为控制流图?
不同的变量填入对应的节点,对应节点的边上填入循环语句和此变量有关的循环条件,要注意没一个循环过程都要在控制流图中体现。
16、witch如何转化为控制流图?
相应的switch语句可选择的没一个数据都要对应不同的路径,将switch条件填入到节点附近。
17、数据流的关注点是什么?
程序的结构性覆盖没有关注结点上是什么、结点上变量的操作是否正确。
18、数据据流里的变量有哪两种操作
(1)定义:就是把变量值塞进内存中,常见的有变量赋值、初始化等。
(2)使用:比如把某个值放在赋值语句的右边。分支、判断、循环等这些都是使用
19、三种数据流覆盖准则是什么?
(1)所有的定义覆盖:关于某个变量v在程序里的所有定义覆盖是指:它所有定义的地方,都被覆盖过一次。
(2)引用覆盖:关于某个变量v所有引用的地方都至少覆盖一次。有引用,前面一定有定义,否则就出错。当引用被覆盖时,定义也一定被覆盖
(3)所有的定义引用路径覆盖 :关于变量v在一个地方定义,在一个地方使用,特别提醒,即使是这样的情况,也可能会走出不同的路径来。对于前面所有有引用的覆盖,只要覆盖一次就行。对于最后一个覆盖准则,需要把所有的定义路径都覆盖到。
20、三种数据流覆盖有什么区别?
三种覆盖的区别是覆盖的大小不同,是由弱到强的递进关系,且第三种的测试范围包含前两种。

发布了11 篇原创文章 · 获赞 13 · 访问量 1656

猜你喜欢

转载自blog.csdn.net/DZFinder/article/details/104984773