软件测试-打印
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.判断题:
1.软件测试等于程序测试。( X )
2.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨ )
3.好的测试员坚持不懈地追求完美。( ∨)
4.软件质量保证和软件测试是同一层次的概念。( X )
5.我们相信只要能够设计出尽可能好的测试方案,经过严格测试之后的软件可以没有缺陷。( X )
6.软件生命周期是软件从产生到报废的过程。( ∨)
7.在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的测试方法。( ∨) 8.测试用例的数目越多,测试的效果越好。( X )
9.只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。( X ) 10.没有发现错误的测试是没有价值的。( X ) 11.软件测试工具可以代替软件测试员。( X )
12.单元测试能发现约80%的软件缺陷。( ∨) 13.尽早发现软件缺陷 ,降低修复成本。(∨ )
14.尚未发现或未观察到的软件缺陷只能说是潜在缺陷。(∨ ) 15.测试用例是软件测试的核心。(∨ )
二.选择题:(共15小题,每题1分,满分15分) 1.软件测试的目的:( C )
A. 避免软件开发中出现的错误
B. 发现软件开发中出现的错误
C. 尽可能早地发现并排除软件中潜藏的错误,提高软件的可靠性
D. 修改软件中出现的错误 2、导致软件缺陷的最大原因是:(A )
A .软件需求说明书
B .设计方案
C .编码
D .维护
3、测试用例是为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据,至少应该包括( A )
A 、测试输入、执行条件和预期的结果。
B 、测试目标、测试工具
C 、测试环境
D 、测试配置 4.在软件测试阶段,测试步骤按次序可以划分为以下几步:( A )
A. 单元测试、集成测试、系统测试、验收测试
B. 验收测试、单元测试、系统测试、集成测试
C. 单元测试、集成测试、验收测试、系统测试
D. 系统测试、单元测试、集成测试、验收测试 5.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( B )
A .功能测试
B .单元测试
C .结构测试
D .验收测试 6.必须要求用户参与的测试阶段是( D )
A. 单元测试
B. 集成测试
C. 确认测试
D. 验收测试 7、软件缺陷修复的代价最高的阶段为(A )
A 、发布阶段
B 、需求阶段
C 、设计阶段
D 、编码阶段 8.不属于白盒测试的技术是 ( C ) 。
A. 语句覆盖
B. 判定覆盖
C. 边界值分析 D . 基本路径测试 9.不属于逻辑覆盖方法的是( D )。
A .组合覆盖
B .判定覆盖
C .条件覆盖
D .接口覆盖
10、在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,其中( A )是最弱的覆盖准则。 A. 语句覆盖 B. 条件覆盖 C. 判定-条件覆盖 D. 路径覆盖 11、下列( C )方法设计出的测试用例发现程序错误的能力最强。 A .等价类划分法 B .场景法 C .边界值分析法 D .决策表法
12、如果F 实现一个程序,输入变量x1和x2的边界、区间分别为:a ≤x1≤d ,区间为[a,b],[b,c],[c,d];e ≤x2≤g ,区间为[e,f],[f,g];则下列( D )图可表示为强健壮等价类测试用例。
A .
B .
C .
D .
13、( C )方法是根据输出对输入的依赖关系来设计测试用例的。 A.边界值分析 B.等价类 C.因果图法 D.错误推测法
14、对于一个含有n 个变量的程序,采用基本边界值分析法测试程序会产生(C )个测试用例。 A .6n+1 B .5n C 、4n+1 D .7n 15.下列___不是软件自动化测试的优点。( D )
A.速度快、效率高
B.准确度和精确度高
C.能提高测试的质量
D.能充分测试软件
三.填空题。
1.单元测试的辅助模块有驱动模块(Driver )和被调用模拟子模块(sub )两种。
2.测试用例最基本的组成元素有:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。(用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果)(测试功能的描述、测试前提、测试输入、预期结果)
3.集成测试策略有:非增式集成、自顶向下集成、自底向上集成、三明治集成、核心集成、 分层集成、基于使用的集成。
4.缺陷生命周期状态:打开状态、解决状态、关闭状态、审查状态、推迟状态。
5.测试方法分类:
(1)按测试方式分类:静态测试、动态测试(2)按测试方法分类:白盒测试(代码测试)、黑盒测试(功能测试)(3)按测试过程分类:单元测试、集成测试、系统测试、验收测试(4)按测试目的分类:功能测试、安全测试、健壮性测试、可靠性测试、接口测试、性能测试、兼容性测试、用户界面测试。
四.简答题。
1.动静态测试
答:静态测试是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示了一个系统在检查状态下是正确还是不正确。
(区别:静态测试:不需要执行所测试的程序,查询代码是否符合规范,对程序的数据流和控制流进行分析***动态测试:选择实际测试用例运行所测试程序,模拟用户输入。)
2.回归测试的范围
答:回归测试定义:回归测试是指软件系统被修改或扩充后重新进行的测试。严格第说,回归测试不是一个测试阶段,只是一种可以用于单元测试、集成测试、系统测试和验收测试各个测试过程的测试技术。
在回归测试范围的选择上,一个最简单的方法是每次回归执行所有在前期测试阶段建立的 测试,来确认问题修改的正确性,以及没有造成对其他功能的不利影响。
常用的用例选择方法可以分为以下3种:(1)局限在修改范围内的测试;(2)在受影响功能范围内回归;(3)根据一定的覆盖率指标选择回归测试。
3.软件缺陷:(符合下列规则的叫软件缺陷):
1) 软件未达到软件规格说明书中规定的功能;2) 软件超出软件规格说明书中指明的范围; 3) 软件未达到软件规格说明书中指出的应达到的目标;4) 软件运行出现错误;5) 软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好。
五.设计题。
1.白盒测试(基本路径测试,例子是否为闰年) 分析:(1)基本路径测试法的步骤
a 画出程序控制流图
b 计算程序环路复杂性
c 确定独立路径集合
d 准备测试用例 (2)通常环路复杂性可用以下3种方法求得。
① 将环路复杂性定义为控制流图中的区域数。 ② 设E 为控制流图的边数,N 为图的结点数,则定义环路的复杂性为V(G)=E −N+2。③ 若设P 为控制流图中的判定结点数,则有V(G)=P+1。 例题:
使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码与C 语言书写,请按要求回答问题。 Int IsLeap(int year) {
if (year % 4 == 0) 1 {
if (year % 100 == 0) 2 {
if (year % 400 ==0) 3 leap = 1; 4 else
leap = 0; 5 } else
leap = 1; 6 } else
leap = 0; 7 return leap; 8 }
【问题1】请画出以上代码的程序流图
【问题2】请计算上述程序流图的环行复杂度V (G )(独立线性路径图)
【问题3】假设输入的取值范围是1000<year<2001,请使用基本路径测试法为变量year 设计测试用例,使其满足基本路径覆盖的要求。 答:(1)流程图:(见右上角) (2)环形复杂度:V(G)=10-8+2=4 (3)独立路径有
<1>1-7-8 <2>1-2-6-8 <3>1-2-3-4-8 <4>1-2-3-5-8 测试用例4个:
1001:满足不被4整除的路径
1996:满足能被4不能被100整除的路径 2000:满足能被400整除的路径 1800:满足不能被400整除的路径 2. 黑盒测试
(等价类划分,例子nextday 函数)
例子:使用等价类划分法为NextDate 函数设计测试用例:
NextDate 函数包含三个输入变量month 、day 和year (要求month 、day 和year 均为整数值,并且满足:1≤month ≤12,1≤day ≤31,1920≤year ≤2050 ),函数的输出为输入日期后一天的日期。
(1)列出输入域等价表(包括有效和无效等价类)(答案见右上角图形)
(2)根据(1)中的等价类,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。 知识点补充: 1. 辅助模块有两种:
一种是驱动模块(Driver ),用以模拟被测试模块的上级模块。 驱动模块在单元测 试中,接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。
另一种是被调用模拟子模块(sub ),用以模拟被测模块工作过程中所调用的模块。被调用模拟子模块由被测模块调用,它们一般只进行很少的数据处理,以便于检验被测模块与其下级模块的接口。
a b g f e x x
a b
g f e
x a b
g f e x a b
g f e
x x