软件测试实用教程第二章 软件测试基本
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试的广义论与狭义论
传统瀑布模型认为测试是指在代码完成后、处于运行 维护阶段之前,通过运行程序来发现程序代码或软件系统 中错误。因此,不能在代码完成之前发现软件系统需求以 及设计上的缺陷,如果需求和设计上的缺陷问题遗留到后 期,这样就会造成大量返工,增加软件开发的成本、延长 开发的周期等。 为了更早地发现问题,将测试延伸到需求评审、设计 审查活动中去,将“软件质量保证”的部分活动归为测试 活动。软件生命周期每一阶段中都应包含测试,用于检验 本阶段的成果是否接近预期的目标,尽可能早的发现错误 并加以修正,将软件测试和质量保证合并起来的软件测试 ,被认为是一种软件测试的广义概念。
在20世纪60年代计算机发展早期,软 件测试含义比较窄,等同于“调试”,目 的是纠正软件的故障,常常由软件开发人 员自己进行。对测试的投入极少,测试介 入也晚,常常是等到形成代码,产品已经 基本完成时才进行测试。
直到70年代以后,测试的意义才逐渐被人们认识,软件测 试的研究才开始受到重视。 F.P.Brooks总结了开发IBM OS/360操作系统中的经 验,在著名的《神秘的人月》一书中阐明了软件测试在研 制大系统中的重要意义。 1975年,Goodenough首次提出了软件测试理论,从而把 软件测试这一实践性很强的学科提高到理论的高度。 W.C.Hetzel整理出版了“Program Test Methods“一 书,纵览了测试方法以至各种自动测试工具,这是软件测 试的第一本著作。 E.P.Miller在测试管理和普及方面作了大量工作,他为 把现代测试概念推向实践做出了重要贡献。 1982年,美国北卡来纳大学召开了首次软件测试技术会 议,这次会议成为软件测试技术发展的一个重要的里程碑。 此后,测试理论、测试方法进一步完善,从而使软件测试 这一实践性很强的学科成为有理论指导的学科。
软件测试的标准论
软件测试的标准论认为软件测试为“验证(
软件测试的经济学观点
“一个好的测试用例是在于它能发现至 今未发现的错误”,体现了软件测试的经 济学观点。这是由于在需求阶段修正一个 错误的代价是1,而在设计阶段就是它的3 ~6倍,在编程阶段是它的10倍,在内部测 试阶段是它的20~40倍,在外部测试阶段 是它的30~70倍,而到了产品发布出去时 ,这个数字就是 40~ 1000倍。修正错误的 代价不是简单地随着时间线性增长,而几 乎是呈指数级增长的。因此,应该尽快尽 早地发现缺陷。
软件测试的辩证论
验证软件是验证软件是“工作的”,是指软件的功能 是按照预先的设计执行的,以正向思维,针对软件系统的 所有功能点,逐个验证其正确性。其代表人物是软件测试 领域的先驱Dr. Bill Hetzel (代表论著《The Complete Guide to Software Testing》)。 反之,证明软件是“不工作的”,以反向思维方式, 不断思考开发人员理解的误区、不良的习惯、程序代码的 边界、无效数据的输入以及系统的弱点,试图破坏系统、 摧毁系统,目标就是发现系统中各种各样的问题。其代表 人物是Glenford J. Myers。(代表论著《The Art of Software Testing》)他强调一个成功的测试必须是发现 Bug的测试,不然就没有价值。他于1979年提出了他对软 件测试的定义:“就是以发现错误为目的而运行程序的过 程。”
软件测试的风险论
软件测试的风险论认为测试是对软件系统中 潜在的各种风险进行评估的活动。对应这种观点 ,产生基于风险的测试策略,首先评估测试的风 险,功能出问题的概率有多大?哪些是用户最常 用的20%功能——Pareto原则(也叫80/20原则) ?如果某个功能出问题,其对用户的影响有多大 ?然后根据风险大小确定测试的优先级。优先级 高的测试,优先得到执行。一般来讲,针对用户 最常用的20%功能(优先级高)的测试会得到完 全执行,而低优先级的测试(另外用户不经常用 的80%功能)就不做或少做。
J. C.Huang提出了程序插装的概念
W.E.Howden对路径测试进行了深入的分析 L.A.Clarke等人提出了符号测试方法 R. A. Demillo提出了基于程序变异的测试方法 L.Osterweit等人首先引入了数据流测试方法 L White等提出了新的测试策略——域测试策略 DeMillo91提出了一种基于故障的测试产生方法
20世纪90年代,软件测试工具开始运用 。1996年,测试能力成熟度TMM、测试支 持度TSM等一系软件测试相关理论提出。 到了2002年,Rick和Stefan在《系统的软 件测试》一书中对软件测试做了进一步描 述:测试是为了度量和提高软件的质量, 对软件进行工程设计、实施和维护的整个 生命周期过程。2003年Brett Pettichord 发 表文章将软件测试思想划分为5个学派。
第二章 软件测试基本知识
测试发展历程 测试的几种观点
Biblioteka Baidu
软件测试目的与原则
软件测试分类 软件测试模型 测试用例
测试发展历程
早在50年代,英国著名的计算机科学家图灵 就给出了程序测试的原始定义。 他认为,测试是程序正确性证明的一种极端 实验形式。早期测试主要针对机器语言和汇编语 言,给出特定的测试用例,运行被测程序,将所 得结果与预期结果进行比较,从而判断程序的正 确性。 缺点:测试方法和理论研究缓慢。除去非常 关键的程序系统外,一般程序的测试大都是不完 备的。
近20年来,随着计算机和软件技术飞速发展 ,软件测试技术的研究也取得了很大的突破。许 多测试模型(如V模型等)产生,自动化测试涌 现了大量的软件测试工具,如功能测试工具、
Web测试工具、性能测试工具、测试管理工具、
代码测试工具等。以软件测试服务为主导的软件
测试产业正在兴起。
测试的几种观点
软件测试的广义论与狭义论 软件测试的辩证论 软件测试的风险论 软件测试的经济学观点 软件测试的标准论