一、判断
1. 软件需求是度量软件质量的基础 。不符合需求的软件就不具备质量。( √)
2. 全面质量管理的定义是:一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径。 ( √ )
3. 发现错误是软件测试的唯一目的。( ╳ )
4. 白盒测试可以找出软件遗漏功能和代码错误问题。( ╳ )
5.软件的质量有测试组决定。( ╳ )
6.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。 ( √ )
7. 测试从不可知内部条件开始,结果是不可预见的。( ╳ )
8. 软件缺陷一定是由编码所引起的。( ╳ )
9. 软件测试等于程序测试。( ╳ )
10. Beta测试是软件的多个用户在实际使用环境下进行的测试。 (√ )
11. 经验表明,测试后程序残存的错误数目与该程序中以发现的错误数目或检错率成正比。( √)
12.验收测试比较适合采用软件自动化测试工具进行测试。( ╳ )
13. 软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨ )
14. 软件质量保证和软件测试是同一层次的概念。(x )
15. 我们有理由相信只要能够设计出尽可能好的测试
,经过严格测试之后的软件可以没有缺陷。( x )
16. 程序员兼任测试员可以提高工作效率。( x )
17. 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。( ∨ )
18. 传统测试是在开发的后期才介入,现在测试活动已经扩展到了整个生命周期。( ∨ )
19. 传统测试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。∨
20. 软件测试的生命周期包括测试
、测试设计、测试执行、缺陷跟踪、测试评估。(∨ )
21. 调试从一个已知的条件开始,使用预先定义的过程,有预知的结果;测试从一个未知的条件开始,结束的过程不可预计。( x )
22. 白盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。( x )
23. 在边界值方法中,对于一个有n个变量的函数作最坏情况测试,生成的测试用例个数是7n个。( x )
24. 软件生存周期是从软件开始开发到开发结束的整个时期。 ( x )
25. 在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的测试方法。( ∨ )
26. 永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。(∨ )
27. 测试用例的数目越多,测试的效果越好。( x )
28. 只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。( x )
29. 单元测试属于动态测试。( ∨ )
30. 验收测试是以最终用户为主的测试。(∨ )
31. 没有发现错误的测试是没有价值的。( ∨ )
32. 可以把不合格的开发人员安排做测试。( x )
得分
评卷人
二、选择题
1.某次程序调试没有出现预计的结果,下列( B )不可能是导致出错的原因。
A. 变量没有初始化 B. 编写的语句书写格式不
C. 循环控制出错 D. 代码输入有误
2.软件测试是软件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?( B )
A预防软件发生错误 B发现改正程序错误 C提供诊断错误信息 D.都是
3.下面的哪一项测试步骤中需要进行局部数据结构测试: ( A )
A. 单元测试 B. 集成测试 C. 确认测试 D.系统测试
4.白盒测试是根据程序的( C )来设计测试用例
A.功能 B.性能 C.内部逻辑 D.内部数据
5.( C )方法根据输出对输入的依赖关系设计测试用例。
A.路径测试 B.等价类 C.因果图 D.归纳测试
6.有一组测试用例,它使被测程序中的每一个分支至少执行一次,它满足的覆盖标准是:( B )
A.语句覆盖 B. 判定覆盖 C. 条件覆盖 D.路径覆盖
7.软件测试按照测试层次可以分为( c )
A.黑盒测试、白盒测试 B. 功能性测试和结构性测试
C.单元测试、集成测试和系统测试 D、动态测试和静态测试
8、软件测试是采用( a )执行软件的活动。
A.测试用例 B.输入数据
C.测试环境 D.输入条件
9.软件测试是软件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?答案:( d )
1预防软件发生错误 2发现程序错误 3提供诊断错误信息
A.只有1 B.只有2 C.只有3 D.都是
10、导致软件缺陷的最大原因是:( a )
A.软件需求说明书 B.设计方案
C.编码 D.维护
11、测试用例是为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据,至少应该包括( a )
A、测试输入、执行条件和预期的结果。 B、测试目标、测试工具
C、测试环境 D、测试配置
12、对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档,这种行为属于( b )
A.测试 B.调试
C.回归测试 D.单元测试
13、软件缺陷修复的代价最高的阶段为( a )
A、发布阶段 B、需求阶段
C、设计阶段 D、编码阶段
14、下列( b )是关于软件缺陷的描述。
A.导致软件包含故障的人的行为
B.产品的异常情况
C.引起一个功能部件不能完成所要求的功能的一种意外情况
D.功能部件执行其规定功能的能力丧失
15、可作为测试停止的标准是( d )
A.当时间用光时
B.执行了所有的测试用例,但没有发现故障
C.当所有缺陷都已经清除时
D.当达到所要求的覆盖时
16、下列描述错误的是( a )
A.软件发布后如果发现质量问题,那是软件测试人员的错
B.穷尽测试实际上在一般情况下是不可行的
C.软件测试自动化不是万能的
D.测试能由非开发人员进行,调试必须由开发人员进行。
17、( c )方法是根据输出对输入的依赖关系来设计测试用例的。
A.边界值分析 B.等价类
C.因果图法 D.错误推测法
18、测试
师的工作范围会包括检视代码、评审开发文档,这属于( b )
A.动态测试 B.静态测试
C.黑盒测试 D.白盒测试
三、简答题
1、功能测试的定义,并指出几种主要的测试用例设计方法。
答:功能测试是指依据产品设计规格说明完成对产品功能进行操作,以验证系统是否满足用户的功能性需求。
测试用例设计的主要方法有:等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、功能图分析方法
2、什么叫做集成测试?集成测试策略中增值式测试和非增值式测试是什么?
答:集成测试又称组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成子系统或系统进行的测试活动。
增值式策略:这种集成方式又称渐增式组装。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。通过增值逐步组装成为要求的软件系统。
非增值式策略:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
3、简述软件测试的主要过程。
测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。然后,进行集成测试,根据设计规定的软件体系结构,把已测试过的模块组装起来,在组装过程中,检查程序结构组装的正确性。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。严格地说,系统测试已超出了软件工程的范围。
4、设计题
1、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::
void SelectSort ( datalist & list ) {
//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。
for ( int i = 0; i < list.n-1; i++ ) {
int k = i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象
for ( int j = i+1; j < list.n; j++)
if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; //当前具最小关键码的对象
if ( k != i ) Swap ( list.V[i], list.V[k] ); //交换
}
}
(1) 试计算此程序段的McCabe复杂性;
(2) 用基本路径覆盖法给出测试路径;
(3) 为各测试路径设计测试用例。
参考答案:
解:(1) McCabe环路复杂性 = 5
(2) 独立路径有5条:
①③
①②⑤⑧……
①②⑤⑨……
①②④⑥……
①②④⑦……
(3) 为各测试路径设计测试用例:
路径①③:取n = 1
路径①②⑤⑧……:取n = 2,
预期结果:路径⑤⑧③不可达
路径①②⑤⑨……:取n = 2,
预期结果:路径⑤⑨③不可达
路径①②④⑥⑤⑧③: