2015 下半年软件评测师考试真题及答案-下午卷
试题一
阅读下列 java 程序,回答问题 1 至问题 3,将解答填入答题纸内对应栏内。
【Java 程序】
public int addAppTask(Acitivity activity,Intent intent,TaskDescription
//1
//2,3
//4
//5
//6
//7
description,Bitmap
thumbnail){
Point size=getSize();
final int tw=thumbnail.getWidth();
final int th=thumbmail.getHeight();
if(tw!=size.x||th!=size.y){
Bitmap bm=Bitmap.createBitmap(size.x,size.y,thumbmail
.getConfig());
float scale;
float dx=0,dy=0;
if(tw*size.x>size.y*th){
scale=(float)size.x/(float)th;
dx=(size.y-tw*scale)*0.5f;
}else{
}
scale=(float)size.y/(float)tw;
dy=(size.x-th*scale)*0.5f;
Matrix matrix=new Matrix();
matrix.setScale(scale, scale);
matrix.postTranslate((int)(dx+0.5f),0);
Canvas canvas=new Canvas(bm);
canvas.drawBitmap(thumbmail,matrix,null);
canvase.serBitmap(null);
thumbnail=bm;
}
//8
//9
//10
if(description==null){
description =new TaskDescription();
}
}
【问题 1】
请简述基本路径测试法的概念。
【问题 2】
请画出上述程序的控制流图,并计算其控制流图的环图复杂度 V(G)。
【问题 3】
请给出问题 2 中的控制流图的线性无关路径。
答案:
【问题 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)
解析:
本题考查白盒测试法的应用。
【问题 1】
本问题考查白盒测试用例设计方法中的基本路径测试法。
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基
本可执行路径集合,从而设计测试用例的方法。
【问题 2】
本问题考查白盒测试用例设计方法:基本路径测试法。涉及到的知识点包括根据代码绘
制控制流图、计算环路复杂度。
控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点
代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达
式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复
合 条 件 的 判 断 为 一 系 列 之 单 个 条 件 的 嵌 套 的 判 断 。 本 题 程 序 中 , if
(tw!=size.x||th!=size.y)这条判断语句中的判定由两个条件组成,因此在画控制流图的
时候需要拆开成两条判断语句。需要注意的是,复合条件之间是“&&”的关系还是“||”的
关系反应在控制流图的画法是不同的。
程序的环路复杂度等于控制流图中判定节点的个数加 1,本题控制流图中判定节点个数
为 4,所以 V(G)=5。
【问题 3】
本问题考査白盒测试用例设计方法:基本路径法。涉及到的知识点包括:根据控制流图
和环路复杂度给出线性无关路径。
线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一
条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复
杂度等于线性无关路径的条数,所以本题中应该有 5 条线性无关路径。
试题二
阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【说明】
某商店的货品价格(P)都不大于 20 元(且为整数),假设顾客每次付款为 20 元且每次
限购一件商品,现有一个软件能在每位顾客购物后给出找零钱的最佳组合(找给顾客货币张
数最少)。
假定此商店的找零货币面值只包括:10 元(N10)、5 元(N5)、1 元(N1)3 种。
【问题 1】(8 分)
请采用等价类划分法为该软件设计测试用例(不考虑 P 为非整数的情况)并填入到下表
中。(<
>表示 2 张 1 元,若无输出或输出非法,则填入 N/A)
序号
输入(商品价格 P)
输出(找零钱的组合)
20(P=20)
18(任意 15>
1
2
3
4
5
6
7
8
9
10
【问题 2】
请采用边界值分析法为该软件设计测试用例。
【问题 3】
请给出采用决策表法进行测试用例设计的主要步骤。
答案:
【问题 1】
序号
输入(商品价格 P)
输出(找零钱的组合)
20(P=20)
18(任意 15
>
<>
13(任意 10,>
10(P=10)
<>
8(任意 5,>
1
2
3
4
5
6
7
8
9
5(p=5)
3(任意 020)
【问题 2】
<,>
<,,>
N/A
N/A
21、20、19、16、15、14、11、10、9、6、5、4、1、0
【问题 3】
(1)确定规则的个数。
(2)列出所有的条件桩和动作粧。
(3)填入条件项和动作项。
(4)合并相似规则,化简决策表。
解析:
本题考查白盒测试法和黑盒测试法的应用。
【问题 1】
本问题考查黑盒测试用例设计方法:等价类划分法。
等价类划分法是把程序的输入域按规则划分为若干子集,然后从每个子集中选取一个具
有代表性的数据作为测试用例。本题中规定了 P 的取值范围(1<=P<=20),按规则可以划分
为一个有效等价类{P|l<=?<=20}和两个无效等价类仄^<1}、{P|P>20}。根据题中描述,对 P
取不同值有不同的处理,因此上述有效等价类还可以进一步细分为 8 个等价类{P|P=20}、
{P|15
{P|P=10}、{P 丨 5
{P|5
20}。设计用例时从这 10 个等价类中各任选一个代表元素即可。
【问题 2】
本问题考查白盒测试用例设计方法:边界值分析法。
边界值分析法作为等价类划分法的一种补充,是把等价类上的边界取值作为测试用例的
一种测试方法。如果不考虑健壮性测试,也就是如果说不考虑无效等价类的边界取值,8 个
有效等价类中有 20,19,16,15,14,11,10,9,6,5,4,1 这 12 个边界值,然后每个
等价类中再取 1 个任意值,一共得到 16 个边界值的测试用例({P|P=20}、{P|P=15}、{P|P=10}、
{P|P=5}这 4 个等价类的任意值是 20,15,10,5,与边界值有重复)。
【问题 3】
本问题考查黑盒测试中决策表法。
采用决策表法设计测试用例分为四步:
1)确定规则的个数;
2)列出所有的条件桩和动作粧;
3)填入条件项和动作项;
4)合并相似规则,化简决策表。
试题三
阅读下列说明,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。
【说明】
MOOC(慕课)教育平台欲开发一基于 Web 的在线作业批改系统,以实现高效的作业提交
与批改并进行统计。系统页面中涉及内部的内容链接、外部参考链接以及邮件链接等。页面
中采用表单实现作业题目的打分和评价,其中打分为 1~5 分制整数,评价为文本。
系统要支持:
(1)在特定时期内 300 个用户并发时,主要功能的处理能力至少要达到 16 个请求/秒,
平均数据量 16KB/请求。
(2)系统前端采用 HTML 5 实现,以使用户可以通过不同的移动设备的浏览器进行访问。
【问题 1】(4 分)
针对此在线系统进行链接测试时,需要测试哪些方面?
【问题 2】(5 分)
为了达到系统要支持的(2),设计一个兼容性测试矩阵。
【问题 3】(5 分)
给出计算系统的通信吞吐量的方法,并计算在满足系统要支持的(1)时系统的通信吞
吐量。
【问题 4】(6 分)
设计 4 个打分和评价的测试输入,考虑多个方面的测试,如:正确输入、错误输入、
XSS、SQL 注入等测试。