一、选择题
1. 缺陷产生的原因包括()
A. 交流不充分及沟通不畅;软件需求的变更;软件开发工具的缺陷
B. 软件的复杂性;软件项目的时间压力
C. 程序开发人员的错误;软件项目文档的缺乏
D. 以上都是
2. 下面有关软件缺陷的说法中错误的是()
A. 缺陷就是软件产品在开发中存在的错误
B. 缺陷就是软件维护过程中存在的错误、毛病等各种问题
C. 缺陷就是导致系统程序崩溃的错误
D. 缺陷就是系统所需要实现某种功能的失效和违背
3.以下选项不属于软件缺陷的是()
A. 软件没有实现产品规格说明所要求的功能
B. 软件中出现了产品规格说明不应该出现的功能
C. 软件实现了产品规格没有提到的功能
D. 软件满足用户需求,但测试人员认为用户需求不合常理
正确答案:D
4.下面有关测试原则的说法正确的是()
A. 测试用例应由测试的输入数据和预期的输出结果组成
B. 测试用例只需选取合理的输入数据
C. 软件最好由开发该软件的程序员自己来做测试
D. 使用测试用例进行测试是为了检查程序是否做了它该做的事
正确答案:A
5. 在软件生命周期的哪一 个阶段,软件缺陷修复费用最低()
A. 需求分析(编制产品说明书) B. 设计
C. 编码 D. 产品发布
正确答案:A
6. 为了提高测试的效率,应该()
A. 随机地选取测试数据
B. 取一切可能的输入数据作为测试数据
C. 在完成编码以后制定软件的测试计划
D. 选择发现错误可能性大的数据作为测试数据
正确答案:D
7. 下列说法不正确的是()
A. 测试不能证明软件的正确性
B. 测试员需要良好的沟通技巧
C. QA与testing属于一个层次的概念
D. 成功的测试是发现了错误的测试
正确答案:D
8. 下列()不属于软件缺陷。
A. 测试人员主观认为不合理的地方
B. 软件未达到产品说明书标明的功能
C. 软件出现了产品说明书指明不会出现的错误
D. 软件功能超出产品说明书指明范围
正确答案:A
9.产品发布后修复软件缺陷比项目开发早期这样做的费用要高()
A. 1~2倍 B.10-20倍 C. 50倍 D. 100 倍或更高
正确答案:D
10. 软件测试的目的是()
A. 发现程序中的所有错误
B. 尽可能多地发现程序中的错误
C. 证明程序是正确的
D. 调试程序
正确答案:B
11.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该()
A.较少 B. 较多 C. 相似 D. 不确定
正确答案:B
12.导致软件缺陷的最大原因是()
A. 需求分析 B. 设计 C. 编码 D. 测试
正确答案:A
13. 下列中不属于测试原则的是()
A. 软件测试是有风险的行为
B. 完全测试程序是不可能的
8. 测试无法显示潜伏的软件缺陷
D.找到的缺陷越多软件的缺陷就越少
正确答案:D
14. 一个成功的测试是()
A. 发现错误码 B. 发现了至今尚未发现的错误
C. 没有发现错误码 D.证明发现不了错误
正确答案:B
15. 权衡多个因素,较实用的软件测试停止标准是()
A. 测试超过了预定时间,则停止测试。
B. 根据查出的缺陷总数量决定是否停止测试。
C. 测试成本超过了预期计划,则停止测试。
D. 分析发现的缺陷数量和测试投入成本曲线图,确定应继续测试还是停止测试。
正确答案:D
16.第一类测试方法与第二类测试方法的本质区别体现在()
A. 执行测试的人员不同 B. 执行测试的时间不同
C. 执行测试的目的不同 D. 执行测试的效果不同
正确答案:C
17.下列不属于软件缺陷的是()
A. 银行POS机在用户取款时翻倍吐钱,取100吐200
B. 计算机病毒发作,屏幕出现熊猫烧香画面
C. 网上售票软件反应迟钝,用户难以正常买票
D. 某软件在进行修改升级之后, 原来正常的功能现在出错了
正确答案:B
二、填空题
1. 软件测试是使用人工或自动的手段来____或____某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
答案:运行 测定
2. 软件质量成本包括所有由质量工作或者进行与质量有关的活动所导致的成本,包括____、、。
答案:预防成本 评价成本 失效成本
3. 软件缺陷产生的原因包括____、____、____以及____等
答案:软件自身的特点 团队合作 技术问题 项目管理
4. 就是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。它的存在会导致软件产品在某种程度上不能。
答案:软件缺陷 满足用户的需要
三、判断题
没有可运行的程序,就无法进行任何测试工作。 ✘
软件测试针对的是初级程序员编写的程序,资深程序员编写的程序无需测试。 ✘
测试是为了验证软件已正确地实现了用户的要求。 ✘
测试一个程序,只需按程序的预期工作方式运行它就行了。 ✘
好的测试员坚持不懈追求完美。 ✘
软件测试工具可以代替软件测试员。 ✘
在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。 ✘
程序员与测试工作无关。 ✘
我是个很棒的程序员,我无需进行单元测试。✘
软件缺陷是导致软件失效的必要,而非充分要求。✔
在软件产品计划阶段,不必进行SQA活动。✘
四、解答题
1、什么是软件测试、软件质量保证?分析它们之间的关系如何。
==软件测试==:使用人工或自动手段来运行或测定某个软件系统过程,检验它是否满足规定的需求或弄清预期结果与实际结果之间差别。
==软件质量保证==:SQA是为保证软件产品和服务充分满足用户要求的质量而进行的有计划、有组织的活动。
==关系==:
①软件测试是事后检查,SQA是贯穿于整个过程。
②SQA侧重于过程的管理和控制,是一项管理工作。
③软件测试是过程管理和控制策略的具体执行。是一项技术型工作。
④有了SQA,测试工作就可以被客观的检查评价。
⑤软件测试为SQA提供数据和依据。
⑥测试通常被认为是质量控制的主要手段。
2.试分析应如何降低软件质量成本。
软件质量成本包括:预防成本,评估成本,失败成本。
①及早发现问题,解决问题,降低返工和修复缺陷的版本。
②防止事故发生,降低失败成本。
③保证软件产品达到一定的质量标准
④对软件质量进行客观的评价。
⑤提高软件产品质量,满足用户需求。
3、什么是PIE模型?试分析PIE模型对软件测试设计有何指导意义。
==PIE模型==:实际上就是代码执行到Fault,感染产生Error,传播出去(输出),我们可以观测到Failure失效行为。这就是PIE模型。
==意义==:得可能存在的软件缺陷通过程序执行都尽可能地产生问题且被外部观察到。
4.试分析软件缺陷产生的原因。
①软件自身特点,软件需求不明确,软件结构复杂,精确时间同步不准确,运行环境复杂。
②项目管理,开发人员与用户,或开发人员间沟通不够,开发人员理解不同,技术人员水平参差不齐。
③团队合作,系统结构设计不合理,没有备份,程序逻辑路径或数据范围不够,算法,语法,计算错误。
④技术问题,缺乏质量意识,流程不够完善,软件文档不完善,开发过程不按照规定。
5.试分析为什么要对软件进行质量保证与测试。
①及早发现问题,解决问题,降低返工和修复缺陷的版本。
②防止事故发生,降低失败成本。
③保证软件产品达到一定的质量标准
④对软件质量进行客观的评价。
⑤提高软件产品质量,满足用户需求。
6.计算机病毒是否是软件缺陷?为什么?
不属于,软件缺陷是指软件中存在的偏差,且病毒则来自外部。
7.第一类测试方法与第二类测试方法各自的优缺点是什么?
==优点==:
第一类测试方法以正向思维出发,有利于界定测试工作范围,确定测试的重点,加强针对性。
第二类测试方法以逆向思维出发,有利于发挥测试人员主观能动性,往往能发现更多错误。
==缺点==:
第一类:比较繁杂,需要准备的东西多。
第二类:测试往往不稳定,比较依赖测试人员的经验。
8.针对以下代码,分析代码中存在的问题和缺陷。
public class getScoreAverage
{ public float getAverage( int [] scores )
{ if (scores==null || scores.length==0)
{ throw new NullPointerException();
}
float sum = 0.0F;
int j=scores.length;
for (int i=l; i<j; 1++)
{ sum += scores[i];
}
return sum/j;
}
}
9.有程序段如下:
public int get_ max(int x,int y,int z){
int max;
if(x>=y)
{ max = x; }
else
{ max = y; }
if( z>=x )
{ max = z; }
return max;
}
(1)试分析该程序段有何逻辑错误。
(2)设计1个测试数据,使执行该测试时会执行到缺陷代码但不会触发错误。
(3)设计1个测试数据,使执行该测试时会执行到缺陷代码并触发错误,但不会引起失败。
(4)设计1个测试数据,使执行该测试时会执行到缺陷代码,触发错误,并引起失败。