【计算机类职业资格】覆盖率(白盒)测试(三)及答案解析.doc
《【计算机类职业资格】覆盖率(白盒)测试(三)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】覆盖率(白盒)测试(三)及答案解析.doc(39页珍藏版)》请在麦多课文档分享上搜索。
1、覆盖率(白盒)测试(三)及答案解析(总分:94.50,做题时间:90 分钟)一、B选择题/B(总题数:21,分数:42.00)1.如果程序通过了 100%的代码覆盖率测试,则说明程序满足了_。 A.语句覆盖 B.编程规范 C.设计规格 D.功能需求(分数:2.00)A.B.C.D.2.下面有关逻辑覆盖的说法中错误的是_。 A.DDP 覆盖是判定覆盖的一个变体 B.满足条件覆盖一定也满足判定覆盖 C.指令块覆盖属于语句覆盖 D.若判定覆盖率达到 100%,则语句覆盖率一定也达到 100%(分数:2.00)A.B.C.D.3.设有一段程序如下:if(a=b)and(c=d)or(e=f)do S1
2、else if(p=q)or(s=t)do S2else do S3满足判定/条件覆盖的要求下,最少的测试用例数目是_。 A.6 B.8 C.3 D.4(分数:2.00)A.B.C.D.4.下列关于逻辑覆盖的说法中,错误的是_。 A.满足条件覆盖的测试不一定满足判定覆盖 B.满足条件组合覆盖的测试一定满足判定覆盖、条件覆盖和判定/条件覆盖 C.满足路径覆盖的测试也一定满足条件组合覆盖 D.满足判定/条件覆盖的测试也一定满足判定覆盖和条件覆盖(分数:2.00)A.B.C.D.5.有一个判断语句:if(!(ch=0else printf(“This is a digit!/n“);为实现判定一条件
3、覆盖,需要设计的测试用例个数至少应为_。 A.1 B.2 C.3 D.4(分数:2.00)A.B.C.D.6.下图是一个判定路径覆盖图,其中用“ ”表示判定语句,用“ ”表示处理语句,用“”表示判定汇合点,用“ ”表示判定路径,若有一个测试用例覆盖了判定路径 A、B、E、H,则判定路径覆盖率为_。(分数:2.00)A.B.C.D.7.下面有关路径测试的叙述中,错误的是_。 A.路径覆盖是最强的覆盖测试,它不但能发现其他覆盖测试能发现的问题,还能发现其他覆盖测试不能发现的问题 B.测试员不可能对任何一个程序都完成 100%的路径测试 C.不提倡用不同的数据重复测试同一条路径 D.即使每条路径都执
4、行了一次,程序还是可能存在缺陷(分数:2.00)A.B.C.D.8.对于如下给出的程序段:if(AB)and(C=5)then d P1;若考虑满足条件/判定覆盖原则以及内部边界条件,需要设计的最小测试输入数据集可能是_。 A.(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2,C=5),(A=1,B=1,C=5) B.(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2,C=5),(A=1,B=2,C=4) C.(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2,C=5) D.(A=2,B=1,C=5),(A=1,B=2,C=4
5、)(分数:2.00)A.B.C.D.9.条件覆盖的基本思想是设计若干测试用例,执行被测程序,使得每个判断的每个条件的可能取值至少满足一次。那么对于如下 C 语言程序段:if(a0if(a1|c1)c=c+1;如果采用适用于条件覆盖的两个测试用例,其输入值分别为 a=2,b=-1,c=-2 和 a=-1,b=2,c=3,则以下叙述中正确的是_。 A.执行测试后,4 个条件 a0,b0,a1,c1 的所有取值都至少执行一次 B.执行测试后,除 b0 取真和 c1 取假外其他条件取值都至少执行一次 C.执行测试后,除 b0 取假和 c1 取真外其他条件取值都至少执行一次 D.执行测试后,出 b0 取
6、真和 c1 取真外其他条件取值都至少执行一次(分数:2.00)A.B.C.D.10.如果程序中有两个判定条件,其复合条件表达式分别为(a=3)and(b=6)和(a0)or(c2),则为了达到 100%的判定覆盖率,至少需要设计的测试用例个数为_。 A.1 B.2 C.3 D.4(分数:2.00)A.B.C.D.11.如果执行下面的 C 程序,并做了成功的存储分配:char * pBuf=NULL;pBuf=(char *)malloc(100);if(pBuf=NULL) printf (“Not Enough Memory/n“);return 1;则此段程序测试的指令块(即顺序执行的一段
7、指令)覆盖率是_。 A.100% B.60% C.50% D.40%(分数:2.00)A.B.C.D.12.对于如下 C 语言程序段:if(a0if(a1|c1)c=c+1;执行条件组合覆盖,为使得每一条件取值组合至少执行一次,需要的测试用例数至少是_。 A.2 B.3 C.4 D.5(分数:2.00)A.B.C.D.13.对于具有串联型分支结构的程序,如果有七个判断语句串联,则使用正交实验设计法,至少需要的测试用例数应为_。 A.23 B.24 C.26 D.27(分数:2.00)A.B.C.D.14.对于一个嵌套型分支结构的程序,若有 4 个判定语句,则要覆盖它的每一条路径至少需要的测试用
8、例数为_。 A.4 个 B.3 个 C.5 个 D.6 个(分数:2.00)A.B.C.D.15.如果一个小程序中有一个由 8 个两分支判断组成的连锁分支结构,如下图所示:(分数:2.00)A.B.C.D.16.对于具有串联型分支结构的程序,若有 4 个判定语句,则采用正交实验设计法,至少需要的测试用例数应为_。 A.4 个 B.16 个 C.8 个 D.5 个(分数:2.00)A.B.C.D.17.下列属于变量异常的是_。 A.变量被定义,但没有被使用 B.所使用的变量未被定义 C.变量在使用前被重复定义 D.以上全部(分数:2.00)A.B.C.D.18.关于数据流测试,说法正确的是_。
9、A.数据流测试是一种路径测试 B.执行定义结点不会改变变量在存储单元中的内容 C.执行使用结点会改变变量在存储单元中的内容 D.定义/使用路径往往不是存在潜在错误的地方(分数:2.00)A.B.C.D.19.下列语句通常不是作为定义结点的是_。 A.输入语句 B.输出语句 C.赋值语句 D.过程调用语句(分数:2.00)A.B.C.D.20.下列指导选择和使用测试覆盖率的原则中错误的是_。 A.覆盖率不是目的,仅是一种手段 B.不要追求绝对 100%的覆盖率 C.不可能针对所有的覆盖率指标来选择测试用例 D.只根据测试覆盖率指标来指导测试用例的设计(分数:2.00)A.B.C.D.21.程序的
10、流程图如下图所示,采用路径覆盖法进行测试,则至少需要几个测试用例可以覆盖所有可能的路径_。(分数:2.00)A.B.C.D.二、B论述题/B(总题数:7,分数:52.50)已知检查括号匹配及注释、字符串处理的 C 源程序如下:#include stdio.hint brace, brack, paren;void in_quote(int c);void in_comment(void)void search(int c)/* rudimentary syntax checker for C program */int main()Int c;extern int brace, brack,
11、paren;while(c=getchar()!=EOF)if(c=/)if(c=getchar()=*)in_comment(); /* inside comment */elsesearch(c);else if(c=“|c=“ “)in_quote(c); /* inside quote */elsesearch(c);if(brace0) /* output errors */printf(“Unbalanced braces/n“);brace=0;else if(brack0)printf(“Unbalanced brackets/n“);brack=0;else if (pare
12、n0)printf(“Unbalanced parentheses/n“);paren=0;if(brace0) /* output errors */printf(“Unbalanced braees/n“);if(brack0)printf(“Unbalanced brackets/n“);if(paren0)printf(“Unbalanced parentheses/n“);return 0;/* search: search for rudimentary syntax errors */void seareh(int c)extern int brace, brack, paren
13、; if(c=)+brace;else if(c=)-brace;else if(c=)+brack;else if(c=)-brack;else if(c=()+paren;else if(c=)-paren;/* in_comment: inside of a valid comment */Void in_comment(void)int c, d;c=getchar();d=getchar(); /* curr character */while(c!=*|d!=/) /* search for end */c=dd=getchar();/* in_quote; inside quot
14、e */void in_quote(int c)int d;while(d=getchar()!=c) /* search end quote */if(d=/)getchar(); /* ignore escape seq */(分数:7.00)(1).画出程序中 main 函数的控制流程图;(分数:3.50)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到 100%,需说明为什么。(分数:3.50)_已知 C 源程序如下:/* A simple mailing list example using an
15、array of structures. */include stdion.hinclude stdlib.hdefine MAX 4struct addr char name30;char street40;char city20;unsigned long int zip; addr_listMAX;void init_list(void), enter(void);void deleteAddr(void), list(void)int menu_select(void), find free(void);int main(void)char choice;init_list();/*
16、initialize the structure array */for(;) choice=menu_select();switch(choice) case 1; enter();break;case 2:deleteAddr();breakcase 3: list();break;case 4: exit(0);return 0;/* Initialize the list. */void init_list(void)register int t;for(t=0; tMAX; +t)addr_listt.name0=/0;/* Get a menu selection. */int m
17、enu_select(void)char s80;int c;printf(“1. Enter a name/n“);printf(“2. Delete a name/n“);printf(“3. List the file/n“);printf(“4. Quit/n“);do printf(“/nEnter your choice:“);gets(s);c=atoi(s);while(c1|c4);return c;/* Input addresses into the list. */void enter(void)int slot;char s80;slot=find_free();if
18、(slot=-1)printf(“/nList Full“);return;printf(“Enter name:“);gets(addr_listslot.name);printf(“Enter street:“);gets(addr_listslot.street);printf(“Enter city:“);gets(addr_listslot.city);printf(“Enter zip:“);gets(s);addr_listslot.zip=strtoul(s, /0,10);/* Find anunused structure. */int find_free(void)reg
19、ister int t;for(t=0; addr_listt, name0 +t);if(t=MAX) return-1; /* no slots free */return t;/* Delete an address. */void deleteAddr(void)register int slot;char s80;printf(“enter record #:“);gets(s);slot=atoi(s);if(slot=0 /* Display the list on the screen. */void list(void)register int t;for(t=0; tMAX
20、; +t)if(addr_listt.name0) printf(“% s/n“, addr_listt.name);printf(“% s/n“, addr_listt.street);printf(“% s/n“, addr_listt.city);printf(“% lu/n/n“, addr_listt, zip); printf(“/n/ n“);(分数:7.00)(1).画出 main 函数的控制流程图;(分数:3.50)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率尽量达到 100%。如果认为该程序的语句覆盖率无法达到 100%,需说明原因。(分数:3.50)_已知 C
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 覆盖率 测试 答案 解析 DOC
