欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

论述题3:针对以下C语言程序,请按要求回答问题下面是一个简单的C语言程序: (1)画出该函数的程序流

时间:2017-10-20

论述题3:针对以下C语言程序,请按要求回答问题

下面是一个简单的C语言程序:

(1)画出该函数的程序流程图。

(2)设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。

(3)设计特殊的测试用例,说明各种逻辑覆盖之间的关系。

答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:问题1:解答:根据源程序易得流程图如图17-7所示。 问题2:解答:经过分析不难知上面这个程序包含:1)五个语句:每行一个语句。2)三个条件:a>0;b0;c>03)四个分支:有两个if语句每个if语句有两个分支。4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件a>0和b0故有四个条件组合;条件表达式(c>0)只有一个条件c>0故有两个条件组合。所以该程序共有六个条件组合。5)四条路径:从程序的入口到出口的路径共有四条分别是:Path1: 1—2—3—5—6—8Path2: 1—2—3—5—7—8Path3: 1—2—4—5—6—8Path4: 1—2—4—5—7—8这个程序有三个输入:a、b、c其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则设计测试用例。1.语句覆盖根据语句覆盖准则只需要采用两个输入数据组合:(abc)=(111)、(-111)便可以把该程序的所有五个语句执行一遍。2.分支覆盖(判定覆盖)根据分支覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-111)便可以把该程序的所有四个分支走遍。但未考虑b0的情况故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。3.条件覆盖根据条件覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-1-11)便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真不会执行else语句即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。4.条件组合覆盖根据条件组合的覆盖准则只需要采用四个输入数据组合:(abc)=(1-11)、(111)、(-1 1-1)、(-1-1-1)便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。5.路径覆盖根据路径覆盖的准则由图17-7可见只需要采用四个输入数据组合:(abc)=(111)、(11 -1)、(-111)、(-11-1)便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。
问题1:解答:根据源程序易得流程图,如图17-7所示。 问题2:解答:经过分析不难知,上面这个程序包含:1)五个语句:每行一个语句。2)三个条件:a>0;b0;c>03)四个分支:有两个if语句,每个if语句有两个分支。4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件,a>0和b0,故有四个条件组合;条件表达式(c>0)只有一个条件c>0,故有两个条件组合。所以该程序共有六个条件组合。5)四条路径:从程序的入口到出口的路径共有四条,分别是:Path1: 1—2—3—5—6—8Path2: 1—2—3—5—7—8Path3: 1—2—4—5—6—8Path4: 1—2—4—5—7—8这个程序有三个输入:a、b、c,其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则,设计测试用例。1.语句覆盖根据语句覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,1)、(-1,1,1),便可以把该程序的所有五个语句执行一遍。2.分支覆盖(判定覆盖)根据分支覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,1,1),便可以把该程序的所有四个分支走遍。但未考虑b0的情况,故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。3.条件覆盖根据条件覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,-1,1),便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真,不会执行else语句,即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。4.条件组合覆盖根据条件组合的覆盖准则只需要采用四个输入数据组合:(a,b,c)=(1,-1,1)、(1,1,1)、(-1, 1,-1)、(-1,-1,-1),便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个,故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。5.路径覆盖根据路径覆盖的准则,由图17-7可见,只需要采用四个输入数据组合:(a,b,c)=(1,1,1)、(1,1, -1)、(-1,1,1)、(-1,1,-1),便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。 解析:首先根据源程序画出程序流图比较容易,然后分析学过的所有的逻辑覆盖(如语句覆盖,分支覆盖,路径覆盖等),分析针对每种逻辑覆盖的标准来设计测试用例,最后通过设计测试用例来体现各种逻辑覆盖之间的关系。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。