首页
登录
从业资格
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之
最全题库
2022-08-02
107
问题
阅读下列说明,回答问题。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。int XOR(char * filename,unsigned long key){ FILE * input = NULL , *output =NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.')&& (filename[len-1] == 'c') ) { //2,3 outfilename = new char[len+1]; //4 strcpy(outfilename, filename); outfilename[len-2] = '\0'; } else{ //5 outfilename = new char[len+5]; strcpy(outfilename, filename); strncat(outfilename,".c",2); } input =fopen(filename,"rb"); if( input == NULL) { //6 cout << "Error opening file " << filename << endl; //7 delete [] outfilename; outfilename = NULL; return 1; } output =fopen(outfilename,"wb"); if( output == NULL ) { //8 cout << "Error creating output file " << outfilename << endl; //9 delete [] outfilename; outfilename = NULL; return 1; } while( ! feof(input) ) { //10 if(fread(&buffer,sizeof(unsigned char),1,input) != 1 ) { //11 if( ! feof(input) ) { //12 delete [] outfilename; //13 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite(&buffer,sizeof(unsigned char),1,output); } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.
选项
答案
解析
环路复杂度V(G)=8。
本问题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if( (filename[len-2]=='.')&&(filename[len-1]=='c') )这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为7,所以V(G)=8。
转载请注明原文地址:https://tihaiku.com/congyezige/2416170.html
本试题收录于:
中级 软件评测师题库软件水平考试初中高级分类
中级 软件评测师
软件水平考试初中高级
相关试题推荐
在面向对象方法中,()是一种信息隐蔽技术,其目的是使对象的使用者和生产者分离,
许多大型企业的数据中心,为了解决存储扩张和管理难度增大的问题,采用了存储虚拟化技
在高级程序设计语言中,对程序员来说,数据类型限定了()。A.变量的值域和操作
以下关于单元测试叙述中,不正确的是()。A.侧重于检查模块中的内部处理逻辑和数
在面向对象方法中,()定义了超类和子类的概念,子类在原有父类接口的前提下,用适
以下关于程序员职业素养的叙述中,不正确的是()。A.面对程序中出现的问题,采用
以下关于结构化方法的叙述中,不正确的是()。A.指导思想是自顶向下、逐层分解
在有些程序设计语言中,一个给定的过程调用和响应调用需执行的代码的结合是在编译时进
在面向对象方法中,对象之间通过发送()进行通信,当其发送给某个对象时,包含要求
白盒测试中,()覆盖是指设计若干个测试用例,运行被测程序,使得程序中的每个判断
随机试题
DADAANDPOPART1Dadawasasubversivemovementinthearts
2009年底某煤矿发生瓦斯爆炸事故,该事故造成29人死亡。 该煤矿上年产量
各种运输方式内外部的各个方面的构成和联系,就是( )。 A.运输系统
(2019年5月)下列有关绩效工资的说法,错误的是()。A.绩效工资是指根
患者证见情志抑郁,两胁疼痛,嗳气频作,脉象端直而长,如按琴弦,脉势较强而硬,依照
下列关于舌损伤处理原则的描述,不正确的是A.舌组织有缺损时,缝合创口要尽量保持舌
在我国,会计专业技术资格是指担任会计专业职务的任职资格,包括助理会计师、会计师、
(2018年真题)某建设单位未依法进行环境影响评价即擅自开工建设。根据《中华人民
设置在两条地铁道之间的横向通道,其功能有()。A.消防 B.通讯 C.
在酸性耐火材料中容易受碱性渣的侵蚀,软化温度高,接近其耐火度,重复锻烧后体积不收
最新回复
(
0
)