如何传承王者荣耀实名制查询

以下试题来自:
单项选择题对于一个嵌套型分支结构的程序,若有4个判定语句.则要覆盖它的每一条路径至少需要的测试用例数为______。A.4个B.3个C.5个D.6个
为您推荐的考试题库
你可能感兴趣的试题
1A.语句覆盖B.条件覆盖C.路径覆盖D.条件组合覆盖2A.1B.2C.3D.4
热门相关试卷
最新相关试卷如何设计基本路径覆盖测试用例
如何设计基本路径覆盖测试用例
发布时间: 15:37:07
编辑:www.fx114.net
本篇文章主要介绍了"如何设计基本路径覆盖测试用例",主要涉及到如何设计基本路径覆盖测试用例方面的内容,对于如何设计基本路径覆盖测试用例感兴趣的同学可以参考一下。
文章转自:
前段时间公司进行有关测试的培训,集成测试,性能测试,压力测试说了很多。由于本人还处于Coder阶段,只是对单元测试有了些了解。写下来怕以后自己忘记了。都是些自己的看法,不一定准确,欢迎高手指教。一、 单元测试的概念&&&&&&&&单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入()测试函数是否功能正常,并且返回了正确的输出。&&&&&&&&测试的覆盖种类&&&&&&&&1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。&&&&&&&&2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。&&&&&&&&3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。&&&&&&&&4.判定&&条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。&&&&&&& 5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。&&&&&&&&6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。&&&&&&&&用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。二、开始测试前的准备&&&&&&&&&&&&&&&&在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。&&&所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。三、开始测试&&&&&& 基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。&&&&&&&&函数说明 :当i_flag=0;返回&& &&i_count+100&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&当i_flag=1;返回&&&i_count&&*10&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&否则& 返回&&&i_count&&*20&&&&&&&&输入参数:int i_count&,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&int i_flag&&&&&&&&输出参数: int& i_&&&&&&&&&&&&&&& &&&&&&&&代码:&&&&&&&&&
&1&&int&Test(int&i_count,&int&i_flag)&2&&&&&&&&&{&3&&&&&&&&&&&&&int&i_temp&=&1;&4&&&&&&&&&&&&&while&(i_count&0)&5&&&&&&&&&&&&&{&6&&&&&&&&&&&&&&&&&if&(0&==&i_flag)&7&&&&&&&&&&&&&&&&&{&8&&&&&&&&&&&&&&&&&&&&&i_temp&=&i_count&+&100;&9&&&&&&&&&&&&&&&&&&&&&break;10&&&&&&&&&&&&&&&&&}11&&&&&&&&&&&&&&&&&else12&&&&&&&&&&&&&&&&&{13&&&&&&&&&&&&&&&&&&&&&if&(1&==&i_flag)14&&&&&&&&&&&&&&&&&&&&&{15&&&&&&&&&&&&&&&&&&&&&&&&&i_temp&=&i_temp&*&10;16&&&&&&&&&&&&&&&&&&&&&}17&&&&&&&&&&&&&&&&&&&&&else18&&&&&&&&&&&&&&&&&&&&&{19&&&&&&&&&&&&&&&&&&&&&&&&&i_temp&=&i_temp&*&20;20&&&&&&&&&&&&&&&&&&&&&}21&&&&&&&&&&&&&&&&&}22&&&&&&&&&&&&&&&&&i_count--;23&&&&&&&&&&&&&}24&&&&&&&&&&&&&return&i_25&&&&&&&&&}
&&&&&&&&1.画出程序控制流程图&&&&&&&&&&&&图例:&&事例程序流程图:&&&&&&&&&&&&&&&&圈中的数字代表的是语句的行号,也许有人问为什么选4,6,13,8......作为结点,第2行,第3行为什么不是结点,因为选择结点是有规律的。让我们看程序中;第2行,第3行是按顺序执行下来的。直到第4行才出现了循环操作。而2,3行没有什么判断,选择等分支操作,所以我们把2,3,4全部合并成一个结点。其他的也是照这个规则合并,然后就有了上面的流程图。
&&&&&&&&&&&&2.计算圈复杂度&&&&&&&&&&&&&&&&&&&&&&&&有了图以后我们要知道到底我们有写多少个测试用例,才能满足基本路径测试。&&&&&&&&&&&&这里有有了一个新概念&&圈复杂度&&&&&&&&&&&&圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量。将该度量用于计算程序的基本独立路径数目。为确保所有语句至少执行一次的测试数量的上界。&&&&&&&&&&&&公式圈复杂度V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量。&&&&&&&&&&&&公式圈复杂度V(G)=P+1 ,P是流图G中判定结点的数量。&&&&&&&&&&&&通俗的说圈负责度就是判断单元是不是复杂,是不是好测试的标准。一般来说如果圈复杂度如果大于20就表示这个单元的可测试性不好,太复杂(也许有人觉得无所谓,但是如果你们公司实行了CMMI5的话,对这个是有规定的)。&&&&&&&&&&&&从图中我们可以看到,&&&&&&&&&&& V(G)=10条边-8结点+2=4&&&&&&&&&&&&V(G)=3个判定结点+1=4&&&&&&&&&&&&上图的圈复杂图是4。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖。&&&&&&&&&&&&3.导出程序基本路径。&&&&&&&&&&&&&&&&&&&&&&&&现在我们知道了起码要写4个测试用例,但是怎么设计这4个测试用例?&&&&&&&&&&&&导出程序基本路径,根据程序基本路径设计测试用例子。&&&&&&&&&&&&&程序基本路径:基本独立路径就是从程序的开始结点到结束可以选择任何的路径遍历,但是每条路径至少应该包含一条已定义路径不曾用到的边。(看起来不好理解,让我们看例子)。&&&&&&&&&&&&&让我们看上面的流程图:从结点4到24有几条路径呢?&&&&&&&&&&&& 1 B(4,24)&&&&&&&&&&&&&2 C,E,J(4,6,8,24)&&&&&&&&&&&& 3 C,D,F,H,A,B(4,6,13,15,22,4,24)&&&&&&&&&&&&&4 C,D,G,I,A,B(4,6,13,19,22,4,24)&&&&&&&&&&&& 还有吗??&&&&&&&&&&&& 5 C,D,C,I,A,C,E,J(4,6,13,19,22,4,6,8,24)算吗?&&&&&&&&&&&&不算,为什么?因为上面的4条路径已经包括了所有的边。第5条路径已经不包含没有用过的边了。所有的路径都遍历过了。&&&&&&&&&&&&好了,现在我们有了4条基本独立路径根据独立路径我们可以设计测试用例。&&&&&&&&&&&&1 B(4,24)&&&&&&&&&&&&输入数据:i_count=0,或者是i_count&0的某一个值。&&&&&&&&&&&&预期结果:i_temp=0.&&&&&&&&&&&&&2 C,E,J(4,6,8,24)&&&&&&&&&&&&输入数据:&i_count&=1;i_flag=0&&&&&&&&&&&&&预期结果:i_temp=101.&&&&&&&&&&&& 3 C,D,F,H,A,B(4,6,13,15,22,4,24)&&&&&&&&&&&&输入数据:&i_count&=1;i_flag=1&&&&&&&&&&&&&预期结果:i_temp=10.&&&&&&&&&&&&&4 C,D,G,I,A,B(4,6,13,19,22,4,24)&&&&&&&&&&&& 输入数据:&i_count&=1;i_flag=2&&&&&&&&&& &&&&&&&预期结果:i_temp=20.&&&&&&&&&&&&&&&&&&&&&&&&这里的输入数据是由路径和程序推论出来的。而要注意的是预期结果是从函数说明中导出,不能根据程序结构中导出。&&&&&&&&&&&&&&&&&&&&&&&&为什么这么说?&&&&&&&&&&&&让我们看程序中的第3行。&&&&&&&&&&&&int i_temp=1;假如开发人员一不小心写错了,变成了int i_temp=0;根据程序导出的预期结果就会是一个错误的值,但是单元测试不出来问题。&&&&&&&&&&&&那单元测试就失去了意义。&&&&&&&&&&&&有人也许会问这么简单的函数就有4个测试用例,如果还复杂一些的怎么办?上面的测试用例还可以简化吗?答案是可以。&&&&&&&&&&&&我们来看 路径&&&&1 B(4,24)和&&&4 C,D,G,I,A,B(4,6,13,19,22,4,24),路径1是路径4的真子集,&&&&&所以1是可以不必要的。上图的圈复杂度是4。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖。所以说圈复杂度标示是最多的测试用例个数,不是一定要4个测试用例才可以。不过有一点要申明的是测试用例越简化代表你的测试越少,这样程序的安全性就越低了。四、完成测试&&&&&&&&&&&&&&&&&&&&&&&&接下来根据测试用例使用工具测试NUNIT,VS2005都可以。&&&&&&&&&&& 接下来根据测试结果编写测试报告,测试人,时间,结果,用例,是否通过,格式网上一大把,每个公司的格式也不一样就不说了。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:

我要回帖

更多关于 王者荣耀实名制查询 的文章

 

随机推荐