您现在的位置:首页 > >

软件测试基础简介(ppt 57页)

发布时间:

第1章 软件测试基础
1.1软件测试背景 1.2 软件测试基础理论 1.3软件开发过程 1.4软件测试过程 1.5软件质量保证概要 1.6软件测试职业

IT Education & Training

1

1.1软件测试背景
1.1.1软件缺陷与故障 ? 案例 ? 软件缺陷的定义 ? 软件缺陷的特征 1.1.2软件缺陷产生的原因

IT Education & Training

2

IT Education & Training
1.1.1软件缺陷与故障
? 案例 1.美国迪斯尼公司的狮子王游戏软件BUG 2.火星登陆事故 3.跨世纪”千年虫”问题 4.其他一些例子 爱国者导弹防御系统
美国爱国者导弹防御系统首次被用在第一次海湾战争对抗伊拉克飞 毛腿导弹的防御作战中,总体上看效果不错,赢得各界的赞誉.但它还 是有几次失利,没有成功拦截伊拉克飞毛腿导弹,其中一枚在沙特阿 拉伯的多哈爆炸的飞毛腿导弹造成28名美国士兵死亡.分析专家发 现,拦截失败的症结在于一个软件缺陷,当爱国者导弹防御系统的时 钟累计运行超过14小时后,系统的跟踪系统就不准确.在多哈袭击战 中,爱国者导弹防御系统运行时间已经累计超过100多个小时,显然 那时系统的跟踪系统已经很不准确,从而造成这种结果.
3

IT Education & Training
1.1.1软件缺陷与故障
? 软件缺陷的定义(符合下列规则的叫软件缺陷): 1.软件未达到产品说明书的功能 2.软件出现了产品说明书指明不会出现 的错误 3.软件功能超出产品说明书指明范围 4.软件未达到产品说明书虽未指出但应 达到的目标 5.软件测试员认为难以理解、不易使用、 运行速度缓慢、或者最终用户认为不好
4

IT Education & Training
1.1.1软件缺陷与故障
? 软件缺陷的特征 1.软件的特殊性决定了缺陷不易看到,即”看
不到”; 2.发现了缺陷,但不易找到问题发生的原因所
在,即”看到但是抓不到”.
5

IT Education & Training

1.1.2软件缺陷产生的原因

? 软件缺陷产生的原因

编写代码 15%

其他 4%

编制说明书

设计

编制说明书 55%

编写代码 其他

设计 26%

6

IT Education & Training
1.2 软件测试基础理论
1.2.1软件测试的定义 1.2.2软件测试的基本理论 1.2.3软件测试和缺陷修复的代价 1.2.4软件测试技术概要
7

IT Education & Training
1.2.1软件测试的定义
? 软件测试的定义: 几个观点:
测试是为了证明程序有错,而不是证明 程序无错误; 一个好的测试用例是在于它能发现至今 未发现的错误; 一个成功的测试是发现了至今未发现的 错误的测试。
8

1.2.1软件测试的定义

IT Education & Training

? 软件测试的定义:
狭义定义:程序测试是为了发现错误而执 行程序的过程。
广义定义:将测试延伸到需求评审、设计 审查活动中去,这种延伸后的软件测试, 被认为是一种软件测试的广义概念。

9

1.2.1软件测试的定义

IT Education & Training

软件测试的定义为:
软件测试是贯穿整个软件开发生命周期、 对软件产品(包括阶段性产品)进行验 证和确认的活动过程,其目的是尽快尽 早地发现在软件产品中所存在的各种问 题——与用户需求、预先定义的不一致 性。

10

IT Education & Training
1.2.2软件测试的基本理论
1.软件测试的目的 2.软件测试的原则 3.测试在开发各阶段的作用
11

IT Education & Training
软件测试的目的
? 发现软件缺陷
? 发现软件缺陷,尽可能早一些
? 发现软件缺陷,尽可能早一些, 并确保其得以修复
12

IT Education & Training
软件测试的原则
? 应当把“尽早和不断地测试”作为开发 者的座右铭。
? 程序员应该避免检查自己的程序,测试 工作应该由独立的专业的软件测试机构 来完成。
? 设计测试用例时,应该考虑到合法的输 入和不合法的输入,以及各种边界条件, 特殊情况下要制造极端状态和意外状态, 比如网络异常中断、电源断电等情况。
? 一定要注意测试中的错误集中发生现象, 这和程序员的编程水*和*惯有很大的 13

IT Education & Training
软件测试的原则
? 对测试错误结果一定要有一个确认的过程。一 般有A测试出来的错误,一定要有一个B来确 认,严重的错误可以召开评审会进行讨论和分 析。
? 制定严格的测试计划,并把测试时间安排得尽 量宽松,不要希望在极短的时间内完成一个高 水*的测试。
? 回归测试的关联性一定要引起充分的注意,修 改一个错误而引起更多错误出现的现象并不少 见。
? 妥善保存一切测试过程文档,意义是不言而喻 14

IT Education & Training
测试在开发各阶段的作用
? 项目规划阶段:负责从单元测试到系统测 试的整个测试阶段的监控。
? 需求分析阶段:确定测试需求分析、系统 测试计划的制定、评审后成为管理项目。
? 详细设计和概要设*锥危喝繁<刹馐 计划和单元测试计划完成。
? 编码阶段:由开发人员进行自己负责部分 的测试代码。在项目较大时,由专人进行 编码阶段的测试任务。
? 测试阶段:依据测试代码进行测试,并提 交相应的测试状态报告和测试结束报告。 15

IT Education & Training
软件测试和缺陷修复的代价
1,000 100
软件修复费用
10 1
16

编制说明书 设计
编写代码 测试 发布

1.2.4软件测试技术概要

IT Education & Training

1.软件测试策略 2.软件测试技术

17

1.2.4软件测试技术概要

IT Education & Training

1.软件测试策略
软件测试策略就是测试将按照什么样的 思路和方式进行。通常,软件测试要经 过单元测试、集成测试、确认测试、系 统测试和验收测试。

18

1.2.4软件测试技术概要

IT Education & Training

2.软件测试技术
按照软件测试用例的设计方法而论,软件测 试可分为白盒测试法和黑盒测试法;按照软 件测试是否执行程序而论,软件测试又可以 分为静态测试和动态测试;按照软件设计方 法是否采用面向对象设计技术而论,软件测 试又可以分为传统测试方法和面向对象测试 方法;按照网络环境下C/S应用结构的特定 环境而论,软件测试又有其相应的方法。这 些都是软件测试具体的测试方法。
19

1.3软件开发过程
1.3.1软件产品的组成 1.3.2软件开发项目组 1.3.3软件开发模式

IT Education & Training

20

1.3.1软件产品的组成
1.软件产品需要多少投入

产品说明书 进度 测试计划

产品审查 来自上一版的反 馈 客户调查 易用性数据

IT Education & Training
设计文档 竞争对手情况 观察和感受说 明书

21

1.3.1软件产品的组成

IT Education & Training

2.客户需求

? 产品开发小组必须摸清客户所需

? 用调查问卷的形式搜集详细信息

? 反馈软件的以前版本

? 竞争产品信息(同领域产品)

? 杂志评论(媒体)

? 焦点人群的意见

22

1.3.1软件产品的组成

IT Education & Training

3.产品说明

? 对客户要求的研究结果是原始资料,无法 描述要做的产品,只是确定哪些要做,哪些 不要做,以及客户要求的功能.

? 产品说明书综合上述信息和一些没有提出 但必须实现的要求,真正地定义产品是什 么、有哪些功能、外观如何

? 产品说明书是“锁定”的

23

1.3.1软件产品的组成
4.设计文档
常用的设计文档包括如下: ? 构架 ? 数据流示意图 ? 状态变化示意图 ? 流程图 ? 注释代码

IT Education & Training

24

1.3.1软件产品的组成
5.测试文档
一般的测试文档包括如下: ? 测试计划 ? 测试用例设计 ? 软件测试报告
? 归纳、统计和总结

IT Education & Training

25

1.3.1软件产品的组成

IT Education & Training

6.开发进度(Gantt图)

? 系统最终交付日期已经确定,软件开发部门 必须在规定期限内完成
? 系统最终交付日期只确定了大致的年限,最 后交付日期由软件开发部门确定
? Gantt图中横坐标表示时间,纵坐标表示任 务,图中的水*线段表示对一个任务的进度 安排,线段的起点和钟点对应在横坐标上的 时间分别表示该任务的开始时间和结束时间, 线段的长度表示完成该任务所需的时间。

26

1.3.1软件产品的组成

IT Education & Training

7.其他组成部分
? 帮助文件 ? 用户手册 ? 样本和示例 ? 产品支持信息 ? 图表和标志

? 错误信息
? 广告与宣传材料产品支 持信息
? 软件的安装
? 软件说明文件 ? 测试错误提示信息

27

IT Education & Training

1.3.2软件开发项目组

? 项目管理员。由他们全程负责整个软件开发项目, 通常负责编写产品说明书、管理进度、进行重大 决策。

? 设计师或系统工程师。他们的角色是担任软件小 组的技术专家,需要具有丰富的经验,可以胜任 设计整个系统构架或软件构思。

? 程序员。由他们负责设计、编写并修复软件中的 缺陷。他们与项目管理员和设计师密切合作生产 软件,然后与项目管理和测试员密切合作修复软 件缺陷。

? 软件测试员。我们负责找出并报告软件产品的问 题,与小组全部成员在开发过程中密切合作,进 行测试并报告发现的问题。

? 技术作者、用户助手、用户培训专员、手册编写

人员或者文案专员。由他们来负责编制软件产品

附带的文件和联机文档。

28

IT Education & Training
1.3.3软件开发基本过程
29

IT Education & Training
1.3.3软件开发基本过程
? 需求分析: 根据客户的要求,清楚了解客户需求中的产品功能、特
性、性能、界面和具体规格等,然后进行分析,确定软件产品所能 达到的目标。
? 设计: 根据需求分析的结果,考虑如何在逻辑、程序上去实现所定
义的产品功能、特性等,可以分为概要设计和详细设计,也可分为 数据结构设计、软件体系结构设计、应用接口设计、模块设计、界 面设计等。
? 编程: 将设计转换成计算机可读的形式。 ? 测试: 对设计、编程进行验证和用户需求确认的过程 ? 维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、
升级等。
30

1.3.4软件开发模式
? 瀑布模型 ? 原型模型 ? 快速应用开发(RAD)模型 ? 改进的V模型 ? 螺旋模型 ? 增量模型和迭代模型 ? 构件组装模型 ? 并发模型 ? XP模型

IT Education & Training
31

瀑布模型

IT Education & Training
? 整个开发包括六个阶 段:计划、需求分析、 设计、编码、测试、 运行维护。六个阶段 自上而下、相互衔接, 以固定的次序来进行。
? 特点 阶段的顺序性和依赖 性 推迟实现的观点 质量保证
? 存在问题 不适合需求模糊的系32

原型模型

开始

停止
产品 样品

需求的采 集和细化

快速设计

加工原型

建造原型
用户评价 原型

IT Education & Training

? 先建立一个能反映用 户需求的原型系统, 使得用户和开发者可 以对目标系统的概貌 进行评价和判断,然 后对原型进行反复的 扩充、改进和求精, 最终建立符合用户需 求的目标系统

? 特点:快速开发工具、 循环、低成本

? 种类: 渐进型、抛弃



33

IT Education & Training
快速应用开发(RAD) – V模型
34

RAD - V Model (改进)

IT Education & Training

35

IT Education & Training

RAD - V Model (进一步丰富)

Requirements,
Functional
Design
Operational or Business Needs

Process of Development and Testing (V_Model)
Validation of Customer Requirements

customer, user, PM, technical support

Test Objectives

Acceptance Test

System/ Software Design
Define Requirements

Verification of Test Planning system design
Engineers Test Design

System Test

Detail Design
Design System

Test Execution (Static)

Feature Test
Test Execution (Dynamic)

Design/Analysis

Code
Build System

Unit Test

Verify/testing

36

螺旋模型

IT Education & Training
? 螺旋模型将瀑布模 型和快速原型模型 结合起来,并且加 入了两种模型均忽 略的风险分析。
? 螺旋模型的每一周 期都包括制定计划、 风险分析、实施工 程和评审四个阶段。
37

阶段开发模型

IT Education & Training

38

IT Education & Training

增量和迭代模型
增量开发
迭代开发

? 增量模型中,在每 个阶段都生成软件 的一个可发布版本。 这些阶段是交错进 行的。
? 在增量模型中,软 件版本是逐步完善 的。
? 在原型中,每个阶 段是发布一个原型, 而在增量模型中, 39

IT Education & Training
1.4 软件测试过程
? 软件测试过程是一种抽象的模型,用于定 义软件测试的流程和方法。
? 测试过程的质量将直接影响测试结果的准 确性和有效性。
? 软件测试过程遵循软件工程原理,遵循管 理学原理。
40

1.4 软件测试过程
1.4.1软件测试过程模型 1.4.2测试过程管理理念 1.4.3测试过程管理实践 1.4.4测试过程可持续改进

IT Education & Training

41

1.4.1软件测试过程模型

IT Education & Training

图1-4 软件测试V模型
42

1.4.1软件测试过程模型

IT Education & Training

图1-5 软件测试W模型
43

1.4.1软件测试过程模型

IT Education & Training

图1-6 软件测试H模型
44

1.4.2测试过程管理理念

IT Education & Training

? 尽早测试 ? 全面测试 ? 全过程测试 ? 独立的、迭代的测试

45

IT Education & Training
1.4.3 测试过程管理实践
? 策划测试过程 ? 把握需求 ? 变更控制 ? 测试度量
46

IT Education & Training
1.4.4测试过程可持续改进
测试技术发展到今天,已经存在诸多可 供参考的测试过程管理思想和理念。但 信息技术发展一日千里,新技术不断涌 现,这就注定测试过程也需要不断的改 进。
47

IT Education & Training
1.5 软件质量保证与软件测试的关系
? 软件质量保证(SQA)是建立一套有计 划,有系统的方法,来向管理层保证拟 定出的标准、步骤、实践和方法能够正 确地被所有项目所采用。
? 软件测试流程包括项目计划检查、测试 计划创建、测试设计、执行测试、更新 测试文档和测试评估;SQA的活动可总 结为协调度量、风险管理、文档检查、 促进/协助流程改进、监察测试工作。
48

IT Education & Training
1.5 软件质量保证与软件测试的关系
? 软件质量保证和软件质量控制之间的界 限越来越模糊了
? 软件测试是SQA中的重要手段,SQA的 主要功能在软件测试中得到体现,集中 在静态测试中,两者的关系越来越紧密
49

IT Education & Training
1.6软件测试工程师的素质
(1)技术能力; ? 这一点不必多说,作为一名测试工程师,不能仅
仅从使用者的角度来测试软件产品,而且还要从 技术的角度来设计测试用例,这里所说的技术包 括基础的与专业的,基础方面我想应需要学*过 以下的课程:软件技术基础、C语言、面向对象 设计、C++、数据库理论、计算机网络技术、 软件工程、数据结构与算法、离散数学等;专业 方面应掌握:软件测试技术概论、测试管理、测 试工具、软件质量管理、CMM、RUP等等。
50

IT Education & Training
(2)具有一定的编程经验; ? 测试工程师有时候需要对源码进行检查,
有时候也会从程序结构的角度来测试软 件,有时候需要写一些自动测试的工具 软件,有时候需要写测试脚本,显而易 见,会写简单代码,能读懂源码对测试 人员来说是必须的,而且如果有一定的 编程经验,可以帮助你对软件开发过程 有较深入的理解,从编程人员的角度来 正确*兰邸
51

IT Education & Training
(3)沟通能力; ? 测试人员需要与很多人员进行沟通,项目
经理、开发人员、客户、市场人员等都是 测试人员经常吵架的对象,而且在面对不 同人员,你需要不同的语气、不同的态度, 与客户要谈得来,处处为客户着想,客户 就是上帝,与上帝说话要和颜悦色,与开 发人员交往就需要技巧了,测试人员与开 发人员往往是不共戴天的,双方在心理上 经常较劲,因此在说话的语气或讲述一个 问题的出发点时特别要注意了。
52

IT Education & Training
(4)要有严谨、敢于承担责任、稳重的做事风格; ? 思惟严密,什么问题都要考虑到,当然除了做事
认真仔细,也要有承担责任的勇气,在漫长的项 目实施过程中,或大或小的错误在所难免,我们 可以原谅错误,但不喜欢狡辩,要敢于承认错误。
53

IT Education & Training
(5)具有怀疑与破坏的精神; ? 测试人员不能总是以常规的思路来测试软件,
要设计一些非常规的、相反的测试用例来不断 地折磨软件产品,要破坏性地测试,并且不要 停止你的怀疑。
54

IT Education & Training
(6)善于自我总结、自我督促; ? 应该说软件测试是一种即繁琐又枯燥无味的工
作,做多了你会觉得似乎一成不变,对自已的 能力没有提高,这时候就需要你作自我督促,并 经常作一些阶段性的总结,新的技术新的方法 新的工具层出不穷,要让自已跟上技术发展的 脚步,善于将新技术新方法新工具应用到测试 工作当中。
55

IT Education & Training
要成为一名优秀的测试工程师,首先对计算机 的基本知识要有很好的了解,精通一门或多门 的编程语言,具备一定的程序调试技能,掌握 测试工具的开发和使用技术。同时要比较细心, 会按照任务的轻重缓急来安排自己的工作,要 有很好的沟通能力。此外,还要善于用非常规 的方式思考问题,尽可能多的参加软件测试项 目,在实践中学*技能,积累经验,不断分析 和总结软件开发过程中可能出错的环节。
56

Q&A

IT Education & Training

57



热文推荐
猜你喜欢
友情链接: 医学资料大全 农林牧渔 幼儿教育心得 小学教育 中学 高中 职业教育 成人教育 大学资料 求职职场 职场文档 总结汇报