当前位置:
文档之家› 第一章 软件测试入门-认识软件测试[15页]
第一章 软件测试入门-认识软件测试[15页]
1.1.2 软件测试概述
• 软件测试的发展 20世纪50-60年代,软件仍然处于次要位
置,测试理论和方法的发展比较缓慢。 70年代以后,软件技术的成熟和完善使
得软件测试的规模和复杂度加大,软件测 试也逐渐形成了一套完整的体系,逐渐走 向规范化。
目前,与一些发达国家相比,国内测试 工作还存在一定的差距。但是,也在向产 业化方向发展。
第一章 软件测试入门 --认识软件测试
模块一 任务一
主要内容
1 认识软件测试与软件开发的关系 4
2 理解软件测试的相关概念
33 认识软件测试的重要性
1.1.1 软件测试与软件开发的关系
• 从广义的角度看,软件测试是软件开发的 一个子过程。
• 从狭义的角度看,软件开发是生产制造软 件,软件测试是验证开发出来软件的质量 ,其关系可用下图表示为:
试结束之后,再也不会发现其它的软件错误了 。实际上,这是不可能的。
(3)增量测试,由小到大 由小到大,指的是软件测试的粒度。无论
是传统的软件测试还是面向对象的软件测试都 要遵循这样的原则。如图1.3所示。
1.2.1 软件测试概述
测时间
可用资源
单元测试
集成测试 系统测试
图1.3 测试资源关系图
测试范围
1.1.2 软件测试概述
• 软件测试的定义 (2)Myers认为:“软件测试是为了发现
错误而执行程序的过程”,明确提出了“ 寻找错误”是测试目的。
(3)从软件质量保证的角度看:软件测 试是一种重要的软件质量保证活动,其动 机是通过一些经济、高效的方法,捕捉软 件中的错误,从而达到保证软件内在质量 的目的。
1.2.1 软件测试概述
• 软件测试的原则 (4)避免测试自己的程序 避免程序员测试自己的代码的主要原因归
纳如下: ✓程序员轻易不会承认自己写的程序有错误。 ✓程序员的测试思路有局限性,在做测试时很容
易受到编程思路的影响。 ✓多数程序员没有严格正规的职业训练,缺乏专
业测试人员的意识。 ✓程序员没有养成错误跟踪和回归测试的习惯。
IBM的研究结果表明,缺陷存在放大趋势。 下图表示了缺陷放大模型大致状况。
放大n1倍
放大n2倍
放大n3倍
需求阶段 缺陷
概要设计 阶段缺陷
详细设计 阶段缺陷
代码阶段 缺陷
图1.2 缺陷放大模型
由此可见,问题发现越早,解决问题的代 价就越小,这是软件开发过程中的黄金法则。
1.2.1 软件测试概述
• 软件测试的原则 (2)不可能完全的测试 对一个程序进行完全测试就是意味着在测
1.1.2 软件测试概述
• 软件测试的目的 软件测试是程序的一种执行过程,目的
是尽可能发现,并改正被测试软件中的错 误,提高软件的可靠性。其目的可归纳:
(1)软件测试是为了发现错误而执行程 序的过程;
(2)测试是为了证明程序有错,而不是 证明程序无错误;
(3)一个成功的测试是发现了至今未发 现的错误的测试。
1.2.1 软件测试概述
• 软件测试的目的 从用户的角度考虑,借助软件测试充分暴
露软件之中存在的缺陷,从而考虑是否接受 该产品;从开发者的角度考虑,就是软件测 试能表明软件已经正确地实现了用户的需求 ,达到软件正式发布的规格要求。
1.2.1 软件测试概述
• 软件测试的原则
(1)尽早地和不断地进行软件测试
• 软件测试的定义 软件测试的定义,目前没有统一的标准
。根据侧重点的不同,主要有以下三种观 点:
(1)1983年IEEE将软件测试定义为:“ 使用人工或自动手段运行或测定某个系统 的过程,其目的在于检验它是否满足规定 的需求或是弄清预期结果与实际结果之间 的差别”,该定义明确地提出了软件测试 以检验是否满足需求为目标。
谢谢
需求 分析 说明书
概要 设计 说明书
详细 设计 说明书
源程序 代码
单元 集成 测试 测试
确认 测试
图1.1 软件测试与软件开发关系图
1.1.1 软件测试与软件开发的关系
由上图可以看出: (1)没有软件开发就没有测试,软件开发提
供软件测试的对象,且不同的开发阶段对 应不同的测试类型。具体可描述为: ✓编码阶段:由开发人员进行自己负责部分 的测试,即单元测试。在项目较大时,由 专人进行编码阶段的测试任务。 ✓详细设计和概要设计阶段:确保集成测试 计划和单元测试计划完成。 ✓需求分析阶段:确定测试需求分析、系统 测试计划的制定,评审后成为管理项目。
1.1.1 软件测试与软件开发的关系
(2)软件开发和软件测试都是软件生命周期 中的重要组成部分。
(3)软件测试是保证软件开发产品质量的重 要手段。 由于越早发现软件存在的问题,修正的 成本越低,从这个角度看,软件测试是伴 随整个软件生命周期的,且其不仅要发现 问题,还要纠正发现的问题。
1.1.2 软件测试概述