软件测试技术考试.docx
- 文档编号:3861853
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:22
- 大小:198.77KB
软件测试技术考试.docx
《软件测试技术考试.docx》由会员分享,可在线阅读,更多相关《软件测试技术考试.docx(22页珍藏版)》请在冰豆网上搜索。
软件测试技术考试
练习2考虑程序P,骑术如为三角形的三边长。
现在假定,程序P在实际使用中只接受以下三种输入:
(a,b,c)=(2,2,2),(a,b,c)=(2,3,4),(a,b,c)=(3,3,4).已知程序P对(a,b,c)=(3,3,4)的输入失效,问程序P运行正确的概率是多少?
(即程序P的正确性)
练习3(续上)假设(a,b,c)=(2,2,2)出现的概率为0.6,其他两种输入出现的概率为0.2。
程序P对(a,b,c)=(3,3,4)的输入失效。
问程序P的可靠性。
练习4下表是sort函数的一种operationalprofile:
输入序列
概率
只包含数字的输入序列
0.9
包含字母数字串的输入序列
0.1
设当输入为字母数字串时失效的概率是0.9,当输入纯数字串时运行正确。
请计算sort在以上operationalprofile中的可靠性。
练习5画出以下代码对应的控制流图
1begin
2intx,y,power;
3floatz;
4input(x,y);
5if(y<0)
6power=-y;
7else
8power=y;
9z=1;
10while(power!
=0){
11z=z*x;
12power=power-1;
13}
14if(y<0)
15z=1/z;
16
17output(z);
18end
练习6计算5对应的控制流图的圈复杂度
练习7考虑软件app,它有两个输入变量,分别是name和age,其中,name是至多包含20个字母字符的非空字符串,age是整数型变量,0age120。
当输入给name的字符串的长度超过20时,age取消前20个字符作为name的值;如果输入的是一个空字符串,则app显示一条错误提示信息,当输入给age的值不在规定的范围中时,app显示一条错误提示信息。
请采用等价类划分法设计测试用例。
练习8你能否举例说明单缺陷假设有的时候是不足够的?
练习9考虑函数findPrice,简记为fP,它有两个整数型输入变量,分别为code和pty,code表示商品编码,qty表示采购数量。
fP访问数据库,查询并显示code编码所对应的产品的单价、描述信息以及总的采购价格。
当code和pty中任意一个为非法输入时,fP显示一条错误提示信息并返回。
假设code的邮箱输入区间为[99,999],采购数量qty的有效输入区间为
[1,100]。
1.请采用边界值分析法为fP设计测试用例。
2.评估以下测试用例的有效性。
T={
t1=(code=98,qty=0),
2t2=(doce=99,qty=1),
t3=(code=100,qty=2),
t4=(code=998,qty=99),
t5=(code=999,qty=100),
t6=(code=1000,qty=101)
}
参考代码(fP的缺陷代码):
1publicvoidfP(intcode,qty)
2{
3if(code<99&&code>999)
4{
5display_error("Invalidcode");
6return;
7}
8//缺少对qty的有效性检查
9//下面开始处理code和qty
10}
3.举例说明t2和t5测试用例(同时取两个变量的边界值)在什么情形下无
法检测出错误。
4.举例说明在什么情形下必须同时取两个变量的边界值才能检测出错误。
练习10读入一个浮点数值,将其转化为中文金额的大写方式。
如123.45,转
化为:
壹佰贰拾叁元肆角伍分。
当金额为整数时,只表示整数部分,省略小数
部分,并添加“整”字。
如123表示为:
壹佰贰拾叁元整。
当金额中含有连续
的0时,只需写一个零即可。
如10005表示为:
壹万零伍元整。
10的表示方式。
如110表示为:
壹佰壹拾元整。
而10表示为:
拾元整。
•请设计测试用例(电子表格形式),并在实验课上老师提供的程序进行测
试。
•(选做)参照教师提供的源代码,利用单元测试框架实现以上测试用例。
练习11一个函数cC有3个输入变量:
from、to、amount。
变量from和to都是字符串,代表哦一个国家的名称,amount是浮点类型。
函数cC将from国家amount单位的货币转换为to国家的等值货币。
下面是一个在2004年7月26日的例子:
输入:
from=“USA”,to=“Japan”,amount=100;
返回值:
11012.0
1.采用等价类划分和边界值分析方法导出函数cC的一个测试集
2.假设一个GUI封装了cC,允许用户通过国家名称“调色板”选项选择from、to的值,在一个文本框中输入要转换的货币数量,然后点击按钮“convert”。
有了GUI,是否改变了在1中导出的测试集?
若改变了,为什么?
若没有,为什么?
练习12一个通过Internet可操作的自动化的狗粮自动售货机(以下简称iDFD),由两个独立的自动售货机组成:
食物自动售货机(以下简称FD)和水自动售货机(WD)。
每个售货机由一个独立的定时器控制,定时器的默认设置为8小时,也可以设为不同的时间段。
每当一个定时器中断,iDFD根据判断的结果,即食物售货机还是水售货机发出的中断,然后送出食物或水。
每次送出的食物或水的数量是固定的。
iDFD有两组指示器,每个自动售货机一组。
每组指示器包含3个同样的指示器,分别标识为“Okey”、“Low”、“Empty”。
每次送出食物或水之后,iDFD都将检查食物和水的存量并及时变更指示器。
iDFD通过一条安全线路连到Internet。
iDFD需要授权用户来设置或修改定时器、判断食物箱中食物的数量以及水箱中水的瓶数。
当因售出食物或水而使相应的指示器变为“Okey”、“Low”、“Empty”时,iDFD的授权用户会收到一封Email。
iDFD由一个嵌入式微处理器和一个控制软件控制。
控制软件完成上述所有功能。
试着用以下三步设计测试的输入,以测试控制软件:
(a)标识所有的原因和结果。
(b)画出因果图,将(a)中找到的原因和结果联系起来。
(c)将(b)中画出的因果图转化为判定表。
(d)从(c)中的判定表生成测试用例。
在执行上述各步骤时,需要排除iDFD需求中的二义性。
同时,考虑将食物自动
售货机与水自动收获即的测试输入区分开。
1.(7p)V模型是最具有代表意义的软件测试模型,请绘制出V模型。
2.(12p)简述集成测试的几种主要策略以及每种策略的优缺点。
答:
1)一次性集成。
优点:
集成迅速、适用于模块不多的项目;缺点:
出现问题难以定位
2)自底向上集成。
优点:
能较早的发现底层模块的缺陷,缺陷定位比较容易;缺点:
高层错误的发现时间较晚。
3)自顶向下集成。
优点:
能较早的发现高层模块的缺陷,缺陷定位相对比较容易;缺点:
底层错误发现时间较晚。
5.(12p)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。
以下代码由C语言书写,请按要求回答问题。
voidReadPara(CStringtemp)
{
if(temp==">=")
m_oper.SetCurSel(0);
else
{
if(temp==">")
m_oper.SetCurSel
(1);
else
{
if(temp=="==")
m_oper.SetCurSel
(2);
else
{
if(temp=="<=")
m_oper.SetCurSel(3);
else
{
if(temp=="<")
m_oper.SetCurSel(4);
else
m_oper.SetCurSel(5);
}
}
}
}
return;
}
[问题1] 请画出以上代码的控制流图。
[问题2] 请计算上述控制流图的环路复杂度V(G)。
[问题3] 请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
答:
[问题1]流程图如下图所示。
[问题2] 圈复杂度为6。
[问题3]覆盖基本路径的测试用例为:
1.temp=”>=”
2.temp=”>”
3.temp=”==”
4.temp=”<=”
5.temp=”<”
6.temp=”#”(任何其他符号均可)
1.什么是测试用例,其常见的表现形式有哪些?
2.测试的目标是什么?
3.Explainthedifferencesbetweenvalidationandverification.
答:
Verification:
在软件过程中,检查当前阶段成果是否正确的活动。
当前阶段成果如:
需求说明书、设计文档、代码、用户手册、最终产品。
检查的依据是当前阶段进行前制定的(计划的)要求(需求)。
其目的是尽量保证每阶段在正确的作事情(按照当初的规范进行)
Validation:
用以保障所开发产品是用户期待产品的一种活动。
其目的是迎合用户需求。
活动对象往往是最终产品,对最终产品从用户的角度进行详尽测试。
两者的区别我们还可以从以下角度进行辨析:
目的:
正确的构建产品(Verification)和构建正确的产品(Validation)
时间上:
Verifation:
开发的各个阶段;Validation:
软件开发结束的时候,用以确认是否满足用户需求。
技术手段上:
Verification常采用静态分析手段,例如,审查(Inspection),走查(Walkthrough),评审(review)以及使用各种标准和检查清单。
4.Explainthedifferencesbetweenfailure,error,andfault.
答:
Failure指一个系统呈现出的外部行为或者表现与应该呈现的行为不一致
Error是指一种状态,如果允许系统继续进行(而缺乏纠正措施),那么系统就会导致Failure。
Fault是指导致Error状态出现的原因。
用一段话来描述:
一个fault可能会很长一段时间都没有被发现,直到一些事件触发了它,使得系统内部进行errorstate,如果系统允许从错误状态继续运行而没有采取任何纠正措施,系统就会导致failure.
5.Explaintheconceptsofunit,integration,system,acceptance,andregression
testing.
6.Explainthedifferencesbetweenstructuralandfunctionaltesting.
7.Whatarethestrengthsandweaknessesofautomatedtestingandmanualtesting?
8.简述什么是回归测试。
回归通常指以前正常的功能不再正常.回归测试主要目的是为了保障以前通过测试的功能在对代码的修改之后仍然功能正常.对代码的修改可能导致以下情形的发生:
1.缺陷得以解决;
2.缺陷得以解决,但是其它处曾经正常的功能开始出现问题;
3.虽经努力,但是缺陷仍然不能解决;
4.虽经努力,缺陷仍然不能解决,同时还引入了回归缺陷.回归测试是一项耗时的工作,往往需要对已有的测试用例进行挑选,从其中选择回归测试集.回归测试用例在开发过程中,可能需要大量的反复执行,如果有可能,应该考虑引入自动化测试手段.
9.什么是检入测试?
10.什么是Alpha测试,什么是Beta测试?
Alpha测试通常是指产品开发到了末期,在推出市场之前开发方内部进行的系统测试.Beta测试通常是指为了扩大测试面,检验开发的产品是否能在预计的各种软硬件环境中正常运行,一般将比较稳定的产品发送到各个用户单位,由用户进行测试.这些系统版本通常被称为Beta版本,在Beta测试阶段,开发方一般会先后提交软件产品的若干beta版本.
11.什么是冒烟测试?
13.PaulC.Jorgensen在其《软件测试》一书中将测试用例的范围和规格说明以及实际程序之间的关系用下图表示。
例如,规格说明和程序并不重叠,表明程序并没有完全实现规
格说明的要求;类似的,区域2表明没有测试的程序行为。
请配对。
编号
匹配项
含义
4
a.有测试对应的程序行为
3
b.有测试,但未通过程序实现的行为
5
c.没有测试的程序行为
6
e.有描述,也有实现的行为
1
f.测试用例没有覆盖的描述行为(规格说明)
14.缺陷的生命周期
1.瀑布模型的具体内容及其特点,产生的原因以及不足之处。
答:
瀑布模型是经典的生命周期模型之一。
一般认为,瀑布模型包括:
需求阶段、规格说明阶段、设计阶段、实现阶段、集成阶段、测试阶段、维护阶段、退役。
瀑布模型的特点正如其名称一样,一个阶段完成,便不允许回溯,重新回到先前某一个阶段。
为了保证每个阶段的工作能够有质量的完成,瀑布模型可以认为是一种文档驱动的模型。
随着软件的日益复杂,人们感觉到软件开发过程需要监督和指导,然而,借鉴来的瀑布模型产生于硬件领域,它是从制造业的角度看待软件开发。
但是,制造业是重复生产某一特定的产品,而软件并不是这样开发的,相反,随着人们对问题的逐步理解和对候选方案的评估,软件在不断演化。
因此,软件是一个创造的过程,而不是一个制造的过程。
瀑布模型并没有说明我们创建最终产品过程中所需的往回活动的任何特有信息。
尤其是创造通常包含不同的尝试,开发和评估原型、评价需求的可行性、比较若干中设计以及从失败的教训中学习,从而最终决定问题令人满意的解决方案。
2.V模型
3.以开发为中心和以项目为中心的组织模型有什么弊端。
4.测试过程一般可以分为以下四种类型。
5.软件测试度量的必要性和目的
6.在整个软件工程中,测试什么时候开始,什么时候可以结束。
答:
测试贯穿整个软件项目始终。
当我们开发业务需求的同时,可以着手进行验收测试的设计;当我们进行规格说明的时候,可以着手设计系统测试;
当我们进行概要设计的时候,可以开发集成测试;
当我们进行详细设计及编码的时候,可以着手开发单元测试。
测试并不单指测试实施这一个环节。
软件过程一般都会有规划、设计、实施以及报告几个阶段,这些都是我们测试相关的活动。
此外,测试的范围也很广,凡是软件的组成部分都是我们的测试目标。
这些部分有各种计划,报告,说明书,代码,帮助文档,用户手册等软件工程过程中产生的一切东西。
7.如果由设立项目经理,同时负责开发部和测试部的工作,这样的组织模型是否可
取?
请谈谈你的看法。
1.什么是业务风险和技术风险,简要介绍风险评估方法。
2.试述对用户需求没有完整的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因。
(10分)
2静态测试
1.简述同行评审、走查和审查之间的不同。
2.请找出如下文本的错误:
当销售额低于本月目标销售额时,打印一份报告。
除非
目标销售额和实际销售额之间的差低于上月目标销售额和实际销售额差的一半,或者如果当月目标销售额和实际销售额之间的差在5%以下。
讲解:
该问题在于需求有可能没有真实反映管理者的意图。
“除非目标销售额和实际销售额之间的差低于上月目标销售额和实际销售额差的一半”这句话,应该修改为“除非目标销售额和实际销售额之间的百分比差低于上月目标销售额和实际销售额百分比差的一半”。
例如,一月目标是100000元,实际是64000元,低于目标销售额的36%。
二月目标是120000元,实际是100000,低于目标销售额的16.7%。
16.7%低于36%的一半,管理者认为有进步,所以可以不打印报告。
但是绝对差值不是这样的。
此外语序是有问题的,理想的是该是直接表述何时打印报告,而不是用“除非”作为补充。
3功能测试
3.1等价类和边界值
4.如果某个函数有两个参变量,由上下文,我们知道这两个变量拥有以下边界以及
边界内的区间:
a≤x1≤d,区间为[a,b),[b,c),[c,d]
e≤x2≤g,区间为[e,f),[f,g]
不考虑xi取无效值的情况,请设计最少的测试用例,并说明理由。
提示:
将x1作为横坐标,x2作为纵坐标,按照题目给出的等价类绘制出等价类区域,设定合适的测试用例使得x1和x2取遍所有等价类。
(10p)
答:
如上图所示,五角星表示弱等价类测试用例。
从中可以看到,x1和x2均取遍所有等价类划分。
由于x1有三个等价类,因此数量最少的等价类最少也不能低于三个,故五角星代表的测试用例即为符合要求的测试用例。
如果补充四角星,连同五角星一起,便称为弱健壮等价类测试用例。
因为四角星的取值使得总是有一个xi超出有效取值,落在无效等价类中。
既然题目要求是“最少”的测试用例,故我们利用可靠性理论中的单故障原理,总是使得某一个xi取正常值,而另一个x3−i取在无效等价类中。
弱健壮等价类测试用例总共有四个。
5.如果某个函数有两个参变量,由上下文,我们知道这两个变量拥有以下边界以及
边界内的区间:
a≤x1≤d,区间为[a,b),[b,c),[c,d]
e≤x2≤g,区间为[e,f),[f,g]
不考虑xi取无效值的情况,请设计最多的测试用例,并说明理由。
提示:
将x1作为横坐标,x2作为纵坐标,按照题目给出的等价类绘制出等价类区域,设定合适的测试用例使得x1和x2的组合取遍所有等价类。
6.假设要测试某品牌手机附带的计算器的自然数加法功能A+B,其中A、B的取值范围是[0,99]。
请按照等价类划分的方法确定测试用例。
A的有效等价类
A1:
[0,99]
B的有效等价类
B1:
[0,99]
A的无效等价类
A2:
A<0
A3:
A>99
A4:
含有非数字字符
A5:
空值
B的无效等价类
B2:
B<0
B3:
B>99
B4:
含有非数字字符
B5:
空值
IDAB
19988
2-199
366-1
410亿99
59910亿
6A?
99
799S
8空值99
999空值
7.在银行的或其存折账户管理软件中,要求可以输入一个账户的下列数据:
身份证
号、联系电话、邮政编码。
请应用给予等价类划分的测试案例设计方法确定测试用例的输入值组合,并填入表:
ID
身份证号
联系电话
邮政编码
8.某办公信息系统具有代办事项管理功能。
要求可以输入一个代办事项的下列数据:
截止日期、截止时间、闹铃日期、闹铃时间.请应用给予等价类划分的测试案例设计方法确定测试用例的输入值组合,并填入表
ID
截止日期
截止时间
闹铃日期
闹铃时间
9.对以下循环代码进行测试
for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
{
for(k=1;k<=n3;k++)
{
//somecodehere
}
}
}
10.文本切割的问题,就是把大的文本切割成若干个定长的小块。
用自然语言描述,
大致是如下这个样子:
strOri=原始文本内容;
len=切割前文本的长度;
sublen=切割后每块数据的长度;
buf[]=存放切割后的数据;
1i=0;//计数器
2substrnum=(int)(len/sublen);//切割后的个数
3for(i=0;i 5buf[i+1]=mid(strOri,(i+1)*sublen,len%sublen); 请指出上述伪代码的错误之处,该错误是否是由于对变量的边界考虑不周引起的? 答: 首先明确这段程序的输入和输出.输入是原始的文本内容以及每块数据的长度.输出是存放切割后的数据.可以设计测试用例如下: 1.输入: strOri="abcd",sublen=2.输出: buf={"ab","cd"} 2.输入: strOri="abcde",sublen=2,输出: buf={"ab","cd","e"} 3.输入: strOri="a",sublen=2,输出buf={"a"} 4.输入: strOri="",sublen=2,输出buf={} 测试用例1将发现第5行的代码i+1=2,越界.因此正确的代码是buf[i]=mid(strOri, (i)*sublen,len%sublen);. 测试用例2要求代码行3-4应该要循环两次,但实际上只循环了一次.正确的应该是: for (i=0;i 测试用例3行为正常 测试用例4的输出为buf={""},与预期输出不一致.正确的代码是 if(len%sublen! =0){ buf[i+1]=mid(strOri,(i+1)*sublen,len%sublen); } 3.2因果图和决策表 2.边界值分析和等价类划分的局限性? 3.确定某年某月有多少天: 程序接受年、月作为输入,而总所周知,当年份是闰年 的时候,2月份只有28天。 这里假定年份的范围为[1900,2300]。 请画出判定表并给出相应的测试用例。 答: C1: 是闰年; C2: 是1、3、5、7、8、10、12月中某一月; C3: 是2月 A1: 当月有28天 A2: 当月有29天 A3: 当月有30天 A4: 当月有31天 条件 1 2 3 4 5 6 7 8 C1 T T T T F F F F C2 T T F F T T F F C3 T F T F T F T F 行动 不可能 X A1 X A2 X A3 X X A4 X X 合并之后为: 条件 1 2 3 4 5 C1 T F C1 C2 T T F F F C3 T F T F T 行动 不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 技术 考试