软件测试技术复习题汇总一、名词解释1.软件测试2.测试用例3.回归测试4.白盒测试5.黑盒测试6.单元测试7.集成测试8.系统测试9.测试10.软件故障11.调试12.V&V(验证和确认)13.遗漏缺陷14.程序插装15.测试覆盖率16.等价类划分测试17.软件失效18.语句覆盖19.变异测试二、简答题1.简述软件测试的基本职责2.试论述自底向上集成测试的实施步骤及其优缺点3.什么是集成测试,一般在何时进行;请论述其集成测试方法的分类4.简述黑盒测试的优缺点5.试叙述V测试模型,给出其示意图,并说明其局限性和改进途径6.简述单元测试与集成测试的区别7.制定测试计划的主要步骤有哪些8.功能性测试有哪几种方法?请简单描述各种方法的特点9.简述G.Myers阐述的测试目标10.简述白盒测试的优缺点11.静态测试有哪些方法,试比较这些方法的异同三、判断正误题1.测试员需要尽早地和不断的进行软件测试2.测试员是可以对所有可能的输入进行测试的3.测试员可以对每一条程序的可能执行路径进行测试4.通过软件测试,我们可以找出所有的软件错误5.程序员应该尽量避免测试自己书写的程序6.软件调试和软件测试是一样的7.软件测试在软件开发过程中可以忽略8. 所有的软件测试都应该在软件开发完成之后进行9.软件测试的流程是单元测试->集成测试->系统测试10.单元测试是一种浪费时间的工作11.如果程序员非常出色,是可以不进行单元测试的12.集成测试可以捕捉到所有的BUG13.单元测试的成本效率不高14.单元测试是证明代码做了什么的工作15.等价类测试的关键在于选择确定类的等价关系16.对于软件测试,完全测试是不可能的,但是我们应该修复所有找到的缺陷17.经过软件测试,如果发现的缺陷数目越多,则软件中剩余残存的缺陷数目越少18.软件测试就是通过一定的方法测试程序中是否存在错误19.完整的测试流程为:单元测试—联调—集成测试—系统测试20.测试用例应由测试输入数据和对应的预期输出结果这两部分组成21.如果一个等价类中的一个测试没有发现缺陷,那么这个等价类的其他测试也不能发现缺陷22.在软件测试过程中,不允许程序员检查自己的程序23.对于软件缺陷是否应该修复,其决策过程应由软件测试员、项目管理员和程序员共同参与24. 软件测试得越彻底,得到的经济收益也就越高25. 达到了判定覆盖也一定达到了语句覆盖26. 自底向上进行集成测试的优点是不需要构造桩(stub)模块27. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可28. TMM是CMM的一个关键性级别29. 白盒测试也称逻辑驱动测试30. 测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计31. 所有的软件故障均有编码错误引起32. W模型仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段33. 验收测试往往不是对系统进行全覆盖测试,而是针对用户的核心业务流程进行的测试34. 自顶向下集成测试最显著的优点是不需要桩模块35. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类36. 由于完全的测试是不能的,所以对于任何程序的任何一种覆盖不可能实现全覆盖37. 自底向上集成测试最显著的优点是不需要桩模块38. 软件缺陷是由软件失效导致的结果39. 条件覆盖的覆盖能力不一定强于判定覆盖40. 一个类的部分代码做修改了,只需要保证修改的部分测试到了即可41. 正交试验法产生的测试用例数目一定要少于简单对比法产生的测试用例四、选择题1.驱动模块和桩模块的定义以及用途2.决策表和因果图的图示以及使用方法3.正交试验法的实验次数,例如6因子5水平的问题采用“简单对比法”需要进行的试验次数,正交试验法的试验次数4.控制流图(CFG,Control Flow Graphic)的画法以及作用5.V模型、W模型以及H模型的图示以及作用6.边界值测试方法中的测试用例数目计算7.软件测试方法的分类8.各种覆盖测试之间的关系9.等价类划分五、用例设计题1.采用健壮性边界值测试方法,对一个两个数的加法器进行测试(两个输入值均在1至100之间,包含1和100)2.金额校验测试用例设计:金额范围[0.00,999.99](最多只能有两位小数),要求划分等价类,然后设计测试用例。
例如输入:568.57 210. 23.4输出:568元5角7分210元23元4角3.某直辖市的电话号码由三部分组成,这三部分的名称和内容分别是:地区码:空白或3位数字;前缀:非“0”和非“1”开头的3位数字;后缀:5位数字假定被测程序接受一切符合上述规定的电话号码,拒绝所有不符合的号码,试设计它的测试用例(支持单缺陷假设)。
4.请为前一日/下一日(Predate/Nextdate)设计强一般等价类(即假设所有输入数据均合法)。
5.试对以下程序设计语句覆盖、路径覆盖以及判定覆盖测试用例。
(其余覆盖方法大家自行完成)If (A > 1) and (B = 0) thenX = X / A;If (A = 2) or (X > 2) thenX = X + 1;6. 试对以下程序设计语句覆盖、路径覆盖以及判定覆盖测试用例。
if(x>=80&&y>=80)t=1;elseif(x+y>=140&&(x>=90||y>=90))t=2;elset=3;7. 以下代码为C语言书写,请认真阅读程序并回答问题(1)至问题(3)。
01 void sort ( int irecordnum, int itype )02 {03 int x=0;04 int y=0;05 while ( irecordnum-- > 0 )06 {07 if ( itype= =0 )08 break;09 else10 if ( itype= =1 )11 x=x+10;12 else13 y=y+20;14 }15 }说明:程序段中每行开头的数字(01~15)是对每条语句的物理行号。
(1) 请画出以上代码的控制流图CFG。
(2) 试用三种方法分别计算该程序段的基本路径数目。
(3) 使用基本路径测试法为变量irecordnum、itype设计测试用例(写出irecordnum取值、itype取值和函数预期返回结果),使其满足基本路径覆盖的要求。
8. 用因果图法测试以下程序。
程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。
(1) 分析程序的规格说明,列出原因和结果。
(2) 找出原因与结果间的因果关系、原因与原因间的约束关系,画出因果图。
(3) 将因果图转换成决策表。
(4) 根据(3)中的决策表,设计测试用例的输入数据和预期输出。
9.根据下面给出的规格说明,利用等价类划分的方法,给出该程序的等价类划分。
“一个程序读入3个整数,把这3个数值看作是一个三角形的3条边的长度值。
这个程序要打印出信息,说明这个三角形是一般三角形、是等腰三角形、还是等边的”。
10.使用逻辑覆盖测试方法测试以下程序段:01 void DoWork(int x, int y, int z)02 {03 int k=0, j=0;04 if ( (x>3)&&(z<10) )05 {06 k=x*y-1;07 j=sqrt(k);08 }09 if ( (x==4)||(y>5) )10 j=x*y+10;11 j=j%3;12 }说明:程序段中每行开头的数字(1~12)是对每条语句的编号。
(1) 画出程序的控制流图CFG(用题中给出的语句编号表示)。
(2) 分别以语句覆盖、判定覆盖、条件覆盖、条件判定覆盖和路径覆盖方法设计测试用例(数据),并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
11. 以下代码为C语言书写,能根据指定的年月计算当月所含天数。
请认真阅读程序并回答问题(1)至问题(3)。
01 int GetMaxDay(int year, int month)02 {03 int maxday=0;04 if( month>=1 && month<=12)05 {06 if(month==2)07 {08 if(year%4==0)09 {10 if(year%100==0)11 {12 if(year%400==0)13 maxday=29;14 else15 maxday=28;16 }17 else18 maxday=29;19 }20 else21 maxday=28;22 }23 else24 {25 if(month==4 || month==6 || month==9 || month==11)26 maxday=30;27 else28 maxday=31;29 }30 }31 return maxday;32 }(1) 请画出以上代码的控制流图CFG。
(2) 试分别用三种方法计算该程序段的基本路径数目。
(3) 假设输入的取值范围是1000<year<2001,请使用基本路径测试法为变量year、month设计测试用例(写出year取值、month取值和maxday预期结果),使其满足基本路径覆盖的要求。
12. 针对下面程序段,请分别给出满足SC、DC、CC、CDC和MCC这几种覆盖准则的测试数据(即测试输入)集。
int function(bool a, bool b, bool c){int x;x=0;if(a && b || c)x=1;return x;}注:语句覆盖SC(Statement Coverage)判定覆盖DC(Decision coverage)条件覆盖CC(Condition Coverage)条件判定组合覆盖CDC(Condition/ Decision Coverage)即判定条件覆盖多条件覆盖MCC (Multiple Condition Coverage)即条件组合覆盖修正的判定条件覆盖MCDC(Modified Condition Decision Coverage)。