阅读下列Java程序,回答下列问题。[Java 程序]public int addAppTask(Activity activity, Intent intent,TaskDescription description, Bitmap thumbnail) {Point size = getSize1; //1final int tw = thumbnail.getWidth1;final int th = thumbnail.getHeight1;if (tw != size.x || th != size.y) { //2,3Bitmap bm = Bitmap.createBitmap(size.x, size.y, thumbnail.getConfig1); //4float scale;float dx = 0, dy = 0;if (tw * size.x > size.y * th) { //5scale = (float) size.x / (float) th; //6dx = (size.y - tw * scale) * 0.5f;} else { //7scale = (float) size.y / (float) tw;dy = (size.x - th * scale) * 0.5f;}Matrix matrix = new Matrix1;matrix.setScale(scale, scale);matrix.postTranslate((int) (dx + 0.5f), 0);Canvas canvas = new Canvas(bm);canvas.drawBitmap(thumbnail, matrix, null);canvas.setBitmap(null);thumbnail = bm;}if (description == null) { //8description = new TaskDescription1; //9}} //101、请简述基本路径测试法的概念。(2分)2、请画出上述程序的控制流图,并计算其控制流图的环路复杂度vfG.。(8分)3、请给出问题2中控制流图的线性无关路径。(5分)

阅读下列Java程序,回答下列问题。
[Java 程序]
public int addAppTask(Activity activity, Intent intent,
TaskDescription description, Bitmap thumbnail) {
Point size = getSize1; //1
final int tw = thumbnail.getWidth1;
final int th = thumbnail.getHeight1;
if (tw != size.x || th != size.y) { //2,3
Bitmap bm = Bitmap.createBitmap(size.x, size.y, thumbnail
.getConfig1); //4
float scale;
float dx = 0, dy = 0;
if (tw * size.x > size.y * th) { //5
scale = (float) size.x / (float) th; //6
dx = (size.y - tw * scale) * 0.5f;
} else { //7
scale = (float) size.y / (float) tw;
dy = (size.x - th * scale) * 0.5f;
}
Matrix matrix = new Matrix1;
matrix.setScale(scale, scale);
matrix.postTranslate((int) (dx + 0.5f), 0);
Canvas canvas = new Canvas(bm);
canvas.drawBitmap(thumbnail, matrix, null);
canvas.setBitmap(null);
thumbnail = bm;
}
if (description == null) { //8
description = new TaskDescription1; //9
}
} //10
1、请简述基本路径测试法的概念。(2分)
2、请画出上述程序的控制流图,并计算其控制流图的环路复杂度vfG.。(8分)
3、请给出问题2中控制流图的线性无关路径。(5分)


参考解析

解析:1、基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
2、控制流图



环路复杂度V(G)=5
3、线性无关路径:
1.1-2-4-5-6-8-9-10
2.1-2-4-5-7-8-9-10(1-2-4-5-7-8-10)
3.1-2-4-5-6-8-10(1-2-4-5-7-8-10)
4.1-2-3-4-5-6-8-9-10(1-2-3-4-5-7-8-9-10,1-2-3-4-5-6-8-10,1-2-3-4-5-7-8-10)
5.1-2-3-8-9-10(1-2-3-8-10)
【解析】
本题考查白盒测试法的应用。
第一小题考查白盒测试用例设计方法中的基本路径测试法。
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
第二小题考查白盒测试用例设计方法:基本路径测试法。涉及到的知识点包括根据代码绘制控制流图、计算环路复杂度。
控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,if(tw!=size.x || th!=size.y)这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。需要注意的是,复合条件之间是“&&”的关系还是“||”的关系反应在控制流图的画法是不同的。
程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为4,所以V(G)=5。
第三小题考查白盒测试用例设计方法:基本路径法。涉及到的知识点包括:根据控制流图和环路复杂度给出线性无关路径。
线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中应该有5条线性无关路径。

相关考题:

阅读材料.回答下列问题。

阅读材料,回答下列问题。…一摘自钱其琛回答《世界知识》杂志记者问题时的谈话(1)东欧剧变的具体表现有哪些?(2)试从多角度分析东欧剧变的原因。

下列语句哪一个正确()A.Java程序经编译后会产生machinecodeB.Java程序经编译后会产生bytecodeC.Java程序经编译后会产生DLLD.以上都不正确

阅读作品片段,回答下列 33~35 小题。第 33 题 这段文字主要阐明了什么问题?

下列关于main方法的描述中,正确的是()。 A、在Java程序中,必须要有main方法B、main方法可以保证Java程序独立运行C、一个Java程序不一定要有main方法D、一个Java程序的主方法是main方法

请仔细阅读以下关于某传输系统的技术说明、状态转换图及Java程序,根据要求回答问题1~问题2。[说明]传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、 StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如图7-16所示。下面的[Java代码1]与[Java代码2]分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。[Java代码1]请将以上[Java代码1]与[Java代码2]程序段中,(1)~(7)空缺处的语句填写完整。

下列关于Java对import语句规定的叙述中,错误的是A.在Java程序中import语句可以有多个B.在Java程序中import语句可以没有C.在Java程序中import语句必须有一个D.在Java程序中import语句必须引入在所有类定义之前

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}

下列关于Java对import语句规定的叙述中,错误的是( )。A.在Java程序中import语句可以有多个SXB 下列关于Java对import语句规定的叙述中,错误的是( )。A.在Java程序中import语句可以有多个B.在Java程序中import语句可以没有C.在Java程序中import语句必须有一个D.在Java程序中import语句必须引入在所有类定义之前

阅读下列Java语句:在下画线处,应填的正确选项是( )。A.FileB.FileWriterC.FileOutputStreamD.Outputstream

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。【问题1] (6分)请给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2] (10分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。【问题3](4分)请给出问题2中控制流图的线性无关路径。

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【C程序】【问题1】(6分)请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2】(9分)请画出上述程序的控制流图,并计算其环路复杂度V(G)。【问题3】(5分)请给出问题2中控制流图的线性无关路径。

阅读下列语句,回答文后的问题。

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。问题1:(6分) 请针对上述C程序,给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。

阅读下列C程序,回答下列问题。[C程序] int GetMaxDay( int year, intmonth ) { int maxday = 0; //1 if ( month >= 1 //8 else //9 maxday = 28; } else //10 maxday = 29; } else //11 maxday = 28; } else{ //12 if(month==4||month==6||month==9||month==11) //13, 14, 15, 16 maxday = 30; //17 else //18 maxday = 31; } } return maxday; //19 }3、请给出问题2中控制流图的线性无关路径。

阅读下列Java程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由Java语言编写的程序,按要求回答问题。问题1:(2分) 请简述基本路径测试法的概念。问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【问题1】(3分)请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2】(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。问题1:(5分)请给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。

阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。main( ){int i,n; //1for(i=1;i

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。问题1:(3分) 请针对上述C程序,给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。

阅读下面程序段,回答指定问题: MOV AX,0086H MOV BL,77H ADD AL,BL DAAA DC AH,O 问:AH=(),AL=(),BL=(),CF=()。

阅读下列程序,回答问题: LDR R0, 0x22 LDR R1, 0x11 SUB R0, R0, R1 CMP R0, R1执行上述程序后,CPSR的下列哪个标志位将发生变化()A、 CB、 VC、 ZD、 以上都不对

下列关于JAVA程序说法正确的是()A、JAVA程序的main方法必须写在类里面B、JAVA程序中可以有多个main方法C、JAVA程序中类名必须与文件名一样D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来

下列()属于JDBC驱动程序。A、JDBC-SQL桥接驱动程序B、JDBC-ODBC桥接驱动程序C、原生API结合Java驱动程序D、网络协议搭配完整的Java驱动程序

案例:阅读下列案例,回答问题。有人认为在课堂中,师生保持“零距离接触”,学生回答教师的问题,做教师要求做的事,只要有这种共同活动就是师生互动。问题:你认为这种说法对吗?为什么?

下列语句哪一个正确()A、Java程序经编译后会产生machine codeB、Java程序经编译后会产生byte codeC、Java程序经编译后会产生DLLD、以上都不正确

下列关于JAVA语言特性的描述中,错误的是()A、支持多线程操作B、JAVA程序与平台无关C、JAVA程序可以直接访问Internet上的对象D、支持单继承和多继承

单选题阅读下列程序,回答问题: LDR R0, 0x22 LDR R1, 0x11 SUB R0, R0, R1 CMP R0, R1执行上述程序后,CPSR的下列哪个标志位将发生变化()A CB VC ZD 以上都不对