软件测试方法和技术

上传人:cl****1 文档编号:568448155 上传时间:2024-07-24 格式:PPT 页数:87 大小:585.50KB
返回 下载 相关 举报
软件测试方法和技术_第1页
第1页 / 共87页
软件测试方法和技术_第2页
第2页 / 共87页
软件测试方法和技术_第3页
第3页 / 共87页
软件测试方法和技术_第4页
第4页 / 共87页
软件测试方法和技术_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《软件测试方法和技术》由会员分享,可在线阅读,更多相关《软件测试方法和技术(87页珍藏版)》请在金锄头文库上搜索。

1、软件测试方法和技术软件测试方法和技术软件测试方法和技术n n教学重点:1 1、软件测试基础理论、软件测试基础理论2 2、软件测试过程、软件测试过程3 3、软件质量的概念及质量保证体系、软件质量的概念及质量保证体系n n教学难点:1 1、软件测试的意义、软件测试的意义2 2、软件质量保证和软件测试的关系、软件质量保证和软件测试的关系软件测试方法和技术第一章第一章 测试概述测试概述 1.1 1.1 软件测试背景软件测试背景1.2 1.2 软件测试基础理论软件测试基础理论1.3 1.3 软件开发过程软件开发过程1.4 1.4 软件测试过程软件测试过程1.5 1.5 软件质量保证概要软件质量保证概要1

2、.6 1.6 软件测试职业软件测试职业 软件测试方法和技术1.11.1软件测试背景软件测试背景 1.1.1 1.1.1 软件缺陷与故障软件缺陷与故障n n案例案例 n n软件缺陷的定义软件缺陷的定义n n软件缺陷的特征软件缺陷的特征1.1.2 1.1.2 软件缺陷产生的原因软件缺陷产生的原因软件测试方法和技术1.1.11.1.1软件缺陷与故障软件缺陷与故障1 1、软件缺陷和软件故障案例、软件缺陷和软件故障案例n n案例案例11美国迪斯尼公司的狮子王游戏软件美国迪斯尼公司的狮子王游戏软件bugbug兼容性问题兼容性问题n n案例案例22美国航天局火星登陆事故美国航天局火星登陆事故系统测试系统测试

3、 衔接问题衔接问题 n n案例案例33跨世纪跨世纪“ “千年虫千年虫” ”问题问题 n n案例案例44爱国者导弹防御系统炸死自家人爱国者导弹防御系统炸死自家人系统时钟误差积累系统时钟误差积累 n n案例案例55英特尔奔腾浮点除法英特尔奔腾浮点除法上述所有实例中的软件问题在软件工程或软件测试中都被称为软件上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障缺陷或软件故障。 软件测试方法和技术软件缺陷与故障软件缺陷与故障(续)(续)22、软件缺陷的定义、软件缺陷的定义 (1 1)软件未达到产品说明书中已经标明的功能;)软件未达到产品说明书中已经标明的功能; (2 2)软件出现了

4、产品说明书中指明不会出现的错误;)软件出现了产品说明书中指明不会出现的错误; (3 3)软件未达到产品说明书中虽未指出但应当达到的目标;软件未达到产品说明书中虽未指出但应当达到的目标; (4 4)软件功能超出了产品说明书中指明的范围;软件功能超出了产品说明书中指明的范围; (5 5)软件测试人员认为软件难以理解、不易使用,或者最终软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。用户认为该软件使用效果不良。软件测试方法和技术软件缺陷与故障软件缺陷与故障(续)(续)3 3、软件缺陷的特征、软件缺陷的特征n n“ “看不到看不到” ”软件的特殊性决定了缺陷不易看到软件的特

5、殊性决定了缺陷不易看到n n“ “看到但是抓不到看到但是抓不到” ” 发现发现了缺陷,但不易找到了缺陷,但不易找到问题发问题发生的原因生的原因所在所在软件测试方法和技术1.1.21.1.2软件缺陷产生的原因(软件缺陷产生的原因(P28P28)软件缺陷的主要类型软件缺陷的主要类型/ /现象:现象:p 功能、特性没有实现或部分实现p 设计不合理,存在缺陷p 实际结果和预期结果不一致p 运行出错,包括运行中断、系统崩溃、界面混乱p 数据结果不正确、精度不够p 用户不能接受的其他问题,如存取时间过长、界面不美观 软件测试方法和技术其他其他10%软件产品说明软件产品说明书(需求)书(需求)56%编写代码

6、编写代码7%设设 计计27%图图1-11-1软件缺陷产生的原因分软件缺陷产生的原因分布布软件测试方法和技术1.21.2软件测试基础理论软件测试基础理论1.2.11.2.1软件测试的定义软件测试的定义1.2.21.2.2软件测试的基本理论软件测试的基本理论1.2.31.2.3软件测试和缺陷修复的代价软件测试和缺陷修复的代价1.2.41.2.4软件测试技术概要软件测试技术概要软件测试方法和技术1.2.11.2.1软件测试的定义软件测试的定义1、软件测试的定义几个观点: 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现了至今未发现

7、的错误的测试。 软件测试方法和技术n n狭义定义:程序测试是为了发现错误而执行程序的过程。n n广义定义:将测试延伸到需求评审、设计审查活动中去,这种延伸后的软件测试,被认为是一种软件测试的广义概念。n n软件测试的定义为:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题与用户需求、预先定义的不一致性。软件测试方法和技术软件测试的定义软件测试的定义(续)(续)2 2、软件测试的基本问题、软件测试的基本问题n n软件生命周期:软件生命周期:一个软件生命周期包括制定计划、一个软件生命周期包括制定计划、需求分

8、析定义、软件设计、程序编码、软件测试、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等软件运行、软件维护、软件停用等8 8个阶段。个阶段。 n n软件测试的对象:软件测试的对象: 软件测试不等于程序测试。软件测试不等于程序测试。 软件测试贯串于软件定义和开发的整个过程。软件测试贯串于软件定义和开发的整个过程。 软件开发过程中所产生的需求规格说明、概要软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。软件测试的对象。软件测试方法和技术软件测试的定义软件测试的定义(续)(续)2

9、2、软件测试的基本问题(续)、软件测试的基本问题(续)n n软件测试在软件生命周期中横跨两个阶段:软件测试在软件生命周期中横跨两个阶段: 第第一一个个阶阶段段:单单元元测测试试阶阶段段,即即在在每每个个模模块块编编写写出出以后所做的必要测试。以后所做的必要测试。 第第二二个个阶阶段段:综综合合测测试试阶阶段段,即即在在完完成成单单元元测测试试后后进行的测试,如集成测试、系统测试、验收测试。进行的测试,如集成测试、系统测试、验收测试。n n软件测试涉及的关键问题包括四个方面:软件测试涉及的关键问题包括四个方面: (1 1)测试由谁来执行。)测试由谁来执行。 (2 2)测试什么。)测试什么。 (3

10、 3)什么时候进行测试。)什么时候进行测试。 (4 4)怎样进行测试。)怎样进行测试。软件测试方法和技术1.2.21.2.2软件测试的基本理论软件测试的基本理论11、软件测试的目的、软件测试的目的n n发现软件缺陷发现软件缺陷n n发现软件缺陷,尽可能早一些n n发现软件缺陷,尽可能早一些,并确保其得以修复 注意:测试无法说明错误不存在,只能说明软件注意:测试无法说明错误不存在,只能说明软件错误已出现。错误已出现。软件测试方法和技术22、软件测试的原则、软件测试的原则(1 1)尽早地和及时地测试;)尽早地和及时地测试;(2 2)测试用例应当由测试数据和与之对应的预期结果这两部)测试用例应当由测

11、试数据和与之对应的预期结果这两部分组成;分组成;(3 3)在程序提交测试后,应当由专门的测试人员进行测试;)在程序提交测试后,应当由专门的测试人员进行测试;(4 4)测试用例应包括合理的输入条件和不合理的输入条件;)测试用例应包括合理的输入条件和不合理的输入条件;(5 5)严格执行测试计划,排除测试的随意性;)严格执行测试计划,排除测试的随意性;(6 6)充分注意测试当中的群体现象;)充分注意测试当中的群体现象;(7 7)应对每一个测试结果做全面的检查;)应对每一个测试结果做全面的检查;(8 8)保存测试计划、测试用例、出错统计和最终分析报告,)保存测试计划、测试用例、出错统计和最终分析报告,

12、为维护工作提供充分的资料。为维护工作提供充分的资料。软件测试方法和技术3 3、测试在开发各阶段的作用、测试在开发各阶段的作用项目规划阶段:负责从单元测试到系统测试的整个测项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。试阶段的监控。需求分析阶段:确定测试需求分析、系统测试计划的需求分析阶段:确定测试需求分析、系统测试计划的制定、评审后成为管理项目。制定、评审后成为管理项目。详细设计和概要设计阶段:确保集成测试计划和单元详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。测试计划完成。编码阶段:由开发人员进行自己负责部分的测试代码。编码阶段:由开发人员进行自己负责部分的测试代

13、码。在项目较大时,由专人进行编码阶段的测在项目较大时,由专人进行编码阶段的测试任务。试任务。测试阶段:依据测试代码进行测试,并提交相应的测测试阶段:依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。试状态报告和测试结束报告。软件测试方法和技术图图1-2 1-2 完整的开发流程完整的开发流程项目规划项目规划项目需求分析项目需求分析项目概要分析项目概要分析项目详细分析项目详细分析代码编写代码编写测试代码编写测试代码编写测试需求分析测试需求分析系统测试计划系统测试计划集成测试计划集成测试计划单元测试计划单元测试计划产品发布产品发布系统测试系统测试集成测试集成测试单元测试单元测试4 4、完

14、整的软件开发流程、完整的软件开发流程软件测试方法和技术1.2.31.2.3软件测试和缺陷修复的代价软件测试和缺陷修复的代价n n软件在从需求、设计、编码、测试一直到交付用户软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。题的费用呈几何级数增长。 图1-3 软件缺陷在不同阶段发现时修复的费用示意图0 02020404060608080100100编制说明书编制说明书设计阶段设计阶段编写代码编写代码测试测

15、试发布发布软件测试方法和技术1 1、软件测试技术、软件测试技术按照软件测试用例的设计方法而论,软件测试可按照软件测试用例的设计方法而论,软件测试可分为白盒测试法和黑盒测试法;按照软件测试是分为白盒测试法和黑盒测试法;按照软件测试是否执行程序而论,软件测试又可以分为静态测试否执行程序而论,软件测试又可以分为静态测试和动态测试;按照软件设计方法是否采用面向对和动态测试;按照软件设计方法是否采用面向对象设计技术而论,软件测试又可以分为传统测试象设计技术而论,软件测试又可以分为传统测试方法和面向对象测试方法;按照网络环境下方法和面向对象测试方法;按照网络环境下C/SC/S应应用结构的特定环境而论,软件

16、测试又有其相应的用结构的特定环境而论,软件测试又有其相应的方法。这些都是软件测试具体的测试方法。方法。这些都是软件测试具体的测试方法。1.2.4软件测试技术概要软件测试方法和技术2、软件测试的策略:就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、功能测试、确认测试、系统测试以及验收测试。单元测试单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。软件测试方法和技术集成测试集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是

17、发现与接口有关的问题。如数据穿过接口时可能主要目标是发现与接口有关的问题。如数据穿过接口时可能丢失;一个模块与另一个模块可能有由于疏忽的问题而造成丢失;一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。程数据结构可能有错误等。 功能测试功能测试 是基于产品功能说明书,是在已知产品所具有的功能,从是基于产品功能说明书,是在已知产品所具有的功能,从用户角度来进行功能验证,以

18、确认每个功能是否能正常使用。用户角度来进行功能验证,以确认每个功能是否能正常使用。确认测试确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。即软件的功能和性能如同用户所合理期待的那样。

19、软件测试方法和技术系统测试系统测试 软件开发完成以后,最终还要与系统中其他部软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。全测试、强度测试和性能测试等。 验收测试验收测试验收测试是向未来的用户表明系统能够像预定验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软误也已经基本排除了,接着就应该进

20、一步验证软件的有效性,这就是验收测试的任务,即软件的件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。经验收功能和性能如同用户所合理期待的那样。经验收后,将软件提交用户。后,将软件提交用户。软件测试方法和技术3 3、软件测试技术的发展趋势:、软件测试技术的发展趋势:(1 1)软件验证技术)软件验证技术(2 2)静态测试分析技术)静态测试分析技术(3 3)测试数据的选择)测试数据的选择主要对测试用例进行选择主要对测试用例进行选择 通常从下面几个方面评价测试用例的质量:通常从下面几个方面评价测试用例的质量: 检测软件缺陷的有效性、测试用例的可重用性、检测软件缺陷的有效性

21、、测试用例的可重用性、 测试用例的经济性、测试用例的可维护性测试用例的经济性、测试用例的可维护性(4 4)集成化测试)集成化测试研究如何实现软件测试的自动研究如何实现软件测试的自动化过程以及相关的一系列内容。化过程以及相关的一系列内容。软件测试方法和技术1.31.3软件开发过程软件开发过程1.3.11.3.1软件产品的组成软件产品的组成1.3.21.3.2软件开发项目组软件开发项目组1.3.31.3.3软件开发基本过程软件开发基本过程1.3.41.3.4软件开发模型软件开发模型软件测试方法和技术1.3.11.3.1软件产品的组成软件产品的组成11、软件产品需要各种开发投入、软件产品需要各种开发

22、投入图1-4 获得软件产品的工作示意图产产品品说说明明书书、产产品品审审查查、设设计计文文档档、进进度度计计划划、上上一一版版本本信信息息反反馈馈、商商业业竞竞争争对手的同类软件产品情况、客户调查、易用性数据、观察与感受说明书对手的同类软件产品情况、客户调查、易用性数据、观察与感受说明书开发过程开发过程软件测试方法和技术软件产品的组成软件产品的组成(续)(续)22、客户需求、客户需求 客户需求包括对客户调查所收集的详细信息、以前客户需求包括对客户调查所收集的详细信息、以前软件的使用情况及存在的问题、竞争对手的软件产品信软件的使用情况及存在的问题、竞争对手的软件产品信息等等。通过分析客户需求,可

23、以确定将要开发的软件息等等。通过分析客户需求,可以确定将要开发的软件产品应该具有哪些功能。产品应该具有哪些功能。3 3、产品说明、产品说明 产产品品说说明明书书的的作作用用就就是是对对客客户户需需求求信信息息进进行行综综合合描描述述,并并包包括括用用户户没没有有提提出出、但但软软件件产产品品本本身身必必须须要要实实现现的要求,从而针对产品进行定义并确定其功能。的要求,从而针对产品进行定义并确定其功能。软件测试方法和技术软件产品的组成软件产品的组成(续)(续)4 4、设计文档、设计文档n n构构架架。即即产产生生描描述述软软件件整整体体设设计计的的文文档档,包包括括软软件件所所有有主要部分的描述

24、以及相互间的交互方式。主要部分的描述以及相互间的交互方式。n n数数据据流流示示意意图图。表表示示数数据据在在程程序序中中如如何何流流动动的的正正规规示示意意图。通常由圆圈和线条组成,所以也称为泡泡图。图。通常由圆圈和线条组成,所以也称为泡泡图。n n状状态态变变化化示示意意图图。将将软软件件分分解解为为基基本本状状态态或或者者条条件件的的另另一种正规示意图,表示不同状态之间的变化的方式。一种正规示意图,表示不同状态之间的变化的方式。n n流流程程图图。用用图图形形描描述述程程序序逻逻辑辑的的最最常常用用方方式式之之一一。根根据据详细的流程图编写程序代码简单方便。详细的流程图编写程序代码简单方

25、便。n n注注释释代代码码。代代码码注注释释是是便便于于维维护护代代码码的的程程序序员员掌掌握握代代码码的内容和执行方式。的内容和执行方式。软件测试方法和技术软件产品的组成软件产品的组成(续)(续)5 5、测试文档、测试文档一般测试文档所包含的内容:一般测试文档所包含的内容:n n测测试试计计划划。描描述述用用于于验验证证软软件件是是否否符符合合产产品品说说明明书书和和客户需求的整体方案。客户需求的整体方案。n n测测试试用用例例。依依据据测测试试的的项项目目,并并描描述述验验证证软软件件的的详详细细步骤。步骤。n n软软件件测测试试报报告告。描描述述依依据据测测试试用用例例找找出出的的问问题

26、题,通通常常提交测试报告。提交测试报告。n n归纳、统计和总结。采用图表、表格和报告等形式来归纳、统计和总结。采用图表、表格和报告等形式来描述整个测试过程。描述整个测试过程。 软件测试方法和技术软件产品的组成软件产品的组成(续)(续)6、开发进度表n n系统最终交付日期已经确定,软件开发部门必系统最终交付日期已经确定,软件开发部门必须在规定期限内完成须在规定期限内完成n n系统最终交付日期只确定了大致的年限,最后系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定交付日期由软件开发部门确定n nGanttGantt图中横坐标表示时间,纵坐标表示任务,图中横坐标表示时间,纵坐标表示

27、任务,图中的水平线段表示对一个任务的进度安排,图中的水平线段表示对一个任务的进度安排,线段的起点和钟点对应在横坐标上的时间分别线段的起点和钟点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。度表示完成该任务所需的时间。软件测试方法和技术7、软件产品组成部分(1)程序代码(2)帮助文件(3)用户手册(4)样本和示例(5)标签6)产品支持信息(7)图表和标志(8)错误信息(9)广告与宣传材料(10)软件的安装(11)软件说明文件(12)测试错误提示信息软件测试方法和技术1.3.21.3.2软件开发项目组软件开发项目

28、组n n项目管理经理:项目管理经理:全程负责整个软件项目的开发。全程负责整个软件项目的开发。 n n系统设计师:系统设计师:设计整个系统构架或软件构思。设计整个系统构架或软件构思。 n n程序员:程序员:负责设计、编写程序,并修改软件中的缺陷。负责设计、编写程序,并修改软件中的缺陷。 n n软件测试员软件测试员/ /测试师:测试师:负责找出并报告软件产品的问负责找出并报告软件产品的问题,与开发组密切合作,进行测试并报告发现的问题。题,与开发组密切合作,进行测试并报告发现的问题。 n n技术制作、用户助手、用户培训员、手册编写和文件技术制作、用户助手、用户培训员、手册编写和文件档案专员:档案专员

29、:负责编写软件产品附带的文件和联机文档负责编写软件产品附带的文件和联机文档 。n n结构管理和制作人员:结构管理和制作人员:负责将程序员编写的全部文档负责将程序员编写的全部文档资料合并成一个软件包资料合并成一个软件包 。软件测试方法和技术1.3.31.3.3软件开发基本过程软件开发基本过程软件开发的基本过程可以分为需求分析、设计、编码、测试和软件开发的基本过程可以分为需求分析、设计、编码、测试和维护阶段,即通常所说的维护阶段,即通常所说的“ “传统生命周期传统生命周期” ”,也就是,也就是“ “瀑布模型瀑布模型” ”。图1-5软件开发基本过程软件测试方法和技术需求分析需求分析: :根据客户的要

30、求,清楚了解客户需求中的产品功根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。分析,确定软件产品所能达到的目标。设计设计: :根据需求分析的结果,考虑如何在逻辑、程序上去实根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。计、应用接口设计、模块设计、界面设计等。编程编

31、程:将设计转换成计算机可读的形式。将设计转换成计算机可读的形式。测试测试: :对设计、编程进行验证和用户需求确认的过程。对设计、编程进行验证和用户需求确认的过程。维护:维持软件运行,修改软件缺陷、增强已有功能、增加维护:维持软件运行,修改软件缺陷、增强已有功能、增加功能、升级等。功能、升级等。软件测试方法和技术1.3.41.3.4软件开发模型软件开发模型1.瀑布模型2.原型模型3.快速应用开发(RAD)模型4.改进的V模型5.螺旋模型6.增量模型和迭代模型软件测试方法和技术瀑布法瀑布法瀑布模式是将软件生命周期的各项活动,规定为按照瀑布模式是将软件生命周期的各项活动,规定为按照固定顺序相连的若干

32、个阶段性工作,形如瀑布流水,最终固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。得到软件产品。 优点:易于理解;调研开发的阶段性;强调早期计划及需求优点:易于理解;调研开发的阶段性;强调早期计划及需求调查;确定何时能够交付产品及何时进行评审与测试。调查;确定何时能够交付产品及何时进行评审与测试。缺点:需求调查分析只进行一次,不能适应需求变化;顺序缺点:需求调查分析只进行一次,不能适应需求变化;顺序的开发流程,使得开发中的经验教训不能反馈到该项目的的开发流程,使得开发中的经验教训不能反馈到该项目的开发中去;不能反映出软件开发过程的反复与迭代性;没开发中去;不能反映出软件开发过程的

33、反复与迭代性;没有包含任何类型的风险评估;开发中出现的问题直到开发有包含任何类型的风险评估;开发中出现的问题直到开发后期才能够显露,因此失去及早纠正的机会。后期才能够显露,因此失去及早纠正的机会。软件测试方法和技术快速原型法快速原型法 根据客户需求在较短的时间内解决用户最迫切解决的根据客户需求在较短的时间内解决用户最迫切解决的问题,完成可演示的产品。这个产品只实现最重要功能,问题,完成可演示的产品。这个产品只实现最重要功能,在得到用户的更加明确的需求之后,原型将丢弃。在得到用户的更加明确的需求之后,原型将丢弃。需求分析原型开发原型评价最终设计系统实现用户反馈图1-6 快速原型开发模式软件测试方

34、法和技术快速应用开发(RAD)模型(P6)图1-7RAD开发模式软件测试方法和技术V模型(P7)图1-8V型开发模式软件测试方法和技术螺旋模式法螺旋模式法n n螺旋模式是瀑布模式与边写边改演化模式相结合,并加入螺旋模式是瀑布模式与边写边改演化模式相结合,并加入风险评估所建立的软件开发模式。风险评估所建立的软件开发模式。 n n主要思想是在开始时不必详细定义所有细节,而是从小开主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段,并重复上述过程,直到获得最终产品。阶段,并重复上述过程,直到获得最

35、终产品。 n n每一螺旋(开发阶段)包括每一螺旋(开发阶段)包括5 5个步骤:个步骤:确定目标,选择确定目标,选择方案和限制条件。方案和限制条件。 对方案风险进行评估,并能解决风对方案风险进行评估,并能解决风险。险。 进行本阶段的开发和测试。进行本阶段的开发和测试。 计划下一阶段。计划下一阶段。 确定进入下阶段的方法。确定进入下阶段的方法。n n优点:严格的全过程风险管理;强调各开发阶段的质量;优点:严格的全过程风险管理;强调各开发阶段的质量;提供机会评估项目是否有价值继续下去。提供机会评估项目是否有价值继续下去。软件测试方法和技术阶段开发模型阶段开发模型图1-10软件分阶段开发示意图软件测试

36、方法和技术增量和迭代模型增量和迭代模型增量开发增量开发迭代开发迭代开发图1-11软件分阶段增量和迭代示意图软件测试方法和技术小小 结结1 1、对于软件缺陷的精确定义,通常有下列、对于软件缺陷的精确定义,通常有下列5 5条描述:条描述: 软件未达到产品说明书的功能软件未达到产品说明书的功能 软件出现了产品说明书指明不会出现的错误软件出现了产品说明书指明不会出现的错误 软件功能超出产品说明书指明范围软件功能超出产品说明书指明范围 软件未达到产品说明书虽未指出但应达到的目标软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认软件测试员认为难以理解

37、、不易使用、运行速度缓慢、或者最终用户认为不好为不好2 2、软件缺陷第一大原因就是软件产品规格说明书,第二大原因是软件设、软件缺陷第一大原因就是软件产品规格说明书,第二大原因是软件设计,第三个原因才是编写代码和其它原因;前两个原因至少占了计,第三个原因才是编写代码和其它原因;前两个原因至少占了 80%80%以以上。上。3 3、软件测试的定义:软件测试是贯穿整个软件开发生命周期、对软件产、软件测试的定义:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的

38、各种问题地发现在软件产品中所存在的各种问题与用户需求、预先定义的不与用户需求、预先定义的不一致性。一致性。4 4、软件测试要经过单元测试、集成测试、确认测试、系统测试和验收测、软件测试要经过单元测试、集成测试、确认测试、系统测试和验收测试。试。软件测试方法和技术回顾回顾软件质量就是客户的满意度软件质量就是客户的满意度软件缺陷软件缺陷(Bug)是什么是什么软件测试的基本方法软件测试的基本方法- 白盒/黑盒,静态/动态,自动化/手工,软件测试的分类和阶段软件测试的分类和阶段- 单元、集成、系统(性能、适用性、兼容性)、验收测试软件测试的工作范畴软件测试的工作范畴- 策略、计划、设计、执行、报告、评

39、估软件测试方法和技术回顾回顾软件开发的模型软件开发的模型软件质量就是客户的满意度软件质量就是客户的满意度软件缺陷软件缺陷(Bug)是什么是什么软件测试的基本方法软件测试的基本方法- 白盒/黑盒,静态/动态,自动化/手工,软件测试的分类和阶段软件测试的分类和阶段- 单元、集成、系统(性能、适用性、兼容性)、验收测试软件测试方法和技术1.41.4软件测试过程软件测试过程1.4.11.4.1测试策略测试策略1.4.21.4.2制定测试计划制定测试计划1.4.31.4.3测试执行过程测试执行过程1.4.41.4.4测试过程管理理念测试过程管理理念软件测试方法和技术1 1、测试策略的概念、测试策略的概念

40、测试策略通常是描述测试工程的总体方法和目标。描述测试策略通常是描述测试工程的总体方法和目标。描述目前在进行哪一阶段的测试(如单元测试、集成测试、目前在进行哪一阶段的测试(如单元测试、集成测试、系统测试)以及每个阶段内进行的测试种类(如功能测系统测试)以及每个阶段内进行的测试种类(如功能测试、性能测试、压力测试等),以确定合理的测试方案试、性能测试、压力测试等),以确定合理的测试方案使得测试更有效。使得测试更有效。 软件测试方法和技术2 2、影响测试策略的因素、影响测试策略的因素测试完成的标准测试完成的标准标准的高低对策略确定有着重要的影响。比如该软件的应该用场合为军用,这将对软件的可靠性、安全

41、性要求非常高,但如果是用于小型商场的收费系统由于是内部使用,主要考虑其计算的准确与精度及复杂统计与报表生成等方面准确性与易用性。资源状况资源状况参与测试的人、测试中所需要的软件平台(如操作系统甚至会涉及到第三方的一些应用软件)及测试可能用到的相关硬件设备(如计算机,网络硬件其它外设等) 软件测试方法和技术3、制定测试策略pp 全面细致地了解产品的项目信息全面细致地了解产品的项目信息: :应用领域应用领域, ,测试范围测试范围, ,市场需求市场需求, ,产品的特点和主要功能产品的特点和主要功能, ,技术架构技术架构pp 基于模块、功能、整体、系统、版本、压力、性能、配置和安装等基于模块、功能、整

42、体、系统、版本、压力、性能、配置和安装等各个各个因素对产品的影响因素对产品的影响, , , ,公正客观地开展测试计划公正客观地开展测试计划pp 根据程序的重要性和一旦发生故障将造成的损失根据程序的重要性和一旦发生故障将造成的损失, ,来确定它的来确定它的测试测试等级和测试重点等级和测试重点pp 认真研究测试策略认真研究测试策略, ,以便能使以便能使用尽可能少的有效测试用例用尽可能少的有效测试用例, , , ,发现尽可发现尽可能多的程序错误能多的程序错误, , , ,因为一次完整的软件测试过后因为一次完整的软件测试过后, ,如果程序中遗漏的如果程序中遗漏的错误过多并且很严重错误过多并且很严重,

43、,则表明本次测试是失败的则表明本次测试是失败的, ,是不足的是不足的; ;而测试不而测试不足意味着让用户承担隐藏错误带来的危险足意味着让用户承担隐藏错误带来的危险. .同时反过来说同时反过来说, ,如果过度如果过度测试测试, ,则又会浪费许多宝贵的资源则又会浪费许多宝贵的资源. . 找到一个最佳平衡点。找到一个最佳平衡点。软件测试方法和技术通过通过/ /失败的标准失败的标准vv单个的测试通过单个的测试通过单个的测试通过单个的测试通过/ / / /失败失败失败失败 测试用例测试用例测试用例测试用例vv全部产品测试通过全部产品测试通过全部产品测试通过全部产品测试通过/ / / /失败失败失败失败

44、每个阶段的通过每个阶段的通过每个阶段的通过每个阶段的通过/ / / /失败失败失败失败软件测试方法和技术阶段通过/失败的标准项目经理和测试组长已经全部按计划到位?所有相关的信息已经传达到QA? QA.开始了测试设计?需求阶段设计审查所有设计中及文档中的问题都已经被解决?技术设计和测试设计已经结束?最高优先级的功能要求已经实现 ? 新功能已经实现 ?所有的功能是按照设计来实现的? 代码完成?功能验证确认测试回归测试完成与否?是不是完全按测试计划完成了所有的测试?没有严重的缺陷?达到产品发布的标准?测试环境的检查?所有严重问题是不是都已测出?功能测试, 压力测试,安全测试,兼容性测试,易用性测试是

45、否都已完成? 有没有阻碍产品发布的缺陷?系统测试软件测试方法和技术测试计划内容构成测试计划制定的第一步就是将软件分解较小而且相对独立的功能模块,写成测试需求。测试需求有很多分类方法,最普通的一种就是按照功能分类:p 测试需求是测试设计和开发测试用例的基础,分解功能模块可以更好地进行设计;p 详细的测试需求是用来衡量测试覆盖率的重要指标;p 测试需求包括各种测试实际和开发以及所需资源。一个测试计划应包括:产品基本情况、测试需求说明、测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等。软件测试方法和技术1.4.21.4.2制定测试计划制定测试计划一个测试计划应包括:产品基本

46、情况、测试需求说一个测试计划应包括:产品基本情况、测试需求说明、测试策略和记录、测试资源配置、计划表、问题跟明、测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等。踪报告、测试计划的评审、结果等。1 1、制定计划制定计划n n本阶段的主要工作内容本阶段的主要工作内容对需求规格说明书的仔细研究对需求规格说明书的仔细研究将要测试的产品分解成可独立测试的单元将要测试的产品分解成可独立测试的单元为每个测试单元确定采用的测试技术为每个测试单元确定采用的测试技术为测试的下一个阶段及其活动制定计划为测试的下一个阶段及其活动制定计划n n制定计划包括:制定计划包括:(1 1)概要测试计

47、划)概要测试计划(2 2)详细测试计划)详细测试计划软件测试方法和技术制定测试计划制定测试计划(续)(续)2 2、测试用例、测试用例测试用例是软件测试的依据,包括测试项目、测试测试用例是软件测试的依据,包括测试项目、测试步骤、测试完成的标准。步骤、测试完成的标准。 n n测试用例的本质测试用例的本质从测试的角度对被测对象的功能和各种特性的细化从测试的角度对被测对象的功能和各种特性的细化和展开。和展开。 n n测试用例的好处测试用例的好处保证测试功能不被遗漏,也不被重复测试保证测试功能不被遗漏,也不被重复测试合理安排测试人员合理安排测试人员使得软件测试不依赖于个人使得软件测试不依赖于个人软件测试

48、方法和技术制定测试计划制定测试计划(续)(续)3 3、软件测试报告、软件测试报告软件测试报告是软件测试过程中最重要的文档,它软件测试报告是软件测试过程中最重要的文档,它的内容包括:的内容包括:n n记录问题发生的环境记录问题发生的环境如:各种资源的配置情况如:各种资源的配置情况n n记录问题的再现步骤记录问题的再现步骤n n记录问题性质的说明记录问题性质的说明n n记录问题的处理进程记录问题的处理进程问题处理进程从一定角度上反映测试的进程和问题处理进程从一定角度上反映测试的进程和被测软件的质量状况以及改善过程。被测软件的质量状况以及改善过程。软件测试方法和技术测试计划标准格式测试计划标准格式-

49、1-1-1-1n n16componentsofTestPlan(IEEE,1983)1.1.TestplanidentifierTestplanidentifier(测试计划标识(测试计划标识) )2.2.Instruction(Instruction(引言)引言)3.3.TestItemsTestItems(定义或主题词(定义或主题词) )4.4.FeaturestobetestedFeaturestobetested(需要被测试的功能(需要被测试的功能) )5.5.Featuresnottobetested(Featuresnottobetested(无需被测试的功能无需被测试的功能)

50、)6.6.Approach(Approach(方法和途径)方法和途径)7.7.Itemspass/failcriteriaItemspass/failcriteria(测试通过、失败的标准(测试通过、失败的标准) )8.8.SuspensioncriteriaandresumptionrequirementsSuspensioncriteriaandresumptionrequirements(延迟的标准(延迟的标准和再恢复的要求和再恢复的要求) )9.9.Testdeliverables(Testdeliverables(测试交付的内容测试交付的内容) )10.10.TestingTasks

51、(TestingTasks(测试任务测试任务软件测试方法和技术n n16componentsofTestPlan(IEEE,1983)11.11.EnvironmentalEnvironmentalneedsneeds(必备的环境必备的环境) )12.12.Responsibilities(Responsibilities(职责职责) )13.13.Staffingandtrainingneeds(Staffingandtrainingneeds(人员和必需的培训人员和必需的培训) )14.14.Schedule(Schedule(时间进度表时间进度表) )15.15.Riskandconti

52、ngencies(Riskandcontingencies(风险和相关费用)风险和相关费用)16.16.ApprovalsApprovals(批准批准) )软件测试方法和技术1.4.31.4.3测试执行过程测试执行过程11、测试执行过程的三个阶段、测试执行过程的三个阶段(1 1)初测期)初测期测试主要功能和关键的执行路径,排除主要障碍。测试主要功能和关键的执行路径,排除主要障碍。(2 2)细测期)细测期依据测试计划和测试用例、测试用例,逐一测试大依据测试计划和测试用例、测试用例,逐一测试大大小小的功能、方方面面的特性、性能、用户界面、兼大小小的功能、方方面面的特性、性能、用户界面、兼容性、可用

53、性等等;预期可发现大量不同性质、不同严容性、可用性等等;预期可发现大量不同性质、不同严重程度的错误和问题。重程度的错误和问题。(3 3)回归测试期)回归测试期系统已达到稳定,在一轮测试中发现的错误已十分系统已达到稳定,在一轮测试中发现的错误已十分有限;复查已知错误的纠正情况,确认未引发任何新的有限;复查已知错误的纠正情况,确认未引发任何新的错误时,终结回归测试。错误时,终结回归测试。软件测试方法和技术测试执行过程测试执行过程(续)(续)初测期初测期功能冻结功能冻结代码冻结代码冻结回归测试期回归测试期细测期细测期0 0202040406060808010010012012014014016016

54、01 12 23 34 45 56 67 78 89 91010 1111 1212 1313 1414 1515 1616 1717 1818 1919出错数出错数时间时间图图1-15 1-15 三个测试期阶段图示三个测试期阶段图示软件测试方法和技术测试执行过程测试执行过程(续)(续)2 2、集成测试过程中的两个重要里程碑、集成测试过程中的两个重要里程碑在集成测试过程中的两个重要的里程碑是在集成测试过程中的两个重要的里程碑是功能冻结和功能冻结和代码冻结的确定代码冻结的确定。这两个里程碑界定出回归测试期的起止。这两个里程碑界定出回归测试期的起止界限。界限。n n功能冻结功能冻结(Functio

55、n/FeatureFreeze)(Function/FeatureFreeze)经过测试,符合设计要求,确认系统功能和其他特性经过测试,符合设计要求,确认系统功能和其他特性均不再做任何改变。均不再做任何改变。n n代码冻结代码冻结(CodeFreeze)(CodeFreeze)理论上,在无错误时冻结程序代码,但实际上,代理论上,在无错误时冻结程序代码,但实际上,代码冻结只标志系统的当前版本的质量已达到预期的要求,码冻结只标志系统的当前版本的质量已达到预期的要求,冻结程序的源代码,不再对其做任何修改。这个里程碑是冻结程序的源代码,不再对其做任何修改。这个里程碑是设置在软件通过最终回归测试之后。设

56、置在软件通过最终回归测试之后。软件测试方法和技术1.4.41.4.4测试过程管理测试过程管理n n尽早测试n n全面测试n n全过程测试n n独立的、迭代的测试软件测试方法和技术1.51.5软件质量保证概要软件质量保证概要1.5.11.5.1软件质量保证软件质量保证1.5.21.5.2软件能力成熟度模型软件能力成熟度模型1.5.31.5.3ISO9000ISO9000标准简介标准简介1.5.41.5.4建立软件测试管理和评判体系建立软件测试管理和评判体系 软件测试方法和技术1.5.1软件质量保证(SQASQA)SQA 概述SQA 活动SQS 与软件测试的关系软件测试方法和技术什么是什么是 SQ

57、A?SQA?软件质量保证是通过对软件产品和活动有计划的进行软件质量保证是通过对软件产品和活动有计划的进行软件质量保证是通过对软件产品和活动有计划的进行软件质量保证是通过对软件产品和活动有计划的进行评审和审计来验证软件是否合乎标准的系统工程活动评审和审计来验证软件是否合乎标准的系统工程活动评审和审计来验证软件是否合乎标准的系统工程活动评审和审计来验证软件是否合乎标准的系统工程活动. . p确保确保SQA活动要自始至有计划的进行活动要自始至有计划的进行p审查软件产品和活动是否遵守适用的标准、规程和要求并得审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验证。到客观验证。pSQA的活动和结

58、果要保证全员参与,沟通顺畅。的活动和结果要保证全员参与,沟通顺畅。p逐级解决不符合问题逐级解决不符合问题软件测试方法和技术SQA活动pp提出软件质量需求提出软件质量需求pp确定开发方案确定开发方案pp阶段审阶段审pp测试管理测试管理pp文挡化管理文挡化管理pp验证产品与相应文挡和标准一致验证产品与相应文挡和标准一致pp建立测量机制建立测量机制pp记录并生成报告记录并生成报告软件测试方法和技术SQASQA活动的影响因素活动的影响因素n n知识结构:知识结构:专业的技术,例如质量管理与控制知识、专业的技术,例如质量管理与控制知识、统计学知识等。统计学知识等。n n经验经验n n依据:依据:如果没有

59、这些标准,就无法准确地判断开发如果没有这些标准,就无法准确地判断开发活动中的问题,容易引发不必要的争论,因此组织活动中的问题,容易引发不必要的争论,因此组织应当建立文档化的开发标准和规程。应当建立文档化的开发标准和规程。n n全员参与:全员参与:全员参与至关重要,高层管理者必须重全员参与至关重要,高层管理者必须重视软件质量保证活动。视软件质量保证活动。n n把握重点:把握重点:一定要抓住问题的重点与本质,尽可能一定要抓住问题的重点与本质,尽可能避免陷入对细节的争论之中。避免陷入对细节的争论之中。软件测试方法和技术SQASQA与软件测试的关系与软件测试的关系 n nSQASQA 是管理工作、审查

60、对象是流程、强调以预防是管理工作、审查对象是流程、强调以预防为主为主n n测试测试是技术工作、测试对象是产品、主要是以事是技术工作、测试对象是产品、主要是以事后检查后检查n nSQASQA指导测试、监控测试指导测试、监控测试n n测试为测试为SQASQA提供依据提供依据软件测试方法和技术1.5.21.5.2软件能力成熟度模型软件能力成熟度模型n n软件能力成熟度模型软件能力成熟度模型( (CMM, Capability Maturity ModelCMM, Capability Maturity Model) ): 是软件行业标准模型,用来定义和评价软件企业开发是软件行业标准模型,用来定义和评

61、价软件企业开发过程的成熟度,提供如何做才能够提高软件质量的指导过程的成熟度,提供如何做才能够提高软件质量的指导。n nCMMCMM的基本原理:的基本原理: CMMCMM将软件组织的过程能力成熟度分为将软件组织的过程能力成熟度分为5 5个级别,每个级别,每一个级别定义一组过程能力目标,并描述要达到这些目标一个级别定义一组过程能力目标,并描述要达到这些目标应该采取的各种实践活动。应该采取的各种实践活动。n nCMMCMM的主要作用:的主要作用: 提供了一个软件过程改进的框架。根据提供了一个软件过程改进的框架。根据CMMCMM模型,模型,软件开发者(机构或组织)能够大幅度的提高按计划、高软件开发者(

62、机构或组织)能够大幅度的提高按计划、高效率、低成本的提交有质量保证的软件产品的能力。效率、低成本的提交有质量保证的软件产品的能力。软件测试方法和技术软件能力成熟度模型软件能力成熟度模型(续)(续)1 1、CMMCMM的基本过程概念的基本过程概念n n过程:为达到目的而执行的所有步骤的系列。过程:为达到目的而执行的所有步骤的系列。n n软软件件过过程程:开开发发和和维维护护软软件件及及其其相相关关产产品品的的一一组组活活动动、方方法、实践和改革。法、实践和改革。n n软软件件过过程程结结构构:对对组组织织标标准准软软件件过过程程的的一一种种高高级级别别描描述述,它它描描述述组组织织标标准准软软件

63、件过过程程内内部部的的过过程程元元素素之之间间的的顺顺序序、接接口口、内内部部依依赖赖等等关关系系,以以及及与与外外部部过过程程之之间间的的接接口口和和依依赖赖关系。关系。n n软软件件过过程程元元素素:用用于于描描述述软软件件过过程程的的基基本本元元素素,每每一一个个过过程元素包含一组定义的、有限的、封闭的相关任务。程元素包含一组定义的、有限的、封闭的相关任务。n n软软件件过过程程定定义义:CMMCMM中中过过程程定定义义的的基基本本概概念念是是定定义义组组织织的标准软件过程。的标准软件过程。软件测试方法和技术软件能力成熟度模型软件能力成熟度模型(续)(续)22、CMMCMM的的5 5个分

64、级标准个分级标准 优化级(优化级(5) 已管理级(已管理级(4) 已定义级(已定义级(3) 可重复级(可重复级(2) 初始级(初始级(1) 标准一致标准一致 的过程的过程 不断改不断改 进过程进过程 可预测可预测 的过程的过程 有纪律有纪律 的过程的过程图1-16 软件过程成熟度的5个等级软件测试方法和技术软件能力成熟度模型软件能力成熟度模型(续)(续)CMMCMM的分级结构和其主要特征:的分级结构和其主要特征:n n初始级初始级:其特点是软件过程无秩序,有时甚至是混乱的。:其特点是软件过程无秩序,有时甚至是混乱的。n n可可重重复复级级:已已建建立立了了基基本本的的项项目目管管理理过过程程,

65、可可用用于于对对成成本本、进度和功能特性进行跟踪。进度和功能特性进行跟踪。n n已已定定义义级级:用用于于管管理理的的、工工程程的的软软件件过过程程均均已已实实现现文文档档化化、标准化,并形成了整个软件组织的标准软件过程。标准化,并形成了整个软件组织的标准软件过程。n n管管理理级级:软软件件过过程程和和产产品品质质量量有有详详细细的的度度量量标标准准,软软件件过过程程和产品质量得到了定量的认证和控制。和产品质量得到了定量的认证和控制。n n优优化化级级:通通过过对对来来自自过过程程、新新概概念念和和新新技技术术等等方方面面各各种种有有用用信息的定量分析,能够不断地、持续性地对过程进行改进。信

66、息的定量分析,能够不断地、持续性地对过程进行改进。软件测试方法和技术软件能力成熟度模型软件能力成熟度模型(续)(续)n n除第一级外,除第一级外,CMMCMM的每一级是按照完全相同的内部结构的每一级是按照完全相同的内部结构构成的。构成的。n n成熟度等级为顶层,不同的成熟度等级反映了软件组织成熟度等级为顶层,不同的成熟度等级反映了软件组织的软件过程能力和该组织可能实现预期的程度。的软件过程能力和该组织可能实现预期的程度。n n在每个成熟度级别中(第在每个成熟度级别中(第1 1级除外),包含了实现这一级级除外),包含了实现这一级目标的若干关键过程域目标的若干关键过程域( (KPA)KPA)。每一

67、级的每个关键过程域。每一级的每个关键过程域进一步包含若干关键实践进一步包含若干关键实践 (KeyPractice,KP)(KeyPractice,KP)。 无论哪一无论哪一个个KPAKPA, 其实践都统一按其实践都统一按5 5个公共特性进行组织,即每个公共特性进行组织,即每一个一个KPAKPA都包含都包含5 5类类KPKP,使整个软件过程改进工作自上而,使整个软件过程改进工作自上而下形成一种有规律的步骤。下形成一种有规律的步骤。软件测试方法和技术软件能力成熟度模型软件能力成熟度模型(续)(续)n n关键过程域:是指一系列相互关联的操作活动,这些活动关键过程域:是指一系列相互关联的操作活动,这些

68、活动反映了一个软件组织改进软件过程时必须集中力量改进的反映了一个软件组织改进软件过程时必须集中力量改进的几个方面。几个方面。n n目标:目标:是指某个关键过程域中的关键实践,它表示每一个是指某个关键过程域中的关键实践,它表示每一个关键过程域的范围、边界和意图。关键过程域的范围、边界和意图。n n公共特性:公共特性:为了完成关键过程域中的实践活动,为了完成关键过程域中的实践活动,CMMCMM将将其活动分为具有公共特性的其活动分为具有公共特性的5 5个部分,包括执行约定、执个部分,包括执行约定、执行能力、实施活动、度量和分析以及验收实施。这些部分行能力、实施活动、度量和分析以及验收实施。这些部分的

69、特性有效地指定了一个关键区域的实现范围、结构要求的特性有效地指定了一个关键区域的实现范围、结构要求和实施内容。和实施内容。n n关键实践:关键实践就是一些主要实践活动。每个关键过关键实践:关键实践就是一些主要实践活动。每个关键过程域最终由关键实践所组成,通过实现这些关键实践来达程域最终由关键实践所组成,通过实现这些关键实践来达到关键过程域的目标。到关键过程域的目标。软件测试方法和技术1.5.3ISO90001.5.3ISO9000标准简介标准简介n nISO9000ISO9000标准标准是为制造行业制定的质量管理和质量评判的一系列是为制造行业制定的质量管理和质量评判的一系列标准标准定义了一套基

70、本达标的做法,有助于企业能够一致定义了一套基本达标的做法,有助于企业能够一致地交付符合客户质量要求的产品(或服务)地交付符合客户质量要求的产品(或服务)n nISO9000ISO9000标准的目标标准的目标在于开发过程,而不是产品在于开发过程,而不是产品关心的是进行工作的组织方式,而不是工作成果关心的是进行工作的组织方式,而不是工作成果n nISO9000ISO9000只决定过程的要求是什么,而不管如何达到。只决定过程的要求是什么,而不管如何达到。即:即:ISO9000ISO9000指出要做什么,但不指出怎样做。指出要做什么,但不指出怎样做。 软件测试方法和技术ISO9000ISO9000标准

71、简介标准简介(续)(续)1 1、ISO9000ISO9000标准的构成标准的构成20002000版的版的ISO9000ISO9000系列标准主要由下列标准构成:系列标准主要由下列标准构成:n n ISO9000ISO9000:20002000质量管理体系:基础和术语质量管理体系:基础和术语n nISO9000ISO9000:20002000质量管理体系:要求质量管理体系:要求n nISO9000ISO9000:20002000质量管理体系:业绩改进指南质量管理体系:业绩改进指南2 2、ISO9000ISO9000标准的要求标准的要求3 3、ISO9000ISO9000质量管理的原则质量管理的原

72、则软件测试方法和技术1.5.41.5.4建立软件测试管理和评判体系建立软件测试管理和评判体系 测试管理与评判的必要性测试管理与评判的必要性软件测试的管理和评判体系发展现状软件测试的管理和评判体系发展现状如何建立测试管理与评判体系如何建立测试管理与评判体系 软件测试方法和技术为什么要建立管理与评判体系为什么要建立管理与评判体系? ?n n监视和测量软件产品监视和测量软件产品 n n识别和控制不符合要求的产品识别和控制不符合要求的产品n n验证产品设计和开发验证产品设计和开发 n n监视和测量软件过程监视和测量软件过程软件测试方法和技术测试管理和评判体系发展现状测试管理和评判体系发展现状n n美国

73、质量保证研究所对软件测试的研究结果表明美国质量保证研究所对软件测试的研究结果表明: :越越早发现软件中存在的问题,开发费用就越低早发现软件中存在的问题,开发费用就越低; ;在编码在编码后修改软件缺陷的成本是编码前的后修改软件缺陷的成本是编码前的1010倍,在产品交付倍,在产品交付后修改软件缺陷的成本是交付前的后修改软件缺陷的成本是交付前的1010倍倍; ;软件质量越软件质量越高,软件发布后的维护费用越低。另外,根据对国际高,软件发布后的维护费用越低。另外,根据对国际著名著名ITIT企业的统计,它们的软件测试费用占整个软件企业的统计,它们的软件测试费用占整个软件工程所有研发费用的工程所有研发费用

74、的50% 50% 以上。以上。 n n中国软件企业在软件测试方面与国际水准仍存在较大中国软件企业在软件测试方面与国际水准仍存在较大差距。差距。首先,认识上重开发、轻测试,没有认识到软首先,认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,管理上随意、简单,没有建立有效、试人员;其次,管理上随意、简单,没有建立有效、规范的软件测试管理和评判体系;另外,缺少自动化规范的软件测试管理和评判体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有建立软工具的支持,大多数企业在软件测试时并没有建立软件测试管理

75、与评判体系。件测试管理与评判体系。 软件测试方法和技术如何建立测试管理与评判体系如何建立测试管理与评判体系测试规划测试规划资源管理资源管理测试设计测试设计测试实施测试实施配置管理配置管理测试管理测试管理确定目标和策略确定测试方案及用例执行用例测试配置管理资源综合调配与管理对以上过程综合管理软件测试方法和技术1.61.6软件测试职业软件测试职业1.6.11.6.1对软件测试的误解对软件测试的误解1.6.21.6.2软件测试职业和职位软件测试职业和职位1.6.31.6.3软件测试职业素质软件测试职业素质1.6.41.6.4软件测试人才的现状软件测试人才的现状软件测试方法和技术1.6.11.6.1对

76、软件测试的误解对软件测试的误解n n如果发布的软件有质量问题,那是软件测试人员的错。如果发布的软件有质量问题,那是软件测试人员的错。n n软件测试技术要求不高,至少比编程容易多了。软件测试技术要求不高,至少比编程容易多了。n n软件测试随便找一个能力差的人就能做。软件测试随便找一个能力差的人就能做。n n有时间就多测试一些,来不及就少测试一些。有时间就多测试一些,来不及就少测试一些。n n软件测试是测试人员的事,与开发人员无关。软件测试是测试人员的事,与开发人员无关。n n设计实现测试,软件测试事开发后期的一个阶段。设计实现测试,软件测试事开发后期的一个阶段。软件测试方法和技术1.6.21.6

77、.2软件测试职业和职位软件测试职业和职位n n软件测试员软件测试员 n n软件测试工程师软件测试工程师/ /程序分析员程序分析员 n n高级软件测试工程师高级软件测试工程师/ /程序分析员程序分析员n n软件测试组负责人软件测试组负责人 n n软件测试软件测试/ /编程负责人编程负责人 n n软件测试软件测试/ /质量保证质量保证/ /项目经理项目经理 软件测试方法和技术1.6.31.6.3软件测试职业素质软件测试职业素质n n软件测试员的目标:软件测试员的目标:发现潜在的软件缺陷发现潜在的软件缺陷n n软件测试员应具备的素质:软件测试员应具备的素质: 具有探索精神具有探索精神 具有创造性具有

78、创造性 坚持不懈精神坚持不懈精神 故障排除专家故障排除专家 判断准确判断准确 追求完美追求完美 沟通能力沟通能力软件测试方法和技术1.6.41.6.4软件测试人才的现状软件测试人才的现状1 1、软件测试人员的合理比例、软件测试人员的合理比例在软件产业发达的国家:在软件产业发达的国家: n n软件测试在人员配备和资金投入方面占据相当的比重。软件测试在人员配备和资金投入方面占据相当的比重。n n微软为打造微软为打造Windows2000Windows2000,17001700多个开发人员,以及多个开发人员,以及32003200个测试人员,开发和测试人员之比约为三比五。个测试人员,开发和测试人员之比

79、约为三比五。n nHPHP公司的测试人员和开发人员的比例为一比一,这是很公司的测试人员和开发人员的比例为一比一,这是很 多多先进软件企业通常的人员配比。先进软件企业通常的人员配比。在国内:在国内:n n企业往往忽视软件测试,很多企业都没有软件测试部门,企业往往忽视软件测试,很多企业都没有软件测试部门,甚至不设置软件测试的岗位,造成产品质量得不到保证。甚至不设置软件测试的岗位,造成产品质量得不到保证。n n测试人员大都不到开发人员的测试人员大都不到开发人员的5%5%,随着产业和企业的发展,随着产业和企业的发展,企业必然需要大量的测试人员。企业必然需要大量的测试人员。软件测试方法和技术软件测试人才

80、的现状软件测试人才的现状(续)(续)2 2、软件测试人才紧缺、软件测试人才紧缺n n软件测试人才需求快速增长,体现在:软件测试人才需求快速增长,体现在:(1 1)中国软件产业正在快速增长,需要大量软件相关人才;)中国软件产业正在快速增长,需要大量软件相关人才;(2 2)软件企业的发展要求测试人才达到一个合适的比例。)软件企业的发展要求测试人才达到一个合适的比例。n n近一两年软件企业开始认识到软件测试对于提高软件质量近一两年软件企业开始认识到软件测试对于提高软件质量的重要性,开始重视软件测试,但由于历史的原因,找不的重要性,开始重视软件测试,但由于历史的原因,找不到合适的软件测试人员。到合适的软件测试人员。软件测试方法和技术

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号