软件测试概论_第1页
软件测试概论_第2页
软件测试概论_第3页
软件测试概论_第4页
软件测试概论_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试培训系列1

软件测试概论

列出你对培训的希望

and

你感兴趣的问题

摸底小测试开始拉

■判断题:

■1.软件测试的主要目的是尽可能多的找出软

件的缺陷.

■2.好的测试用例应能证明软件是正确的.

■讨论题:

■1.如果能够执行完美的黑盒测试,还需要进行

白盒测试吗?为什么?

■2.自动化是未来软件测试发展趋势,因此自动

化会全面替代人工测试.谈谈你的看发.

软件测试概述

1•软件测试背景

2.软件测试基础理论

3.软件开发过程

4.软件开发与软件测试的关系

5.软件测试过程

6.软件质量保证概要

培训目标

•正确理解软件测试的背景、软件缺陷和故障

的概念

•正确理解软件测试的意义

•正确理解软件开发过程与软件测试的关系

•正确理解软件质量的概念及质量保证体系

1软件测试背景

1.1软件可靠性问题

1.2软件缺陷与故障

1.3软件缺陷产生的原因

1.1软件可靠性问题

・因软件设计故障与因计算机硬件设计故障而引发的系统

失效的比例大约是:10:1

•运行软件的驻留故障密度(每千行代码的故障数目):

——要求很高的关键财务或财产软件为:每千行代码

工〜10个故障

——关键的生命软件为:每千行代码0.01〜1个故障

•IEEE将软件可靠性定义为:系统在特定环境下,在给定的

时间内无故障运行的概率。

•软件可靠性是对软件在设计、开发以及所预定的环境下具

有能力的置信度的一个度量,是衡量软件质量的主要参数

之一。而软件测试则是保证软件质量、提高软件可靠性的

最重要手段。

1.2软件缺陷与故障、

1、软件缺陷和软件故障案例

■案例1银行柜员机吐钱问题

系统测试,特殊情况欠考虑

•案例2跨世纪“千年虫”问题

时间存储器位数不够

•案例3Windows操作系统漏洞

设计缺陷

■案例4大众汽车DSG双离合器控制程序故障

设计缺陷,缺乏考虑某些特殊情况

上述所有实例中的软件问题在软件工程或软件测试中

都被称为软件缺陷或软件故障。

软件缺陷与故障(续)

2、软件缺陷的定义

(1)软件未达到产品说明书中已经标明的功能;

(2)软件出现了产品说明书中指明不会出现的错误;

(3)软件未达到产品说明书中虽未指出但应当达到的目标;

(4)软件功能超出了产品说明书中指明的范围;

(5)软件测试人员认为软件难以理解、不易使用,或者最终

用户认为该软件使用效果不良。

软件缺陷与故障(续)

3、软件缺陷的特征

・“看不到”

一一软件的特殊性决定了缺陷不易看到

・“看到但是抓不到”

——发现了缺陷,但不易找到问题发生的原因

所在

1.3软件缺陷产生的原因

图1-1软件缺陷产生的原因分布

2软件测试基础理论

2.1软件测试的定义

2.2软件测试的基本理论

2.3软件测试和缺陷修复的代价

2.4软件测试技术概要

2.1软件测试的定义

1、软件测试的定义

软件测试就是在软件投入运行前,对软件需

求分析、设计规格说明和编码实现的最终审查,

它是软件质量保证的关键步骤。通常对软件测试

的定义有两种描述:

•定义1:软件测试是为了发现错误而执行程序的

过程。

•定义2:软件测试是根据软件开发各阶段的规格

说明和程序的内部结构而精心设计的一批测试用

例,并利用这些测试用例运行程序以及发现错误

的过程,即执行测试步骤。

软件测试的定义(续)

■测试:所谓测试的含义,首先是一项活动,在这项

活动中某个系统或组成的部分将在特定的条件下运

行,结果将被观察和记录,并对系统或组成部分进

行评价。测试活动有两种结果:找出缺陷和故障,

或显示软件执行正确。测试是一个或多个测试用例

的集合。

・测试用例:所谓测试用例是为特定的目的而设计的

一组测试输入、执行条件和预期的结果;测试用例

是执行测试的最小实体。

・测试步骤:测试步骤详细规定了如何设置、执行、

评估特定的测试用例。

软件测试的定义(续)

2、软件测试的基本问题

•软件生命周期:一个软件生命周期包括制定计划、

需求分析定义、软件设计、程序编码、软件测试、

软件运行、软件维护、软件停用等8个阶段。

•软件测试的对象:

——软件测试不等于程序测试。

——软件测试贯串于软件定义和开发的整个过程。

——软件开发过程中所产生的需求规格说明、概要

设计规格说明、详细设计规格说明以及源程序都是

软件测试的对象。

软件测试的定义(续)

2、软件测试的基本问题(续)

■软件测试在软件生命周期中横跨两个阶段:

第一个阶段:单元测试阶段,即在每个模块编写出

以后所做的必要测试。

第二个阶段:综合测试阶段,即在完成单元测试后

进行的测试,如集成测试、系统测试、验收测试。

■软件测试涉及的关键问题包括四个方面:

(1)测试由谁来执行(Who)(2)测试什么(What)

(3)什么时候进行测试(When)(4)怎样进行测试

(How)

2.2软件测试的基本理论

1、软件测试的目的

(1)测试是程序的执行过程,目的在于发现错误;

不能证明程序的正确性,除非仅处理有限种情况。

(2)检查系统是否满足需求也是测试的期望目标。

(3)一个好的测试用例在于发现了还未曾发现的错

误;一次成功的测试则是发现了错误的测试。

注意:测试无法说明错误不存在,只能说明软件

错误已出现。

软件测试的基本理论(续)

2、软件测试的原则

(1)尽早地和及时地测试;

(2)测试用例应当由测试数据和与之对应的预期结果这两部

分组成;

(3)在程序提交测试后,应当由专门的测试人员进行测试;

(4)测试用例应包括合理的输入条件和不合理的输入条件;

(5)严格执行测试计划,排除测试的随意性;

(6)充分注意测试当中的普遍性现象;

(7)应对测试结果做全面的审核;

(8)保存测试计划、测试用例、出错统计和最终分析报告,

为维护工作提供充分的资料。

软件测试的基本理论(续)

3、软件测试的分类

软件测试按照不同的划分方法,有不同的分类:

■按照软件测试用例的设计方法而论,软件测试可

以分为白盒测试法和黑盒测试法。

■按照软件测试的策略和过程来分类,软件测试可

分为单元测试、集成测试、系统测试、验证测试

和确认测试。

软件测试的基本理论(续)

4、测试流程

测试流程如图1-2所示。测试过程中需要三类

输入:软件配置、测试配置和测试工具。

回归测试

软件配置

测试配置

测试工具

图1-2测试流程

软件测试的基本理论(续)

5、软件测试的周期性

软件测试的周期性是“测试->改错,再测试,

再改错”这样一个循环过程,如下图1-3所示。

功能冻结代码冻结

图1-3软件测试的周期性

软件测试的基本理论(续)

6、测试停止的依据(标准)

■第一类标准:测试超过了预定时间,则停止测试。

■第二类标准:执行了所有的测试用例,但并没有发

现故障,则停止测试。

■第三类标准:使用特定的测试用例设计方案作为判

断测试停止的基础。

■第四类标准:正面指出停止测试的具体要求,即停

止测试的标准可定义为查出某一预订数目的故障。

■第五类标准:根据单位时间内查出故障的数量决定

是否停止测试。

1.2.3软件测试和缺陷修复的代价

•软件在从需求、设计、编码、测试一直到交付用户

公开使用后的过程中,都有可能产生和发现缺陷。

随着整个开发过程的时间推移,更正缺陷或修复问

题的费用呈几何级数增长。

100

80

60

40

20

0

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

图1-4软件缺陷在不同阶段发现时修复的费用示意图

1.2.4软件测试技术概要

•软件测试的策略:就是测试将按照什么样的思路

和方式进行。通常,软件测试要经过单元测试、

集成测试、确认测试、系统测试以及验收测试。

•软件测试技术:

(1)白盒测试和黑盒测试

(2)静态测试和动态测试

(3)传统测试方法和面向对象测试的方法

(4)特定环境及应用的测试

软件测试技术概要(续)

•软件测试技术的发展趋势:

(1)软件验证技术(程序正确性分析理论)

(2)静态测试分析技术(代码质量扫描)

(3)测试数据的选择一一主要对测试用例进行选择

通常从下面几个方面评价测试用例的质量:

检测软件缺陷的有效性、测试用例的可重用性、

测试用例的经济性、测试用例的可维护性

(4)集成化测试一一研究如何实现软件测试的自动

化过程以及相关的一系列内容。

3软件开发过程

3.1软件产品的组成

3.2软件开发项目组

3.3软件开发模式

1.3.1软件产品的组成

1、软件产品需要各种开发投入

产品说明书、产品审查、设计文档、进度计划、上一版本信息反馈、商业竞争

对手的同类软件产品情况、客户调查、易用性数据、观察与感受说明书

图1-5获得软件产品的工作示意图

软件产品的组成(续)

2、客户需求

客户需求包括对客户调查所收集的详细信息、以前

软件的使用情况及存在的问题、竞争对手的软件产品信

息等等。通过分析客户需求,可以确定将要开发的软件

产品应该具有哪些功能。

3、3品说明(SysReqSpec)

产品说明书的作用就是对客户需求信息进行综合描

述,并包括用户没有提出、但软件产品本身必须要实现

的要求,从而针对产品进行定义并确定其功能。

软件产品的组成(续)

4、设计文档

•构架。即产生描述软件整体设计的文档,包括软件所有

主要部分的描述以及相互间的交互方式。

■数据流示意图。表示数据在程序中如何流动的正规示意

图。通常由圆圈和线条组成,所以也称为泡泡图。

■状态变化示意图。将软件分解为基本状态或者条件的另

一种正规示意图,表示不同状态之间的变化的方式。

■流程图。用图形描述程序逻辑的最常用方式之一。根据

详细的流程图编写程序代码简单方便。

•注释代码。代码注释是便于维护代码的程序员掌握代码

的内容和执行方式。

软件产品的组成(续)

5、测试文档

一般测试文档所包含的内容:

•测试计划。描述用于验证软件是否符合产品说明书和

客户需求的整体方案。

・测试用例。依据测试的项目,并描述验证软件的详细

步骤。

•软件测试报告。描述依据测试用例找出的问题,通常

提交测试报告。

•归纳、统计和总结。采用图表、表格和报告等形式来

描述整个测试过程。

软件产品的组成(续)

6、开发进度表

软件项目的开发进度通常使用Gantt图表来进行描述。

7、软件产品组成部分(交付工件)

(1)程序代码(2)帮助文件(3)用户手册

(4)样本和示例(5)标签(6)产品支持信息

(7)图表和标志(8)错误信息(9)广告与宣传材

(10)软件的安装(11)软件说明文件

(12)测试错误提示信息

3.2软件开发项目组

•项目管理经理:全程负责整个软件项目的开发。

•系统设计师:设计整个系统构架或软件构思。

•程序员:负责设计、编写程序,并修改软件中的缺陷。

■软件测试员/测试师:负责找出并报告软件产品的问题,

与开发组密切合作,进行测试并报告发现的问题。

•技术制作、用户助手、用户培训员、手册编写和文件档

案专员:负责编写软件产品附带的文件和联机文档。

•结构管理和制作人员:负责将程序员编写的全部文档资

料合并成一个软件包。

3.3软件开发模式

1、边写边改法

■采用边写边改法的软件开发通常只是有了比较粗略的想

法就开始进行简单的设计、然后进行较长的反复编写、

测试与修复这样一个循环的过程。在认为无法更精细的

描述软件产品要求时,就发布产品。

•优点:能够较为迅速的展现成果,适合需要快速制作而

且用完就扔的小项目,如示范程序、演示程序等。

•缺点:其编码和测试可能将是长期的循环往复的过程。

软件开发模式(续)

产品

说明

书最终产品

代码编制、测试、修复

图1-6边写边改开发模式■

软件开发模式(续)

2、瀑布法

•瀑布模式是将软件生命周期的各项活动,规定为按照固定

顺序相连的若干个阶段性工作,形如瀑布流水,最终得到

软件产品。■

•优点:易于理解;调研开发的阶段性;强调早期计划及需

求调查;确定何时能够交付产品及何时进行评审与测试。

•缺点:需求调查分析只进行一次,不能适应需求变化;顺

序的开发流程,使得开发中的经验教训不能反馈到该项目

的开发中去;不能反映出软件开发过程的反复与迭代性;

没有包含任何类型的风险评估;开发中出现的问题直到开

发后期才能够显露,因此失去及早纠正的机会。

软件开发模式(续)

定义阶段

开发阶段

维护

维护阶段

图1-7瀑布开发模式

软件开发模式(续)

3、快速原型法(Agile敏捷模式)

根据客户需求在较短的时间内解决用户最迫切解决的

问题,完成可演示的产品。这个产品只实现最重要功能,

在得到用户的更加明确的需求之后,原型将丢弃。

图1-8快速原型开发模式

软件开发模式(续)

4、螺旋模式法

•螺旋模式是瀑布模式与边写边改演化模式相结合,并加入

风险评估所建立的软件开发模式。

•主要思想是在开始时不必详细定义所有细节,而是从小开

始,定义重要功能,尽量实现,接受客户反馈,进入下一

阶段,并重复上述过程,直到获得最终产品。■

■每一螺旋(开发阶段)包括5个步骤:①确定目标,选择

方案和限制条件。②对方案风险进行评估,并能解决风

险。③进行本阶段的开发和测试。④计划下一阶段。

⑤确定进入下阶段的方法。

•优点:严格的全过程风险管理;强调各开发阶段的质量;

提供机会评估项目是否有价值继续下去。

软件开发模式(续)

图1-9螺旋开发模式

4软件开发与软件测试的关系

1、测试与开发各阶段的关系

图1-10软件测试与软件开发过程的关系

软件开发与软件测试的关系(续)

测试在开发阶段的作用:

•项目规划阶段:负责从单元测试到系统测试的整个测试

阶段的监控。

•需求分析阶段:确定测试需求分析、系统测试计划的制

定,评审后成为管理项目。

■详细设计和概要设计阶段:确保集成测试计划和单元测

试计划完成。

■编码阶段:由开发人员进行自己负责部分的测试代码。

在项目较大时,由专人进行编码阶段的测试任务。

•测试阶段(单元、集成、系统测试):依据测试代码进

行测试,并提交相应的测试状态报告和测试结束报告。

软件开发与软件测试的关系(续)

2、测试与开发的并行性

图1-11软件测试与软件开发的并行性

软件开发与软件测试的关系(续)

3、完整的软件开发流程

图1-12完整的开发流程

5软件测试过程

5.1制定测试计划

5.2测试执行过程

5.1制定测试计划

工、制定计划

•本阶段的主要工作内容

一一对需求规格说明书的仔细研究

一一将要测试的产品分解成可独立测试的单元

一一为每个测试单元确定采用的测试技术

一一为测试的下一个阶段及其活动制定计划

•制定计划包括:

(1)概要测试计划

(2)详细测试计划

制定测试计划(续)

2、测试大纲(用例)

测试大纲是软件测试的依据,包括测试项目、测试步

骤、测试完成的标准。

•测试大纲的本质

—一从测试的角度对被测对象的功能和各种特性的细化和

展开。

•测试大纲的好处

一一保证测试功能不被遗漏,也不被重复测试

——合理安排测试人员

—一使得软件测试不依赖于个人

制定测试计划(续)

3、软件测试报告

软件测试报告是软件测试过程中最重要的文档,它

的内容包括:

■记录问题发生的环境

一一如:各种资源的配置情况

■记录问题的再现步骤

■记录问题性质的说明

■记录问题的处理进程

一一问题处理进程从一定角度上反映测试的进程和

被测软件的质量状况以及改善过程。

5.2测试执行过程

1、测试执行过程的三个阶段

(1)初测期(SmokingTest)

一一测试主要功能和关键的执行路径,排除主要障碍。

(2)细测期(SIT)

一一依据测试计划和测试大纲、测试用例,逐一测试大

大小小的功能、方方面面的特性、性能、用户界面、兼

容性、可用性等等;预期可发现大量不同性质、不同严

重程度的错误和问题。

(3)回归测试期(Regression)

——系统已达到稳定,在一轮测试中发现的错误已十分

有限;复查已知错误的纠正情况,确认未引发任何新的

错误时,终结回归测试。

测试执行过程(续)

图1-13三个测试期阶段图示

测试执行过程(续)

2、集成测试过程中的两个重要里程碑

在集成测试过程中的两个重要的里程碑是功能冻结和

代码冻结的确定。这两个里程碑界定出回归测试期的起止

界限。

•功能冻结(Function/FeatureFreeze)

——经过测试,符合设计要求,确认系统功能和其他特性

均不再做任何改变。

•代码冻结(CodeFreeze)

一一理论上,在无错误时冻结程序代码,但实际上,代码

冻结只标志系统的当前版本的质量已达到预期的要求,冻

结程序的源代码,不再对其做任何修改。这个里程碑是设

置在软件通过最终回归测试之后。

主流的自动化测试管理工具分类

功能测试QTP

Selenium

性能测试Loadrunner,Jmeter

代码分析Checkstyle,PMD,

Findbugs,Emma,Coverlipse

网络安全性分析parosproxy,RatProxy

数据库分析工具BenchmarkSQL

DBunit

PolePosition

HammerOra

管理工具(框架)TestCenter,Watir,STAF

6软件质量保证概要

6.1软件质量管理

6.2软件能力成熟度模型

6.3IS09000标准简介

6.1软件质量管理

1、质量与质量管理的概念

■质量:是“反映实体满足明确和隐含需要的能力和特性综

合”。因此,质量是一种需要,“是一组固有特性满足要

求的程度”。

■质量管理:质量管理是指以组织为质量中心、企业全员参

与为基础,为追求客户满意和组织所有受益者满意而建立

和形成的一整套质量方针、目标和体系。质量管理通过质

量策划设定组织的质量目标,并规定必要的过程和相关资

源;通过质量控制监视内部质量过程,排除质量控制过程

中可能存在的缺陷隐患;通过质量改进提高内部的质量管

理能力,改善组织内部的质量过程;通过质量保证提供足

够的信任证据,表明组织有能力满足客户的质量要求。

软件质量管理(续)

•质量管理体系:它是质量管理的运作实体,由组织结构、

程序、过程、资源4个基本部分组成。

■质量策划:它是“确定质量以及采用质量管理体系要素和

要求的活动”,包括产品策划、质量管理体系管理和运作

策划、编制质量计划。

■质量控制:为达到质量要求所采取的作业技术和活动。质

量控制的对象是过程。

•质量保证:是为了提供足够的信任证据,证明组织有关的

各类实体有能力满足质量要求所实施并在必要时进行证实

的有计划、有系统的活动。

•质量改进:是为了向组织的所有受益者提供更多的收益所

采用的提高质量过程和效率的各种措施。

软件质量管理(续)

■质量管理的发展阶段

(1)产品质量检验阶段:这个时期特征是对产品的质量进

行检验。产品质量的检验只是一种事后的检查,不能预防

不合格品的产生。

(2)统计质量管理阶段(统计过程控制SPC):

它是运用概率论和数理统计的原理,提出控制生产过程,

预防不合格产品的思想和方法。即通过小部分样品测试,

推测和控制全体产品或工艺过程的质量状况。

(3)全面质量管理阶段:从以质量管理专业人员为核心进

行质量管理,发展到管理者推动、组织各部门的人员都来

进行学习和实行质量管理。

软件质量管理(续)

•从质量管理理论的发展历史可以看出:

——质量管理从单纯的对产品质量进行检验发

展到对产品形成过程进行控制

——控制方法从静态发展到动态的、持续的过

程改进

•质量管理理论发展到今天:

——其核心思想已表现为对过程的策划、控制

和过程能力的持续改进

软件质量管理(续)

2、软件质量管理内容

■软件质量:是软件产品的特性可以满足用户的功能、性能

需求的能力。

■软件的质量管理:是软件组织在软件产品生产中的质量策

戈U、质量控制、质量保证和质量改进等等与质量有关的相

互协调的活动。

•软件质量管理的内容包括:

(1)软件质量策划

(2)软件组织的质量过程

(3)软件质量控制与质量保证

(4)软件质量的度量和验证

(5)软件质量改进

6.2软件能力成熟度模型

•软件能力成熟度模型(CMM,CapabilityMaturityModel):

——是软件行业标准模型,用来定义和评价软件企业开发

过程的成熟度,提供如何做才能够提高软件质量的指导。

•CMM的基本原理:

——CMM将软件组织的过程能力成熟度分为5个级别,每

一个级别定义一组过程能力目标,并描述要达到这些目标

应该采取的各种实践活动。

•CMM的主要作用:

——提供了一个软件过程改进的框架。根据CMM模型,

软件开发者(机构或组织)能够大幅度的提高按计划、高

效率、低成本的提交有质量保证的软件产品的能力。

Tip:http:〃/wiki/CMM

软件能力成熟度模型(续)

1、CMM的基本过程概念

•过程:为达到目的而执行的所有步骤的系列。

•软件过程:开发和维护软件及其相关产品的一组活动、方

法、实践和改革。

■软件过程结构:对组织标准软件过程的一种高级别描述,

它描述组织标准软件过程内部的过程元素之间的顺序、接

口、内部依赖等关系,以及与外部过程之间的接口和依赖

关系。

•软件过程元素:用于描述软件过程的基本元素,每一个过

程元素包含一组定义的、有限的、封闭的相关任务。

■软件过程定义:CMM中过程定义的基本概念是定义组织

的标准软件过程。

软件能力成熟度模型(续)

2、CMM的5个分级标准

不断改优化级(5)

进过程

可预测已管理级(4)

的过程

已定义级(3)

有纪律可重复级(2)

的过程

初始级(1)

图1-14软件过程成熟度的5个等级

软件能力成熟度模型(续)

CMM的分级结构和其主要特征:

•初始级:其特点是软件过程无秩序,有时甚至是混乱的。

•可重复级:已建立了基本的项目管理过程,可用于对成本、

进度和功能特性进行跟踪。

•已定义级:用于管理的、工程的软件过程均已实现文档化、

标准化,并形成了整个软件组织的标准软件过程。

•管理级:软件过程和产品质量有详细的度量标准,软件过程

和产品质量得到了定量的认证和控制。

・优化级:通过对来自过程、新概念和新技术等方面各种有用

信息的定量分析,能够不断地、持续性地对过程进行改进。

软件能力成熟度模型(续)

•除第一级外,CMM的每一级是按照完全相同的内部结构

构成的。

•成熟度等级为顶层,不同的成熟度等级反映了软件组织

的软件过程能力和该组织可能实现预期的程度。

•在每个成熟度级别中(第1级除外),包含了实现这一级

目标的若干关键过程域(KPA)。每一级的每个关键过程域

进一步包含若干关键实践(KeyPractice,KP)。无论哪一个

KPA,其实践都统一按5个公共特性进行组织,即每一个

KPA都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论