【计算机类职业资格】代码检查、走查与评审、覆盖率(白盒)测试及答案解析.doc
《【计算机类职业资格】代码检查、走查与评审、覆盖率(白盒)测试及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】代码检查、走查与评审、覆盖率(白盒)测试及答案解析.doc(33页珍藏版)》请在麦多课文档分享上搜索。
1、代码检查、走查与评审、覆盖率(白盒)测试及答案解析(总分:108.00,做题时间:90 分钟)一、选择题(总题数:39,分数:39.00)1.以下叙述中正确的是_。(分数:1.00)A.可跟踪性分析是在整体上分析整个资源的分配策略B.关键性分析是标识原始需求和相应开发结果之间关系的能力C.接口分析必须关注 3种接口:用户接口、硬件接口和软件接口D.评估权在软件开发的最后阶段进行,以确认产品是否符合规格说明2.走查是对软件进行静态测试的一种方法,以下不属于走查活动的是_。(分数:1.00)A.计划走查会议B.准备测试用例C.执行走查以发现和改正错误D.在走查过程中程序员逐渐讲解自己的程序3.检查
2、是否存在“已定义但未使用”的变量引用异常应属于_。(分数:1.00)A.静态分析B.动态分析C.代码执行D.调试4.软件静态分析一般包括:控制流分析、数据流分析、接口分析,以及_。(分数:1.00)A.表达式分析B.功能分析C.边界值分析D.因果图分析5.在程序测试中,用于检查程序模块或子程序之间的调用是否正确的静态分析方法是_。(分数:1.00)A.操作性分析B.可靠性分析C.引用分析D.接口分析6.下列引用表,不能直接从表中查出说明/使用错误的是_。(分数:1.00)A.循环层次表B.等价表C.变量交叉引用表D.标号交叉引用表7.程序的静态错误分析和设计分析共同研究的题目是_。(分数:1.
3、00)A.接口一致性B.表达式分析C.引用分析D.类型和单位分析8.下列关于代码检查说法正确的是_。 代码检查过程的目的是发现错误,而不是纠正错误 程序员通常可以通过代码检查得到编程风格、算法选择及编程技术等方面的反馈信息 代码检查是早期发现程序中最易出错部分的方法之一(分数:1.00)A.B.C.D.都是9.以下关于人工检查方法叙述正确的是_。(分数:1.00)A.走查的主要工作是由程序编写者本人来完成的B.代码检查是对程序进行模拟,一步一步地展示程序如何处理由检查人员提供的测试数据C.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法D.桌上检查是以小组为单位进行检查程序的10
4、.评审方法有很多,其中最便宜的评审方法是_。(分数:1.00)A.轮查B.结对评审C.小组评审D.走查11.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法,它主要分为管理评审、技术评审、过程评审和_。(分数:1.00)A.程序评审B.数据评审C.组织体系评审D.文档评审12.下列不属于人工测试方法的是_。(分数:1.00)A.单元测试B.桌上检查C.同行评审D.走查13.在代码检查中,讲解员的最佳人选是_。(分数:1.00)A.检查人员B.程序或文档的编写者C.程序或文档的测试者D.会议主持人员14.下列不属于表达式分析的是_。(分数:1.00)A.数组下标越界B.形参和实参类
5、型的一致性C.除式为零D.表达式中不正确使用括号15.代码检查的作用是_。(分数:1.00)A.发现程序中的缺陷和错误B.程序员会得到编程风格、算法选择及编程技术等反馈信息C.可以在早期发现程序中最易出错的部分D.以上全部16.用于代码检查的错误列表有_。(分数:1.00)A.数据引用或声明错误B.运算、比较错误C.控制流、接口、输入/输出错误D.以上全部17.在走查的过程中,参加审查的人员中,程序编写者有_。(分数:1.00)A.1个B.2个C.多于 2个D.不确定18.在走查的第一步计划走查会议中,下列活动不属于协调人完成的是_。(分数:1.00)A.选择一名或多名人员组成走查小组B.为审
6、查程序准备测试用例C.分发所有必需的材料给审查人员D.安排走查会议时间和地点19.负责在走查期间做出所有说明,包括发现的问题、样式方面错误、遗漏、矛盾、改进意见等,该角色应该是。(分数:1.00)A.协调人B.走查小组秘书C.测试员D.记录员20.以小组形式进行,小组成员集体扮演计算机角色检查源程序的方法是_。(分数:1.00)A.评审B.代码检查C.走查D.轮查21.在一个正式的评审活动小组中,职责是确保即将评审的文件已经准备好,这个角色是_。(分数:1.00)A.评审组长B.作者C.读者D.评审秘书22.管理评审主要是评价管理体系的_。(分数:1.00)A.适应性B.充分性C.有效性D.以
7、上全部23.技术评审分为正式和非正式两种,通常由技术负责人制度详细地评审计划,包括_。(分数:1.00)A.评审时间B.对所需文件的定义C.评审地点D.以上全部24.在软件开发过程中,需要的文档评审有_。(分数:1.00)A.需求文档评审B.软件设计文档评审C.代码评审和质量验证文档评审D.以上全部25.过程评审的目标是_。(分数:1.00)A.评估主要的质量保证代码B.总结和共享好的经验C.指出进一步完善和改进的部分D.以上全部26.有一种评审方法是有计划和结构化的、非常接近于最正式的评审技术,它是_。(分数:1.00)A.小组评审B.正式评审C.结对评审D.走查27.对于核心代码的评审最好
8、是_。(分数:1.00)A.结对评审B.走查C.正式评审D.分配检查方法28.如果程序通过了 100%的代码覆盖率测试,则说明程序满足了_。(分数:1.00)A.语句覆盖B.编程规范C.设计规格D.功能需求29.设有一段程序如下: if(a=b) and (c=d) or (e=f)do S1 else if(p=q) or (s=t) do S2 else do S3 满足判定/条件覆盖的要求下,最少的测试用例数目是_。(分数:1.00)A.6B.8C.3D.430.在以下有关逻辑覆盖的说法中错误的是_。(分数:1.00)A.所有满足条件组合覆盖标准的测试用例集,也满足路径覆盖的覆盖标准B.
9、条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求C.路径覆盖的差错能力很强,但有时达不到条件组合覆盖的覆盖率要求D.判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查出来31.对于具有串联型分支结构的程序,如果有 7个判断语句串联,则使用正交实验设计法,至少需要的测试用例数应为_。(分数:1.00)A.23B.24C.26D.2732.下列指导选择和使用测试覆盖率的原则中错误的是_。(分数:1.00)A.覆盖率不是目的,仅是一种手段B.不要追求绝对 100%的覆盖率C.不可能针对所有的覆盖率指标来选择测试用例D.只根据测试覆盖率指标来指导测试用例的设计33.覆盖率对软件
10、测试有非常重要的作用,下列关于覆盖率说法正确的是_。(分数:1.00)A.覆盖率是用于度量测试完整性的一个手段,覆盖率可以分为逻辑覆盖和功能覆盖两种B.为了测试的完整性,我们在测试时通常要针对所有的覆盖率指标进行测试C.路径覆盖是最强的覆盖,故达到路径覆盖的测试用例一定满足判定/条件覆盖D.为了测试更充分,我们通常要求测试用例能达到 100%的覆盖率34.如果一个判定中的复合条件表达式为(A1)or(B=3),则为了达到 100%的判定覆盖率,至少需要设计多少个测试用例_。(分数:1.00)A.1个B.2个C.3个D.4个35.路径覆盖必定也满足_。(分数:1.00)A.语句覆盖B.条件覆盖C
11、.判定覆盖D.条件组合覆盖36.以下关于逻辑覆盖的叙述中正确的是_。(分数:1.00)A.对所有代码达到 100%的语句覆盖率是不现实的B.测试用例满足条件覆盖则必定满足判定覆盖C.语句覆盖是测试完整性方面很好的度量方法D.条件/判定覆盖是一个比判定覆盖和条件覆盖更强的覆盖37.下列语句中既可以作为定义节点,同时还可以作为使用节点的是_。(分数:1.00)A.输入语句B.输出语句C.赋值语句D.条件语句38.下列几种逻辑覆盖标准中,设计足够的测试用例,运行被测程序,使得程序中所有可能的路径至少执行一次,称为_。(分数:1.00)A.判定覆盖B.条件覆盖C.语句覆盖D.路径覆盖39.程序流程如下
12、图所示,要覆盖程序中所有可能的路径,所需测试用例数至少是_。 (分数:1.00)A.3个B.5个C.15个D.30个二、论述题(总题数:7,分数:69.00)已知 C源程序如下: /* Input today“s date, output tomorrow“s date */ /* version 2 */ #include stdio.h struct ydate int day; int month; int year; ; int leap(struct ydate d) if(d.year%4=0 else return 0; int numdays(struct ydate d) i
13、nt day; static int daytab= 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; if(leap (d) else day=daytabd.month-1; return day; int main(void) struct ydate today, tomorrow; printf(“format of date is: year, month, day 输入的年、月、日之间应用逗号隔开/n“); printf(“today is: “); scanf(“%d, %d, %d“, while(0=today.year|tod
14、ay.year65535 | 0=today.month | today.month12)| 0=today.day | today.daynumdays(today) printf(“input date error! reenter the day!/n“); printf(“today is :“); scanf(“%d, %d, %d“, if(today.day!=numdays(today) tomorrow.year=today.year; tomorrow.month=today.month; tomorrow.day=today.day+1; else if(today.mo
15、nth=12) tomorrow.year=today.year+1; tomorrow.month=1; tomorrow.day=1; else tomorrow.year=today.year; tomorrow.month=today.month+1; tomorrow.day=1; printf(“tomorrow is :%d,%d,%d/n/n“, tomorrow.year,tomorrow.month, tomorrow.day); (分数:10.00)(1).画出程序中所有函数的控制流程图。(分数:5.00)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖
16、率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,则说明为什么。(分数:5.00)_已知 C源程序如下: #includestdio.h #includestring.h void reverse(char s) int c, i, j; for(i=0, j=strlen(s)-1; ij; i+, j+) c=si; si=sj; sj=c; void getHex(int number, char s) int I; i=0; while(number0) if(number%1610) si+=number%16+“0“; else switch(number%
17、16) case 10:si+=“A“; break; case 11:si+=“B“; break; case 12:si+=“C“; break; case 13:si+=“D“; break; case 14:si+=“E“; break; case 15:si+=“F“; break; default: printf(“Error“); break; number/=16; si=“/0“; reverse(s); int msin() unsigned int number; int i=0; char s50; printf(“%s“, “please input number:/
18、n“); scanf(“%d“, getHex(number, s); i=0; while(si) printf(“%c“, si+); return 0; (分数:10.00)(1).画出程序中所有函数的控制流程图。(分数:5.00)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句覆盖率或分支率无法达到 100%,则说明为什么。(分数:5.00)_已知 C源程序如下: /* 一个使用结构体数组的简单地址列表 */ #includestdion.h #includestdlib.h define MAX 4 struct addr
19、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(); /* 初始化结构体数组 */ for(;) choice=menu select (); switch (choice) case 1: en
20、ter(); break; case 2: deleteAddr(); break; case 3: list(); break; case 4: exit(0); return 0; /*初始化列表*、 void init list(void) register int t; for (t=0; tMAX; +t) addr_list t.name 0 =/0; /*获取菜单选择*/ int menu select (void) char s80; int c; printf(“1. Enter a name/n“); printf(“2. Delete a name/n“); printf
21、(“3. List the filekn“); printf(“4. Quitkn“); do printf(“/nEnter your choice:“); gets (s); c=atoi (s); while(c1 | c4); return c; /*增加地址*/ void enter (void) int slot; char s80; slot=find free(); if (slot=-1) printf(“/nList Full“); return; printf(“Enter name:“); gets(addr listslot.name); printf(“Enter
22、street:“); gets(addr listslot.street); printf(“Enter city:“); gets(addr listslot.city); printf(“Enter zip:“); gets (s); addr listslot.zip = strtoul(s, /0, 10); /*查找未用结构*/ int find free (void) register int t; for(t=0; addr listt.name0 +t); if(t=MAX) return-1; /* no slots free */ return t; /*删除地址*/ vo
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 代码 检查 评审 覆盖率 测试 答案 解析 DOC
