第一章 软件测试理论 一、选择题
1. 软件测试的目的是 C 。
A.表明软件的正确性 B.评价软件质量 C.尽可能发现软件中的错误 D.判定软件是否合格 2. 下面关于软件测试的说法, A 是错误的。 A.软件测试是程序测试
B.软件测试贯穿于软件定义和开发的整个期间
C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象
3. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证: ①经过自己测试的软件今后不会再出现问题;
②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结;
③承诺不需要其他人员,自己就可以独立进行测试工作;
④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休; 你认为应聘者甲的保证 B 。
A.①、④是正确的 B.②是正确的 C.都是正确的 D.都不正确 4. 软件测试的对象包括 B 。
A.目标程序和相关文档 B.源程序、目标程序、数据及相关文档 C.目标程序、操作系统和平台软件 D.源程序和目标程序
5. 导致软件缺陷的原因有很多,①-④是可能的原因,其中最主要的原因包括 D 。
①软件需求说明书编写的不全面,不完整,不准确,而且经常更改 ②软件设计说明书 ③软件操作人员的水平 ④开发人员不能很好的理解需求说明书和沟通不足 A.①、②、③ B.①、③ C.②、③ D.①、④
二、简答题
1.简述软件测试发展的历史及软件测试的现状。 参考答案:
软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。
到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。
到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。
在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。
但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。
总之,国内软件测试行业与一些发达国家相比还存在一定的差距。
2. 简述软件缺陷在不同阶段发现错误修复的费用。 参考答案:
软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。
3.简述软件测试的复杂性。 参考答案:
软件测试的复杂性体现在:
? 不可能对程序实现完全测试。 ? 杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试
程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不被发现。 ? 软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,
而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。
? 在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决
定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。
4.对软件测试的经济性进行总结和分析 参考答案:
软件测试是软件生命期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其他的相关费用。影响测试费用的主要因素有:
(1) 软件的功能,软件产品需要达到的标准决定了测试的数量。对于那些至关重要的系统必须进行更多的测试。
(2) 目标用户的数量,一个系统的目标用户数量的多少也在很大程度上影响了测试必要性的程度。
(3) 潜在缺陷造成的影响 在考虑测试的必要性时,还需要将系统中所包含的信息价值考虑在内。因此我们应该从经济方面考虑,投入与经济价值相对应的时间和金钱去进行测试。
(4) 开发机构的业务能力
一个没有标准和缺少经验的开发机构很可能会开发出充满错误的软件系统。而一个建立了标准和有很多经验的开发机构开发出来的软件系统中的错误将会少很多。
(5) 测试的时机
测试量会随时间的推移发生改变,在一个竞争很激烈的市场里,争取时间可能是制胜的
关键。测试量应该针对合适的目标进行调整。
5. 谈谈你对今后从事软件职业的打算。 略
6.简述软件测试工程师应具备的素质。 参考答案:
通常软件人员应具备如下素质: (1) 良好的沟通能力 (2) 掌握比较全面的技术 (3) 充分的自信心
(4) 足够的耐心和责任感
(5) 要具备怀疑精神和学习能力 (6) 超强的记忆力和良好的洞察力
7.谈谈你对软件测试的重要性理解。 略
第二章 软件测试基础 一、选择题
1. 软件质量的定义是 D 。
A.软件的功能性、可靠性、易用性、效率、可维护性、可移植性 B.满足规定用户需求的能力 C.最大限度达到用户满意
D.软件特性的总和,以及满足规定和潜在用户需求的能力
2.关于软件测试对软件质量的意义,有以下观点:
①度量与评估软件的质量; ②保证软件质量; ③改进软件开发过程; ④发现软件错误。 其中正确的是 C 。
A.①、②、③ B.①、②、④ C.①、③、④ D.①、②、③、④
3. 关于软件质量的描述,正确的是 D 。 A.软件质量是指软件满足规定用户需求的能力
B.软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性 C.软件质量保证过程就是软件测试过程 D.以上描述都不对 二、 简答题
1. 简述软件测试的目标及标准。 参考答案:
软件测试的目的就在于在软件投入运行之前,尽可能多地发现软件中的错误。