配色: 字号:
《计算机软件测试技术》复习题
2023-09-27 | 阅:  转:  |  分享 
  
计算机软件技术期末测试题一、单项选择题(本大题共10小题,每小题2分,共20分)1.在软件周期的哪一个阶段,软件缺陷修复费用最低( )。A
. 编码 B.设计 C.需求分析 D.产品发布2.软件测试的目的是( )。A.避免软件开发中出现的错误B.发现软件开发中出现的错
误C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性D.修改软件中出现的错误3.软件测试的目的是( )。A. 发现程序中的所
有错误 B.尽可能多地发现程序中的错误C.证明程序是正确的 D.调试程序4.下列软件属性中,软件产品首要满足的应该是(
)。A.功能需求 B.性能需求 C.可扩展性和灵活性 D.容错纠错能力5.单元测试中用来模拟被测模块调
用者的模块是( )。A.父模块 B.子模块 C.驱动模块 D.桩模块6.条
件组合覆盖法测试用例设计的基本思想是( )。A.程序中每个判断的取真分支和取假分支至少经历一次B. 程序中每个条件的取真和取假至
少出现一次C.程序中每条路径至少经历一次D. 程序中每个判断的取真分支和取假分支至少经历一次且每个条件的取真和取假至少出现一次7.
关于Junit描述错误的是( )。A. Junit只能在eclipse环境中运行B. Junit使用Assert类来验证条件是否
成立C. Junit是JAVA语言的单元测试工具D. 使用Junit 测试如果出现绿色提示条,代表这个案例能正常工作。8.下列各项
中不属于测试计划内容的是( )。A. 预期输出 B.测试资源和进度安排C.测试范围 D.测试策略9.下
列项目中不属于测试文档的是( )。A.测试计划B.测试用例 C.程序流程图D.测试报告10.判定覆盖法测试用例设计的基本思想是(
)。A.程序中每个判断的取真分支和取假分支至少经历一次 B.程序中每个条件的取真和取假至少出现一次C程序中每条路径至少经历一次
D.程序中每个判断的取真分支和取假分支至少经历一次且每个条件的取真和取假至少出现一次11.如果一个判定中的复合条件表达式为(A>
l)or(B=3),则为了达到100%的条件覆盖率,至少需要设多少个测试用例( B )( )。A.1 B.2 C.3 D.41
2.以程序的逻辑结构为基础的测试用例技术属于( )。A.灰盒测试 B.数据测试 C.黑盒测试
D.白盒测试13.在进行单元测试时,常用的方法是( )。A.采用黑盒测试,辅之以白盒测试 B.采用白盒测试,辅之以黑
盒测试C.只使用黑盒测试 D.只使用白盒测试14.对用户界面进行测试时通常采用的测试方法为
( )。A.静态-白盒测试方法 B.静态-黑盒测试方法C.动态-白盒测试方法 D.动态-黑盒
测试方法15.对用户数据处理过程进行测试时通常采用的测试方法为( )。A. 静态-白盒测试方法 B. 静态-黑盒测试方法C. 动
态-白盒测试方法 D. 动态-黑盒测试方法16.请为下列测试项目选择正确的测试方法。 (1)功能测试( ) (2)代码审查
( ) (3)内部逻辑功能( ) (4)用户界面( ) (5)规格说明( ) (6)数据处理过程
( ) A.静态-白盒测试方法 B.静态-黑盒测试方法C.动态-白盒测试方法 D.动态-黑
盒测试方法17.在某学籍管理系统中,假设学生年龄的输入范围为16岁——30岁,则根据黑盒测试中的等价类划分技术,下面划分正确的是(
)。A.可划分为2个有效等价类,2个无效等价类B.可划分为1个有效等价类,2个无效等价类C.可划分为2个有效等价类,1个无效等
价类D.可划分为1个有效等价类,1个无效等价类18.在某学籍管理系统中,假设学生选修课可选修1-3门课程,则根据黑盒测试中的等价类
划分技术,下面学生成绩的等价类划分正确的是( )。A.可划分为2个有效等价类,2个无效等价类B. 可划分为2个有效等价类,1个无
效等价类C. 可划分为1个有效等价类,1个无效等价类D. 可划分为1个有效等价类,2个无效等价类19.在软件测试W模型中,测试与开
发的关系是( )。A.测试与开发同步进行 B.测试在需求分析结束后就要开始 C.测试与编程同步进行 D.编程结
束之后开始测试20.单元测试中设计测试用例的依据是( )。A.概要设计规格说明书 B.用户需求现格说明书C.项目计划说明
书 D.详细设计规格说明书21.在边界值分析中,下列数据通常不用来做数据测试的是( )。A.正好等于边界的值B.
等价类中的等价值C.刚刚大于边界的值D.刚刚小于边界的值22.以下不是Junit类的是( )。A.TestSuite
B. TestRunner C. TestResult D. TestFrame23.划分软件测试属于白盒测试还是黑盒
测试的依据是( )。A.是否执行程序代码 B.是否能看到软件的设计文档C.是否能看到被测源程序 D.运行结果是否
正确24.划分软件测试属于白盒测试还是黑盒测试的依据是( )。A.是否执行程序代码 B.是否能看到软件的设计文档C.是否能看到
被测源程序 D.运行结果是否正确二、填空题(本大题共10小题,每空1分,共20分)1.软件可以从正反两个角度进行测试
,正向思维是验证 ,反向思维是假定 。 2.SQA是一项 ,测试是一项 。3.测试用例的一般结构必须包含的项目有 。4.动态黑盒
测试的方法有 、 、 、。5.等价类包括 和 两类。6.判定表由四部分组成,分别是 、 、 和。7.Pair-wise方法也称为
或 测试。8.白盒测试方法也称为 测试或 测试。9.单元测试的依据是 、 。10.软件的测试级别分为 、 、 、 。11.集成测试
的基本策略有 、 。12.系统测试的过程包括测试计划、测试设计 、 和 。13.对于内部逻辑复杂的系统,应该以 为主,仔细测试程序
内部的 ,做到尽可能的全面覆盖。14. Junit是一个开放源代码的 测试框架,用在 的测试上。15.软件质量分为 , 和 。16
.测试用例所用的数据可分为 、 和 。三、判断题(本大题共10小题,每小题1分,共10分)1.( )对程序的测试最好由第三方测
试机构来做。2.( )软件测试工作展开越早,发现缺陷越早,软件开发成本越低。3.( )软件测试人员最好在项目启动的第一天就介入
。4.( )软件测试本身具有一定的风险,没有办法证明软件的正确性。5.( )在判定表方法中,条件桩是指问题的所有条件。6.(
)软件测试人员最好在项目启动的第一天就介入。7.( )网页链接的并发用户数测试属于功能测试。8.( )软件自动化测试可以
代替人工测试。9.( )软件测试活动是一个无限执行域。10.( )在软件瀑布模型中,测试与开发的关系是测试与编程同步进行。1
1.( )验收测试是以最终用户为主的测试。12.( )对程序的调试最好由程序员来做。13.( )对程序的调试最好由测试
人员来做。14.( )软件测试活动是一个无限执行域。四、简答题(本大题共4小题,每小题5分,共20分)1.简述黑盒测试与白盒测
试的优缺点。白盒测试的优点(1)迫使测试人员去仔细思考软件的实现。(2)可以检测代码中的每条分支和路径。(3)揭示隐藏在代码中的错
误。(4)对代码的测试比较彻底。(5)最优化。白盒测试的缺点(1)昂贵。(2)无法检测代码中遗漏的路径和数据敏感性错误。(3)不验
证规格的正确性。黑盒测试的优点(1)对于较大的代码单元,黑盒测试的效率更高。(2)测试人员不需要了解程序的细节。(3)测试人员和编
码人员相对独立。(4)从用户的视角进行测试,很容易被理解和接受。(5)有助于暴露任何规格不一致或有歧义的问题。(6)测试用例的设计
可以不必等到编码完成,可以在规格完成之后马上进行。 黑盒测试的缺点(1)只有一小部分可能的输人被测试到,要测试每个可能的输人几乎是
不可能的。 (2)没有清晰、简明的规格,测试用例很难设计。2.简述等价类划分法的原则有哪些。 1.(1)在输入条件规定了取值范围或
值的个数的情况下,可以确立一个有效等价类和两 个无效等价类。(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下
,可确立一个有效等价类和一个无效等价类。(3)在输入条件是一个布尔量的情况下,可确立一个有效等价类和一个无效等价类。(4)在规定了
输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。(5)在规定了输入数
据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。(6)在确知已划分的等价类中各
元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类。3.简述边界值划分的原则有哪些。 (1)如果输入条件
规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。(2)如果输入条件规定了值的个数,则
用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。(3)将规则(1)和(2)应用于输出条件,即设计测试用例使输
出值达到边界值及其左右的值。(4)如果程序的规格说明给出的输入域或输出域是有序集合(例如顺序文件、线性表和表格等),则应选取集合的
第一个元素和最后一个元素作为测试用例。(5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的 值作为测试用例
。(6)分析规格说明,找出其他可能的边界条件。4.简述测试用例的作用。(1)测试用例是测试人员在测试过程中的重要参考依据。(2)测
试用例可以帮助实施有效的测试,所有被执行的测试都是有意义的。(3)良好的测试用例不断被重复使用,使得测试过程事半功倍。(4)测试用
例是一个知识积累的过程。5.简述测试用例的一般结构。 (1)标志符(Identification):唯一,必须。相当于测试用例的编
号,唯一标识该测试用例的值。(2)所属模块:可选。(3)测试项(Test Items):必须。测试的对象。(4)测试用例名称:必须
,也称作测试目的。(5)测试环境要求:可选。(6)输入标准(Input Criteria):必须。包括输入数据、前提条件、操作步骤
等。前提条件是指事先设定、条件限制,如已经登录、某个选项已经选上等。(7)输出标准(Output Criteria):必须。(8)
测试用例之间的关联:可选。某些测试用例之间是有关联的,在测试用例设计表上要明确地说明它们之间的关联性。(9)优先级:可选。 (10
)关联的缺陷标识符:可选。根据系统复杂情况,可以将所测试出来的缺陷和错误单独列到一个软件Bug文档中,那么此处就要写明关联的缺陷标
识符。6.简述单元测试的过程。单元测试用例的设计工作可以与编写代码同时进行(测试的时候也可以再添加一些用例)。当软件模块详细设计已
经完成,在代码被开发的过程中,单元测试人员就可以开始制定《单元测试方案》,设计单元测试的测试用例,编写测试驱动程序。单元测试可以由
本模块的开发人员进行,也可以由项目组内的开发人员交叉进行。经过多轮循环的单元测试——〉发现Bug——〉修复Bug——〉单元测试,测
试通过后,单元测试人员填写该模块的《单元测试报告》,并把历次测试发现的Bug的情况(条目、类型、解决结果)记录在《单元测试报告》中
。7.简述单元功能测试时,如何综合运用黑盒测试的各个方法。一般是先划分出等价类,再选取每一个等价类中的代表数据,遇到边界,利用边界
值法进行细致的测试用例的补充。当存在多个因素时,要采用判定表法、条件组合等方法进行多因素的排列组合式的测试用例设计。8.简述软件测
试各个阶段的区别。4.软件的测试主要分为单元测试、集成测试、系统测试三个阶段,每个阶段的测试对象、测试目标、测试方法和评估基准等各
不相同。(1)测试方法不同。系统测试属于黑盒测试,它只需要关注系统功能的正常实现以及在不同条件下系统所表现出来的性能,而不需要关心
系统是如何实现这些功能的。单元测试、集成测试属于白盒测试、灰盒测试的范畴,需要关心代码的实现或者不同组件之间是如何交互通信的。(2
)测试对象和目标不同。单元测试主要测试函数内部的接口、数据结构、逻辑和异常处理等对象,它关注的是一段代码的实现质量的好坏。集成测试
主要测试模块之间的接口,它关注的是几个模块之间配合运行质量的好坏。系统测试主要测试整个系统的规格实现情况,包括测试系统在各种测试条
件和用户使用条件下所表现的性能,并且证明在这些条件下系统能够达到用户定义的质量。(3)评估基准不同。系统测试评估标准是测试用例的需
求规格的覆盖率。单元测试、集成测试主要的评估标准是代码和功能设计的覆盖率。五、综合题(本大题共2题,每题15分,共30分)1.下列
代码是Junit实验地铁购票系统的部分代码,请按要求回答问题。public class MetroTicket {private
int _OneTicket,_Line1Num,_Line2Num,_count_of_five,_count_of_Ten,_
count_of_OneHundred;private String[] _lineno={"Line1","Line2"};pr
ivate int _money;private String _result;public MetroTicket(){init
();}private void init(){_OneTicket=5;_count_of_five=0;_count_of_T
en=0;_count_of_OneHundred=0;}public String Operate(String lineno,
int money) //type是用户选择的产品,money是用户投币种类,{if(money==5)//如果用户投入5元钱{i
f(lineno.equals(_lineno[0]))//如果用户选择line1{_count_of_five++;_resul
t="You have pay for the Line1. Please pick it up.";return _result
;}else if(lineno.equals(_lineno[1]))//如果用户选择Line2{_count_of_five+
+;_result="You have pay for the Line2. Please pick it up.";return
_result;}elsereturn "The line message is errno!!!";}else if(mone
y==10)//如果用户投入10元钱{if(lineno.equals(_lineno[0]))//如果用户选择Line1{if(
_count_of_five>=1)//如果有零钱找{_count_of_five--;_count_of_Ten++;_resu
lt="You have pay for the Line1. Please pick it up and the loose c
hange.";return _result;}elsereturn "There has no loose change,Ple
ase pick up your money,Sorry!!!!";}else if(lineno.equals(_lineno[
2]))//如果用户选择Line2{if(_count_of_five>=1)//如果有零钱找{_count_of_five--;
_count_of_Ten++;_result="You have pay for the Line2. Please pick
it up and the loose change.";return _result;}elsereturn "There ha
s no loose change,Please pick up your money,Sorry!!!!";}return "T
he line message is errno!!!";}return "The money message is errno!
!!";}public static void main(String[] args) {// TODO Auto-generat
ed method stubSystem.out.println("Hello,Welcome");MetroTicket Met
roTicket1 = new MetroTicket() ;MetroTicket1.init();MetroTicket1.O
perate("Line1",200);}}(1)请在横线部分补全测试用例代码:import static org.junit.A
ssert.;import org.junit.After;import org.junit.Before;import org
.junit.Test;public class MetroTicketTest {@Beforepublic void setU
p() throws Exception {}@Afterpublic void tearDown() throws Except
ion {}@Test本条测试用例测试用户购买1号线,投币20元钱,购票失败public final void testOpera
te_1() {MetroTicket obj1=new MetroTicket();String ExpectedResult=
"________________________________________________";(2分)assertEqua
ls(ExpectedResult,_________________________);(2分)}@Test本条测试用例测试用户
选择线路错误,投币5元钱,购票不成功public void testOperation_2(){MetroTicket obj1=
new MetroTicket();String ExpectedResult=_________________________
_______;(2分)assertEquals(ExpectedResult,_________________________
_);(2分)}(2)用户购买2号线,投币10元,找零成功,购票成功。请编写相应的测试代码实现上述测试。(7分)1.(1)"The
money message is errno!!!"(2分)obj1.Operate("Line1",20) (2分)"The
line message is errno!!!" (2分)obj1.Operate("Line3",5) (2分)(2) @Te
st public void testOperation_4(){MetroTicket obj1=new MetroTicket
();obj1.Operate("Line1",5);String ExpectedResult="You have pay fo
r the Line1. Please pick it up and the loose change.";assertEqual
s(ExpectedResult,obj1.Operate("Line2",10));}2.请根据下面流程图,完成判定覆盖测试用例
设计表格。测试用例具体取值条件覆盖判定覆盖路径输入:a=2,b=1,c=6输出:a=2,b=1,c=5a>0 , b>0a>1 ,
c>1M=.T. N=.T.P1(1-2-4)输入:a=-2,b=1,c=6输出:a=-2,b=1,c=8a≤0 , b>0a
≤1 , c>1M=.F. N=.F.P4(1-3-5)3.请根据下图所示功能,针对“新用户注册成功”功能写出测试用例。4.根据
以下对word软件“显示文档内容”功能的描述,编写PICT测试配置文件ceshi.txt。“显示文档内容”设置的内容包括以下几项:
(1)“显示域代码而非域值”复选框。(2)“域底纹”复选框。只有选中了“域底纹”复选框,下拉列表框才有效,否则下拉列表框不可选。下
拉列表框内容为:选取时显示,不显示,始终显示。(3)“在草稿和大纲视图中使用草稿字体”复选框。只有选中了“在草稿和大纲视图中使用草
稿字体”复选框,“”“名称”和“字号”下拉列表框才同时有效,否则下拉列表框均不可选。“名称”下拉列表框内容为:宋体,仿宋,隶书,黑
体。“字号”下拉列表框内容为:五号,四号,三号,二号。结论:显示域代码而非域值:真,假域底纹:真,假下拉列表框内容为:选取时显示,
不显示,始终显示,未选中在草稿和大纲视图中使用草稿字体:真,假名称:宋体,仿宋,隶书,黑体,未选中字号:五号,四号,三号,二号,未
选中IF[域底纹]="真"THEN([下拉列表框内容为] IN{"选取时显示","不显示","始终显示"});IF[域底纹]="假
"THEN([下拉列表框内容为]= "未选中");IF[在草稿和大纲视图中使用草稿字体]="真"THEN([名称] IN{"宋体
","仿宋","隶书","黑体"} AND [字号] IN{"五号","四号","三号","二号"});IF[在草稿和大纲视图中使
用草稿字体]="假"THEN([名称]="未选中" AND [字号]="未选中");5.请根据下面示例程序源码,完成相关操作。
import java.util.Scanner;public class DecisionCoverage {public st
atic void main(String[] args) { System.out.println("请输入参数!"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); double c=sc.nextDouble(); if(a>0 && b>0) { c=c/a; } if(a>1 || c>1) { c=c+1; } c=c+b; System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); }}(1)根据示例程序画出相应程序流程图,分析程序流程图中的语句、判定、条件等内容,并画出简化后的程序流程图。(2)完成条件覆盖的测试用例设计表格。测试用例具体取值条件覆盖判定覆盖条件覆盖路径输入:a=2,b=-1,c=-2输出:输入:a=-1,b=2,c=3输出:结论:(1)根据示例程序画出相应程序流程图,分析程序流程图中的语句、判定、条件等内容,并画出简化后的程序流程图。(2)条件覆盖的测试用例设计表格测试用例具体取值条件覆盖判定覆盖条件覆盖路径输入:a=2,b=-1,c=-2输出:a=2,b=-1,c=-2a>0 , b≤0a>1 , c≤1M=FN=TT1,F2,T3,F4P3(1-3-4)输入:a=-1,b=2,c=3输出:a=-1,b=2,c=6a≤0 , b>0a≤1 , c>1M=FN=TF1,T2,F3,T4P3(1-3-4)1
献花(0)
+1
(本文系太好学原创)