文档库 最新最全的文档下载
当前位置:文档库 › 第二章 软件测试概述

第二章 软件测试概述

第二章 软件测试概述
第二章 软件测试概述

第二章软件测试的概述

2.1软件测试的定义

上面我们讨论了软件测试的定义问题,现在给出软件测试的准确定义。

软件测试是为了发现错误而执行程序甚至不用执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。

可见软件测试的目的是

(1) 为了寻找错误,并尽可能地为修正错误提供更多的信息

(2) 为了证明软件有错误,而不证明软件没有错误

(3) 通过软件测试来检查系统是否满足需求,这也是测试的期望目标。

那么为了能够成功的实施测试,发现软件中的错误,软件测试应该遵循一些原则:

1.)测试应该基于用户需求

2.)测试设计是关键。测试时间和资源是有限的,要避免冗余的测试和考虑到尽可能全面的情况。

3.) 应该尽早和不断的测试。

4.) 程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。

5.) 对测试错误结果要有一个确认的过程

6.) 要有合理的测试计划,不要希望在极短的时间内完成一个高水平的测试。

7.) 要注意回归测试的关联性,尽可能避免引入新的错误。

8.) 妥善保存测试过程文档,测试的重现性往往要靠测试文档。

2.2软件测试的发展史

软件测试是伴随着软件的产生而产生的。早期的软件测试较为狭隘,测试相当于“调试”,由开发人员自己完成这部分工作。通常是形成代码、产品基本完成时才进行测试,对测试的投入非常的少。直到1957年,软件测试才成为一种发现软件缺陷的活动。由于缺乏软件工程的概念,测试仍旧是开发之后的事情。1972年在北卡罗来纳大学举行了首次软件测试正式会议,1975年John Good Enough和Susan Gerhart在IEEE上发表了“Toward a Theory of Test Data Selection”(测试数据选择原理)的文章,软件测试才被确定为一种研究方向。1979年,Glen ford Myers的《The Art of Software Testing》(软件测试艺术)是测试领域的第一本重要专著。在这本书中,Myers以及其同事们将软件测试定义为“测试是为发现错误而执行的一个程序或者系统的过程”。

到了20世纪80年代,软件测试不再单纯是发现错误的过程,而且包含了软件质量评价的内容。包含IEEE(Institute of Electrical and Electronic Engineers)标准、美国ANSI(American National Standard Institute)标准以及ISO(International Standard Organization)国际标准在内的各类标准相继被制定。1983年,Bill Hetzel在《Complete Guide of Software Testing》(《软件测试完全指南》)中指出“测试是以评价一个程序或系统属性为目标的任何一种活动,测试是对软件质量的度量”。

20世纪90年代,测试工具开始盛行。2002年,Rick和Stefan在《Systematic Software Testing》(《系统的软件测试》)一书中将测试定义为“测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程”。

最近20年来,软件测试技术随着计算机和软件技术的飞速发展取得了很大突破,包括V模型、W模型在内的测试模型被相继总结出来。同时,TMM(Testing Maturity Model)概念的出现标志着测试过程的改进。在单元测试、自动化测试、负载压力测试以及测试管理方面涌现了大量优秀的软件测试工具。

然而软件测试技术仍旧是落后于软件开发技术的发展速度,这使得软件测试面临着很大的挑战,主要体现在以下几方面:

1. 软件测试在国防现代化、社会信息化和国民经济化领域中的作用越来越重要,由此产生的测试任务越来越繁重。

2. 软件规模越来越大,功能越来越复杂,如何进行充分有效的测试成

为难题。

3. 面向对象的开发技术越来越普及,而面向对象的测试技术却刚刚起步。

4. 对于分布式系统整体性能还不能进行很好的测试。

5. 实时系统来说,缺乏有效的测试手段。

6. 随着安全问题的日益突出,信息系统的安全性如何进行安全有效的测试与评估,成为世界性的难题。

2.3软件测试的国内外现状

软件测试在软件较发达的国家(比如美国),已经发展成为一个独立的产业,主要体现在以下几个方面:

1. 软件测试在软件公司占有重要地位。在微软,一个项目组中测试工程师要远比编码工程师多,同样花在测试的时间也比花在编码的时间多。

2. 软件测试理论研究蓬勃发展。每年举办各种各样的测试技术年会,发表了大量的软件测试研究论文,引领软件测试理论研究的国际潮流。

3. 软件测试市场繁荣。美国有一些专业公司开发软件测试标准与测试工具,MI Compuware、MaCabe、Rational等都是著名的软件测试工具提供商,它们出品的测试工具已经占领了国际市场。

我国的测试技术起步于“六五”,随着软件工程的研究而逐步发展起来。1990年国家级的中国软件评测中心成立,测试服务逐步开展起来。

由于起步晚,因此无论在软件测试理论研究还是测试实践上,都和发达国家有较大的差距。主要体现在对软件产品化测试的技术研究还较为贫乏,从业人员少,测试服务没有形成足够的规模等方面。但是,随着我国软件产业的蓬勃发展及对软件质量的重视,软件测试也越来越被人们所看重,软件测试正逐步成为一个新兴的产业。

我国正迈入测试时代,主要体现在以下几个方面:

1. 我国著名软件公司都已经或着手建立独立的专职软件测试队伍。当然人员规模及比例无法和国外大公司相比,但毕竟在公司内部贯彻了独立的测试的意识。

2. 国家人事部和信产部2003关于职业资格认证第一次在我国有了“软件评

测师”的称号,这是国家对软件测试职业的高度重视与认可。

3. 在信产部关于计算机系统集成资质以及信息工程系统工程监理资质的认证中,软件测试能力已经被定为评价公司技术能力的一项重要指标。

4. 2001年,信产部发布的部长5号令,实行了软件产品登记认证制度,规定凡是在我国境内销售的产品必须到信产部备案登记,且要经过登记测试。

5. 自2001年起,国家质检总局和信产部都通过测试对软件产品进行质量监督抽查。

6. 国家各部委、各行业正在通过测试规范行业的健康发展,通过测试把不符合行业标准要求的软件拒之门外,对行业信息化的健康发展起了促进作用。

7. 用户对软件质量要求越来越高,信息系统验收不再走过场,而要通过第三方测试机构的严格测试来判定。

8. “以测代评”正在成为我国科技心爱你灌木则有支持的一项重要举措,如国家“863”计划对数据库管理系统、操作系统、办公软件、ERP等项目的经费支持,都是通过第三方测试机构科学客观的测试结果来决定的。

9. 软件测试正成为部分软件学院的一门独立课程,对我国软件测试人才的培养起到作用。

10. 第三方测试机构得到了蓬勃发展。近两年全国各地新成立的软件测试机构有十多家,测试服务体系已经基本确立。

由上可见,我国的软件测试行业正处在一个快速成长的阶段。随着时间推移,我们与发达国家的差距必然会逐步缩小。

2.4 软件测试的发展趋势

分析现今国内外的测试发展,可以看出有以下趋势:

测试工作将近一步前移,不仅仅是单元测试、集成测试、系统测试和验收测试,对需求的精确性和完整性的测试技术、对系统设计的测试技术将成为新的研究热点。

软件架构师、开发工程师、QA人员和测试工程师将进行更好的融合,他们之间是伙伴而非对立的关系,因为他们的工作相互促进相互借鉴。同时测试工程师也会尽早的介入整个工程,在软件定义阶段就要开发相应的测试方法,是的每一个需求定义都是可以测试的。

测试职业将得到充分的尊重。开发与测试人员既是矛盾体也是统一体。以前“没能力做开发就去测试”的观点已经被现在“只有高水平的开发者才能胜任测试工作”的观点所替代。

设置独立的软件测试部门将成为越来越多的软件公司的共识。测试部门将和开发、QA一样作为一个重要的独立部门存在。

测试外包服务将快速增长。软件测试外包将会和软件开发外包一样,成为全球化的一种趋势,可以利用职业测试专家队伍与机构为自己的产品进行测试,节省测试费用。

软件测试课后习题

百度文库- 让每个人平等地提升自我 目录 第1章软件测试概述 (1) 第2章软件测试方法与过程 (4) 第3章黑盒测试 (7) 第4章白盒测试方法 (13) 第5章软件测试管理及自动化测试基础 (18) 第6章WINRUNNER测试工具 (20) 第7章LOADRUNNER测试工具 (22) 第8章JUNIT (24)

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又 最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于 是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。 答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a 、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能 取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历 一次。 每个判断语句可能包含多个条件(比如,if (A>3&&B<7……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效 字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。

软件测试习题集及答案(详细版)

第一章 什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 软件缺陷产生的原因? 答:A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改B.软件设计说明书C.软件操作人员的水平D.开发人员不能很好的理解需求明书和沟通不足 软件测试的意义? 意义: 对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托方纠纷仲裁(第三方独立测试)和其它决策提供信息; 通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,并减少各种返工,降低软件开发的成本; 通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的忠诚度。 通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或产生类似的产品问题,达到缺陷预防的目的 软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。 而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。 W模型更加敏捷,对于软件的交付期和品质的保证能力更强。 第二章 测试计划的目的是什么? 答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 什么是黑盒测试?黑盒测试主要采用的技术有哪些? 答:黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它从用户观点出发的测试。用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部

软件测试概论(TS)考试试题

软件测试概论(TS)考试试题 选择题 1) 以下关于测试和调试的说法中,正确的是(a )。(选择一项) a) 测试工作包括发现错误,以及确定错误的原因和确切位置,排除软件中的 错误 b) 测试就是调试,两者没有什么区别 c) 测试是在开发完成后的测试阶段才开始 d) 调试的目的是定位和纠正错误 2) 以下关于测试的定义中,错误的是(b)。(选择一项) a) 为找出错误而运行程序或系统的过程 b) 一切以评价程序或系统的属性、能力为目的的活动 c) 评价程序或系统的过程 d) 测试是在用户需求和开发技术之间找区别 3) 以下关于测试的目的描述,错误的是(a)。(选择一项) a) 为了说明程序中没有缺陷 b) 在于发现了迄今尚未发现的缺陷 c) 揭示潜伏在软件里的缺陷 d) 为软件产品的质量测量和评价提供依据 4) 通常情况下,软件测试至少要达到下列目标,其中错误的是(d)。(选择一项) a) 确保产品完成了它所承诺或公布的功能 b) 确保产品满足性能和效率的要求 c) 确保产品是健壮的、适应用户环境的 d) 确保产品的质量达到用户的需求 5) 下列软件测试的“行业规则”或者“工作常识”中,描述错误的是(c )。(选 择一项) a) 所有的测试都应追溯到用户需求 b) 应该在测试工作真正开始前的较长时间内就进行测试计划 c) 测试应从“大规模”开始,逐步转向“小规模” d) 为了达到最佳效果,应该由独立的第三方来构造测试 6) 软件工程是开发、运行、维护和修复软件的系统方法。软件工程具有如下的性质, 其中错误的是(a)。(选择一项)

a) 软件工程是一门综合性的交叉学科,它涉及计算机科学、工程科学、管理 科学、数学等领域 b) 软件工程要用工程科学中的观点来进行费用估算、制定进度、制定计划和 方案 c) 软件工程要用数学科学中的方法和原理进行软件生产的管理 d) 软件工程要用数学的方法建立软件开发中的各种模型和各种算法,如可靠 性模型、说明用户需求的形式化模型等 7) 在任何生命周期模型中,一个好的测试都应该具有一些特点,以下描述错误的特 点是(c)。(选择一项) a) 每个开发活动都有相对应的测试活动 b) 每个测试级别都有其特有的测试目标 c) 对于每个测试级别,不需要在相应的开发活动过程中进行相应的测试分析 和设计 d) 在开发生命周期中,测试员在文档初稿阶段就应该参与文档的评审 8) 在开发软件过程中有各种不同的方法。对特定项目而言,没有哪个模式一定是最 好的。以下不属于最常用的模式是(a)。(选择一项) a) 大爆炸模式 b) 边写边做模式 c) 瀑布模式 d) 螺旋模式 9) 下面描述敏捷软件开发的目中错误的是(c)。(选择一项) a) 通过过程和工具理解个人和交流的作用 b) 通过开发的文档理解运行的软件 c) 通过合同和谈判得到客户的协作 d) 在计划的执行中做出对变更的响应 10) 概括地说,软件测试过程模型中H模型不能揭示的是(d)。(选择一项) a) 软件测试不仅仅指测试的执行,还包括很多其他的活动 b) 软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地 进行 c) 软件测试要尽早准备,尽早执行 d) 软件测试是根据被测物的不同而同时进行的 11) 在Bugzilla中,如果一个缺陷的处理状态被开发人员置为Wontfix,则表明()。 (选择一项) a) 这个bug中描述的不是问题

《软件测试基本功》系列教程 - 第2章 操作系统基础

陈能技编著 https://www.wendangku.net/doc/911855886.html, 陈能技编著 https://www.wendangku.net/doc/911855886.html, 第二章 操作系统基础 操作系统相关的知识是所有IT从业者必备的基础知识,也是软件测试人员的必备基础,扎实的操作系统相关知识是软件测试环境搭建、缺陷查找和分析等测试工作的基础。 本章重点介绍VMWare虚拟机的使用、Linux操作系统的安装和高级使用方面的知识。 2.1 操作系统与虚拟机 2.1.1 测试人员需要熟悉的操作系统 众说周知,软件是运行在操作系统层面之上的,而操作系统又运行于硬件设备(例如CPU、内存、硬盘)之上。常见的操作系统类型有桌面和服务器操作系统Windows、Linux、Mac OS X等,嵌入式操作系统VxWorks、uClinux、WinCE等,手机操作系统Symbian、UIQ、Windows Mobile、Palm、Android 等。 根据软件运行的环境,测试人员需要熟悉相关的操作系统的安装和使用方法。一般在进行软件兼容性测试时需要安装多套操作系统运行环境。 2.1.2 虚拟机在软件测试中的应用 一台计算机设备可以安装多套操作系统,但是如果在软件测试过程中需要频繁切换操作系统,则会浪费很多时间。另外,有些时候我们需要验证软件在不同硬件配置条件(例如内存大小)下的运行情况,但是由于不能随时插拔内存条,因此会带来测试的不便。 这时候我们可以引入虚拟机来解决这些问题。利用虚拟机可以在一台电脑上将硬盘和内存的一部分拿出来虚拟成若干机器,如图2.1所示,每台机器可以运行单独的操作系统而互不干扰,这些虚拟出来的机器可以用于自己独立的硬盘和操作系统,这些虚拟机器上的操作系统之间可以共享一个网络,实现互联互通。

软件测试课后习题

第一章软件测试概述 1. 名词解释 软件缺陷: 即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。 软件缺陷的准确定义,通常有以下5 条描述: (1)软件未实现产品说明书要求的功能。 (2)软件出现了产品说明书指明不会出现的错误。 (3)软件超出实现了产品说明书提到的功能。 (4)软件实现了产品说明书虽未明确指出但应该实现的目标。 (5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好 软件测试: 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述:软件测试是为了发现错误而执行程序的过程。 静态测试:静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。 动态测试:动态测试的对象必须是能够由计算机真正运行的被测试的程序 黑盒测试: 黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。 白盒测试: 白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。 单元测试: 单元测试是针对每个单元的测试,是软件测试的最小单位。 集成测试: 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。 确认测试: 是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。系统测试: 系统测试的主要任务是检测被测软件与系统的其他部分的协调性。 验收测试: 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者 主要是用户和少量的程序开发人员。 2. 简述软件测试发展的历史及软件测试的现状

软件测试的概述及方法

软件测试的概述及方法 摘要 从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。本文从测试的基本概念入手,深入剖析软件测试相关理论。 关键字:软件测试、白盒测试、黑盒测试、类测试

目录 1 软件测试的发展史 (3) 2 软件测试的相关背景 (4) 3 软件测试的概述 (8) 3.1 软件测试的定义 (8) 3.2 软件测试的描述 (8) 3.3 软件测试的目的 (9) 3.4 软件测试的原则 (10) 4 软件测试的内容 (11) 4.1 验证 (11) 4.2 确认 (11) 5 软件测试的分类 (12) 5.1 常用分类 (12) 5.2 黑盒测试 (12) 5.3 白盒测试 (12) 5.4 静态测试 (15) 5.5 动态测试 (15) 6 软件测试中的类测试 (16) 6.1 测试中的关键 (16) 6.2 类测试技术 (16)

1 软件测试的发展史 软件测试方法之所以没能完全标准化和统一化,主要原因是因为软件产业产品到软件测试有各式各样的软件。但是目前仍有很多各样软件测试方法都基本可用的常用概念和方法。我们这里介绍的思路和方法就是可用于多数应用软件的测试。有六个有关软件测试方法的基本概念是很重要的:白箱测试,黑箱测试,灰箱测试,有效用例和无效用例,边界条件以及等价类测试。 20世纪60年代(软件工程建立前),为表明程序正确而进行测试。. 1972 年在北卡罗来纳大学举行了首届软件测试正式会议。. 1975年John Good Enough 和Susan Gerhart 在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。1979年,Glenford Myers 的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。20世纪80年代早期,“质量”的号角开始吹响。 软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。. 1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。20 世纪90 年代,测试工具盛行起来。. 1996年提出的测试能力成熟度TCMM (Testing Capability Maturity Model )、测试支持度TSM(Testability Support Model )、测试成熟度TMM (Testing Maturity Model )。. 到了2002年,Rick和Stefan 在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命过程。

软件测试第1章习题答案

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览 器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。

软件测试知识点总结

软件测试知识点总结 第一次课10.7软件测试概述 一软件测试定义:使用人工或者自动的手段来运行或测定它是否满足规定的需求,或弄预期结果与实际结果之间的差别。 二软件测试的分类 1.按照开发阶段划分 a)单元测试:模块测试,检查每个程序单元嫩否正确实现详细设计 说明中的模块功能等。 b)集成测试:组装测试,将所有的程序模块进行有序、递增的测试, 检验程序单元或部件的接口关系 c)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和 网络、系统软件、支持平台等)正确配置、连接,并满足用户需 求。 d)确认测试:证实软件是否满足特定于其用途的需求,是否满足软 件需求说明书的规定。 e)验收测试:按项目任务或合同,供需双方签订的验收依据文档进 行的对整个系统的测试与评审,决定是否接受或拒收系统。 2.按照测试技术划分 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行

测试,只是检查是否按照需求规格说明书的规定正常实现。 灰盒测试:介于白盒测试与黑盒测试之间的测试。 3 按照测试实施组织划分:开发方测用户测试第三方测试 4 是否使备测软件运行:静态测试动态测试。 课后作业:1.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解? 软件测试就是说要去根据客户的要求完善它.即要把这个软件还

软件测试-课程教学大纲

4. 测试报告。要求给出对教学管理平台进行测试后的测试报告及测试总结。 5. 缺陷报告。提交测试出来的缺陷记录。 三、各单元教学内容及基本要求 第1单元软件测试概述 1.教学内容 软件测试发展 软件可靠性问题 软件缺陷概述 软件测试定义及原则 软件测试与软件开发 2.教学要求 正确理解软件测试发展以及软件测试的分类;正确理解软件测试的意义;熟悉软件工程与开发过程与软件测试的关系以及软件测试过程模型、软件测试原则、软件测试关键问题;了解软件测试与软件开发、质量保证的关系。 3.教学重点与难点 重点 软件缺陷识别。 难点 软件测试原则。 第2单元软件测试策略 1.教学内容 软件测试策略 软件测试分类 静态测试与动态测试 软件测试过程模型 测试用例的定义和特征 2.教学要求 掌握软件测试静态策略、动态策略及软件测试的分类,理解软件测试过程模型,理解不同的测试过程模型适应于不同的软件开发模型。 3.教学重点与难点 重点 (1)软件测试静态策略、软件测试动态策略。 (2)软件测试过程模型。

难点 软件测试静态策略。 第3单元黑盒测试方法 1.教学内容 等价类划分法设计测试用例 边界值法设计测试用例 决策表法设计测试用例 因果图法设计测试用例 场景法 2.教学要求 掌握黑盒测试方法,运用等价类划分、边界值分析以及因果图法、决策表法、场景转换法等设计测试用例。 3.教学重点与难点 重点 等价类划分法、因果图法、边界值法、决策表法设计测试用例。 难点 等价类划分法、因果图法设计测试用例。 第4单元白盒测试用例设计方法 1.教学内容 逻辑覆盖法 基本路径法 循环测试 静态分析法 2.教学要求 掌握白盒测试方法,运用逻辑覆盖测试方法和基本路经测试方法设计测试用例,运用循环测试及静态分析法进行白盒测试。 3.教学重点与难点 重点 逻辑覆盖法、基本路径法设计测试用例。 难点 基本路径集的确定。 第5单元单元测试 1.教学内容

第1章 软件测试概述

第1章 软件测试概述 软件测试(Software Testing)是信息系统开发中不可缺少的一个重要步骤,随着软件变得日益复杂,软件测试也变得越来越重要。软件的基础知识、软件测试的概念(方法、目标和任务)、软件测试的定义是软件测试的基础。 本章重点讨论以下内容: ● 软件的相关知识概述 ; ● 软件测试的相关知识概述 ; ● 测试的目的和原则; ● 软件测试的流程 ; ● 软件测试人员的要求 ; ● 软件测试的前景 。 1.1 软件的相关知识概述 做任何事,应从概念入手,才能少走弯路,才能对此概念相关的问题有一个正确的理解分析,最终解决问题。软件测试的对象就是软件,为了进行软件测试,我们应了解什么是软件?它的内容以及生命周期? 1.1.1 软件的定义 1. 软件是计算机系统中与硬件相互依存的一部分,它是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。 软件具有8个特点: (1) 软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。 (2) 软件的生产与硬件不同,它没有明显的制造过程。对软件的质量控制,必须着重在软件开发方面下功夫。 (3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。然而它存在退化问题,必须要对其进行多次的修改与维护。 (4) 软件的开发和运行常常受到计算机系统的制约,对计算机系统有着不同程度的依赖性。为了解除这种依赖性,在软件开发中提出了软件移植的问题。 (5) 软件的开发至今尚未完全摆脱手工艺的开发方式。 (6) 软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。 (7) 软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。 (8) 相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管理方式等问题,它直接影响到项目的成败。

软件测试习题集及答案(详细版)详解复习过程

1.什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 2.软件缺陷产生的原因? 答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足 3.软件测试的意义? 意义: 1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部 署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托 方纠纷仲裁(第三方独立测试)和其它决策提供信息; 2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量 提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品 的质量,并减少各种返工,降低软件开发的成本; 3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷, 降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的 忠诚度。 4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括 错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或 产生类似的产品问题,达到缺陷预防的目的 4.软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 5.简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。 而W模型则是软件测试活动伴随着软件开发活动。和软件开发同时开展。 W模型更加敏捷,对于软件的交付期和品质的保证能力更强。

软件测试专业概述概要

软件测试专业概述 1)市场现状 有关人才机构调查显示“软件测试工程师”已经成为新IT人才需求榜上的前四大职位之一。未来几年国内软件行业对软件测试工程师的需求将超过20万人。他们认为,人才配置结构的不同,一方面反映了国内企业在产品质量控制方面的差距,另一方面也说明了国内市场软件测试人才的稀缺。 国内最大的IT职业教育机构北大青鸟APTECH的调查数据显示,国内IT产业内部软件测试人才积累很少,目前具备5年以上从业经验的资深软件测试工程师不超过1万人,即使在软件测试岗位上从业的3万多技术人员,多数也是处于边工作边学习的摸索状态,能力提升非常缓慢。 2)专业优势 是面向软件企业测试岗位的职业教育培训课程,通过对相关知识和技能的科学系统化训练,培养具备一定软件项目测试经验、具备较强动手和学习能力、能够满足软件测试岗位基本素质要求的实用型软件测试人才。该培训将主要围绕真实工作环境和实际任务展开,通过项目案例和项目实训,培养学员专业的软件测试技能,整个课程体系具有显著的实用性、系统性和教学渐进性特点。 【课程配置】

软件测试专业课程案例 1、专业定位 根据AUEC – IBM 软件学院的课程体系,我们重点选择了软件测试方向做课程置换建议书。 【职业需求】 随着信息技术在国内不同行业应用的开展,人们已经不再怀疑软件对于社会运转的巨大作用。但是,随着人们对软件作用期望值的提高,已经有越来越多人将关注点转移到软件的可靠性上,因此,国内软件测试公司或测评中心如雨后春笋般出现。对软件测试人员的需求也日渐升温。通过与各大软件测试公司的沟通,我们更加明确了在实际工作中软件测试人员的定位与企业在招聘和使用软件测试人员时所真正关注的内容,从这些实际的需求出发,我们规划了基于软件测试人员的专业培养课程。 【培养目标】 通过本专业的学习,培养学生掌握软件测试的基本理论和测试技能,熟悉软件工程理论以及软件开发生命周期中的各个环节,具备一定的软件开发经验,能熟练使用IBM Rational 测试工具进行软件测试。培养具备较强的动手能力和学习能力,成为满足软件测试岗位要求的实用型软件测试人才。 【课程匹配】 专业课程结构图如下: AUEC – IBM 软件学院课程体系之软件测试专业(10 门)

软件测试方法和技术(第二版)复习大纲

软件测试方法和技术指导 目录 第一章引论 (1) 第二章软件测试的基础概念(重点与15章一起看) (2) 第三章软件测试方法(重点) (4) 第四章软件测试依据和规范(考的少) (4) 第五、六、七章单元、集成、系统、验收测试(结合一起看重点!) (4) 第十一章软件测试自动化 (5) 第十二章组建测试团队第十三章部署测试环境 (5) 第十四章测试和维护测试用例(与第三章一起考重点) (6) 第十五章报告所发现的缺陷(与2.1合起来看重点) (6) 第十六章软件测试和质量分析报告 (6) 第十七章软件测试项目管理 (7) 第一章引论 1 什么是软件测试? 答: 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 2. 为什么要进行软件测试:为了保证软件质量。 3. 软件测试的反面性的三个论据:(重点) a) 测试是为了证明程序有错,而不是证明程序无错误。 b) 一个好的测试用例是在于它能发现至今未发现的错误。 c) 一个成功的测试是发现了至今未发现的错误的测试。 4.简述下图的含义(P11 V模型需认真去理解) 这是测试模型中的“V”模型描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段。如模型图中所示,左边下降的是开发过程各阶段即构建过程,与此相对应的是右边上升的部分,是各测试过程的各个阶段即验证过程。

5. 测试驱动开发的思想(P12 了解,不作要求) 第二章软件测试的基础概念(重点与15章一起看) 1. 什么是软件缺陷? 所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需要。 2. 软件缺陷是怎么产生的? 技术问题:算法错误、语法错误、计算和精度问题、接口参数传递不匹配 软件本身:文档错误、时间上不协调、或不一致性所带来的问题、系统的自我恢复或数据的异地备份、灾难性恢复等问题 团队工作:误解、沟通不充分 3. 软件缺陷的构成有哪些?(结合15章看包括:严重性和优先级) 4. 修复软件缺陷要付出的代价?(看图了解) 在设计阶段就是它的3~6倍,在编程阶段是它的10倍,在内部测试阶段是它的20~40倍,在外部测试阶段是它的30~70倍,而到了产品发布出去时,这个数字就是40~1000倍,错误的代价不是随时间线性增长,而几乎是呈指数增长的。 5 验证和确认(结合什么是软件测试部分一起看) 6. 软件测试的分类(重点): 按测试的对象或范围分类:单元测试、文档测试、系统测试等。 按测试目的分类:功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等。 根据测试过程中被测软件是否被执行:分为静态测试和动态测试。 根据是否针对系统的内部结构和具体实现算法来完成测试:可分为白盒测试和黑盒测试 7. 软件测试的工作范畴(P28 要了解清楚): 软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范, 控制测试进度,管理测试资源。 测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组 织协作实现各阶段的测试活动 第三章软件测试方法(重点)

软件测试课后习题

第一章软件测试概述 1.名词解释? 软件缺陷: 即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。 软件缺陷的准确定义,通常有以下5条描述: (1)软件未实现产品说明书要求的功能。 (2)软件出现了产品说明书指明不会出现的错误。 (3)软件超出实现了产品说明书提到的功能。 (4)软件实现了产品说明书虽未明确指出但应该实现的目标。 (5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好 软件测试: 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述:软件测试是为了发现错误而执行程序的过程。 静态测试: 静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。 动态测试: 动态测试的对象必须是能够由计算机真正运行的被测试的程序 黑盒测试: 黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。 白盒测试: 白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。 单元测试: 单元测试是针对每个单元的测试,是软件测试的最小单位。 : 集成测试: 集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。 确认测试: 是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。系统测试: 系统测试的主要任务是检测被测软件与系统的其他部分的协调性。 验收测试: 验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者

软件测试概述

软件测试基础概述 3 Sept. 2008 ? Neusoft Confidential 1 卢美丹 东软IT 人才实训中心 U n R e g i s t e r e d

目标: 本章旨在向学员软件测试理论知识工具的内容,通过本章节的学习,学员应该掌握如下知识:1) 软件测试概述2) 软件测试基础时间:6学时教学方法:PPT 3) 软件质量特性4)软件测试的分类5) 软件测试过程模型 U n R e g i s t e r e d

1. 软件测试概述 1.1 行业背景 1.2 职业现状 1.3 软件测试的职业优势1.4 测试者行业要求 1.5 软件测试工程师的素质 1.6 软件测试学习线路 1.7 软件测试学习网站 3 U n R e g i s t e r e d

1.1 行业背景 ?随近年来,计算机技术不断地发展与广泛地应用,给整个 社会带来了翻天覆地的变化。从小了说我们身边不可缺少的软件应用程序的使用,大了讲国家安全防卫措施的软件应用实施,无时无刻都离不开计算机行业的支撑。 ?时代的发展,使得计算机的应用环境越来越复杂,从而提4 高了对硬件、软件的质量要求 ?随着软件业的发展,对于优秀的测试员的需求也越来越多。?《龙象之争》——中国与印度软件关系。 U n R e g i s t e r e d

1.2 职业现状 ?随着中国软件业的迅猛发展,软件产品的质量控制与质量 管理正逐渐成为企业生存与发展的核心。为了保证软件在出厂时的“健康状态”,几乎所有的IT企业在软件产品发布前都需要大量的质量控制工作。作为软件质量控制中的重要一环,软件测试工程师应运而生。 5 ?国内软件业因对软件质量控制的重要作用认识较晚,尚未形成系统化的软件测试人才需求供应链,造成了目前企业欲招纳软件测试人才却“千金难求”的尴尬局面。 U n R e g i s t e r e d

软件测试习题集及答案(详细版)

第一章 1.什么是软件测试?软件测试的目的和作用是什么? 答: 软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。 软件测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。测试是为了证明程序有错,而不是证明程序无错。一个成功的测试是发现了至今未发现的错误的测试。 软件测试的原则包括:所有的测试都应追溯到用户的需求;尽早地和不断地进行软件测试;不可能完全的测试,因为输入量太大,执行路径太多;注意测试中的群集现象;避免测试自己的程序;设计周密的测试用例。 2.软件缺陷产生的原因? 答: A.软件需求说明书编写的不全面,不完整,不准确,而且经常更改 B.软件设计说明书 C.软件操作人员的水平 D.开发人员不能很好的理解需求明书和沟通不足 3.软件测试的意义? 意义: 1.对产品质量完成全面的评估,为软件产品发布(如验收测试)、软件系统部 署(如性能规划测试)、软件产品鉴定(第三方独立测试)委托方和被委托 方纠纷仲裁(第三方独立测试)和其它决策提供信息; 2.通过持续的测试(包括需求评审、设计评审、代码评审等)可以对产品质量 提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品 的质量,并减少各种返工,降低软件开发的成本; 3.通过测试发现所要交付产品的缺陷,特别是尽可能地发现各种严重的缺陷, 降低或消除产品质量风险,提高客户的满意度,扩大市场份额,提高客户的 忠诚度。 4.通过对缺陷进行分析,找出缺陷发生的根本原因(软件过程中的问题,包括 错误的行为方式)或总结出软件产品的缺陷模式,避免将来犯同样的错误或 产生类似的产品问题,达到缺陷预防的目的 4.软件测试与软件开发的关系? 答:软件开发是一个系统的工程。包括需求分析,设计,编码,测试,维护等等几个环节。测试是整个软件开发流程中的一个环节。 5.简述软件测试过程v模型和w模型的主要区别: V模型是软件开发完了之后才开始测试活动。

软件测试技术基础教程(第2版)-习题答案

第一章软件测试理论 一、选择题 1、C 2、A 3、D 4、B 5、D 6、D 7、B 8、B 二、简答题 1. 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA 或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。 到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准(IEEE/ANSI )。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。 总之,国内软件测试行业与一些发达国家相比还存在一定的差距。 2. 参考答案: 软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。 3. 参考答案: 软件测试的复杂性体现在: 不可能对程序实现完全测试。 杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试 程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有 免疫力而使软件缺陷不被发现。 软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好 测试工作量是至关重要的。 在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决

相关文档