软件测试第二章软件开发过程

上传人:cn****1 文档编号:591657531 上传时间:2024-09-18 格式:PPT 页数:49 大小:643.50KB
返回 下载 相关 举报
软件测试第二章软件开发过程_第1页
第1页 / 共49页
软件测试第二章软件开发过程_第2页
第2页 / 共49页
软件测试第二章软件开发过程_第3页
第3页 / 共49页
软件测试第二章软件开发过程_第4页
第4页 / 共49页
软件测试第二章软件开发过程_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《软件测试第二章软件开发过程》由会员分享,可在线阅读,更多相关《软件测试第二章软件开发过程(49页珍藏版)》请在金锄头文库上搜索。

1、软件测试基础软件测试基础第四讲第四讲由安博测试空间技术中心由安博测试空间技术中心由安博测试空间技术中心由安博测试空间技术中心http:/ 软件开发过程本章学习内容本章学习内容n软件及其特征软件及其特征n软件生命周期软件生命周期n软件产品构成的主要部分软件产品构成的主要部分n软件开发模型软件开发模型n n严严严严格格格格地地地地说说说说,软软软软件件件件工工工工程程程程是是是是应应应应用用用用计计计计算算算算机机机机科科科科学学学学、数数数数学学学学及及及及管理科学等原理开发软件的工程。管理科学等原理开发软件的工程。管理科学等原理开发软件的工程。管理科学等原理开发软件的工程。n n通通通通俗俗俗

2、俗地地地地说说说说,软软软软件件件件工工工工程程程程是是是是实实实实现现现现一一一一个个个个大大大大型型型型程程程程序序序序的的的的一一一一套套套套原原原原则则则则方方方方法法法法,即即即即按按按按工工工工程程程程化化化化的的的的原原原原则则则则和和和和方方方方法法法法组组组组织织织织软软软软件件件件开开开开发工作。发工作。发工作。发工作。n n软件测试是软件工程的一个重要环节,相当于工软件测试是软件工程的一个重要环节,相当于工软件测试是软件工程的一个重要环节,相当于工软件测试是软件工程的一个重要环节,相当于工程领域中的质量检验部分,是确保软件工程质量程领域中的质量检验部分,是确保软件工程质量

3、程领域中的质量检验部分,是确保软件工程质量程领域中的质量检验部分,是确保软件工程质量的重要手段的重要手段的重要手段的重要手段软件工程与开发过程软件工程与开发过程n n对于软件测试与软件开发过程之间的关系,套用对于软件测试与软件开发过程之间的关系,套用对于软件测试与软件开发过程之间的关系,套用对于软件测试与软件开发过程之间的关系,套用固定的模型不是聪明之举。固定的模型不是聪明之举。固定的模型不是聪明之举。固定的模型不是聪明之举。n n比如比如比如比如“ “程序设计程序设计程序设计程序设计” ”与与与与“ “测试测试测试测试” ”之间的关系,习惯上总之间的关系,习惯上总之间的关系,习惯上总之间的关

4、系,习惯上总以为程序设计在先,测试在后,如图(以为程序设计在先,测试在后,如图(以为程序设计在先,测试在后,如图(以为程序设计在先,测试在后,如图(a a)所示。)所示。)所示。)所示。n n而对于一些复杂的程序,将测试分为同步测试与而对于一些复杂的程序,将测试分为同步测试与而对于一些复杂的程序,将测试分为同步测试与而对于一些复杂的程序,将测试分为同步测试与总测试更有效,如图(总测试更有效,如图(总测试更有效,如图(总测试更有效,如图(b b)所示。)所示。)所示。)所示。程序设计与测试的关系程序设计与测试的关系程序设计与测试的关系程序设计与测试的关系 n软件及其特征软件及其特征q软件定义软件

5、定义n软件是由能够完成预定功能和性能的一组计算机软件是由能够完成预定功能和性能的一组计算机程序、能被充分操作的数据结构、描述程序设计程序、能被充分操作的数据结构、描述程序设计和使用的文档三部分组成和使用的文档三部分组成n软件软件=程序程序+数据数据+文档文档q软件特征软件特征n逻辑实体,具有抽象性逻辑实体,具有抽象性n软件是灵魂软件是灵魂,硬件是载体硬件是载体n软件不会磨损软件不会磨损n软件生产是智慧和知识的结晶软件生产是智慧和知识的结晶,其过程复杂其过程复杂n软件生命周期软件生命周期q定义定义n一个软件从它发生到消亡的过程一个软件从它发生到消亡的过程q三个时期三个时期n软件定义软件定义n软件

6、开发软件开发n软件使用与维护软件使用与维护问题定义可行性研究需求分析概要设计详细设计编码测试维护生命周期的八个阶段生命周期的八个阶段生命周期的八个阶段生命周期的八个阶段qq测试步骤测试步骤n n测试步骤详细规定测试步骤详细规定测试步骤详细规定测试步骤详细规定qq如何设置如何设置如何设置如何设置qq执行执行执行执行qq评估特定的测试用例评估特定的测试用例评估特定的测试用例评估特定的测试用例图图图图 一个测试生命周期一个测试生命周期一个测试生命周期一个测试生命周期软件测试贯穿于整个的软件开发生命周期软件测试贯穿于整个的软件开发生命周期n软件产品的组成软件产品的组成q开发投入开发投入q客户需求客户需

7、求q产品说明产品说明n综合描述综合描述n没有统一标准格式,可根据具体情况而定没有统一标准格式,可根据具体情况而定q设计文档设计文档n设计方案设计方案/计划计划n软件设计文档内容软件设计文档内容q架构架构q数据流示意图数据流示意图q状态变化示意图状态变化示意图q流程图流程图q注释代码注释代码q测试文档测试文档q开发进度表开发进度表q软件产品组成部分软件产品组成部分n软件项目组成员软件项目组成员q项目管理员项目管理员q系统设计师系统设计师q程序员程序员q软件测试人员软件测试人员q技术制作、用户助手、用户培训员、手册编技术制作、用户助手、用户培训员、手册编写和文件档案专员写和文件档案专员q结构管理和

8、制作人员结构管理和制作人员n软件开发模型软件开发模型q软件开发模型软件开发模型n软件开发全部过程、资源、活动和人物的结构框软件开发全部过程、资源、活动和人物的结构框架,规定了完成各项任务的工作步骤架,规定了完成各项任务的工作步骤q目前主要的七种软件开发模型目前主要的七种软件开发模型1大棒模式大棒模式 源于能量爆发创造宇宙,万物都由能量源于能量爆发创造宇宙,万物都由能量和物质积聚而成的理论,但如果不是遵循和物质积聚而成的理论,但如果不是遵循某种正确的排列和组合,形成的将不是预某种正确的排列和组合,形成的将不是预先期望的事物。先期望的事物。 大棒模式与上述理论一样:一大堆能大棒模式与上述理论一样:

9、一大堆能量(这里指开发软件所需的人力和物力)量(这里指开发软件所需的人力和物力)放在一起,巨大的能量进行释放,通常的放在一起,巨大的能量进行释放,通常的结果可能是产生了优秀的软件产品或成为结果可能是产生了优秀的软件产品或成为一堆一堆“废品废品”(不成功的软件)。(不成功的软件)。优点:优点: 思路简单,思路简单, 通常可能是开发者的通常可能是开发者的“突突发奇想发奇想”缺点:缺点: 开发过程是非工程化的,随意性大开发过程是非工程化的,随意性大关于测试:关于测试: 有的较简单,有的则非常困难有的较简单,有的则非常困难2.边写边改模式边写边改模式 采用边写边改法的软件开发通常只采用边写边改法的软件

10、开发通常只是有了比较粗略的想法就开始进行简单是有了比较粗略的想法就开始进行简单的设计、然后进行较长的反复编写、测的设计、然后进行较长的反复编写、测试与修复这样一个循环的过程。试与修复这样一个循环的过程。 在认为无法更精细的描述软件产品在认为无法更精细的描述软件产品要求时,就发布产品。要求时,就发布产品。 优点:优点: 能够较为迅速的展现成果,适合需要快能够较为迅速的展现成果,适合需要快速制作而且用完就扔的小项目,如示范程序、速制作而且用完就扔的小项目,如示范程序、演示程序等。演示程序等。缺点:缺点: 其编码和测试可能将是长期的循环往复其编码和测试可能将是长期的循环往复的过程。的过程。3.3.瀑

11、布模式瀑布模式 瀑布过程模型反映了人们早期对软件瀑布过程模型反映了人们早期对软件工程的认识水平,是人们所熟悉的一种线工程的认识水平,是人们所熟悉的一种线性思维的体现。性思维的体现。 瀑布过程模型强调阶段的划分及其顺瀑布过程模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细一种严格线性的、按阶段顺序的、逐步细化的开发模式。化的开发模式。图图图图 瀑布过程模型瀑布过程模型瀑布过程模型瀑布过程模型 优点:优点: 易于理解;易于理解; 调研开发的阶段性;调研开发的阶段性; 强调早期计划及需求调查;强调早期计划及需求调查;

12、 确定何时能够交付产品及何时进行评确定何时能够交付产品及何时进行评审与测试。审与测试。缺点:缺点: 需求调查分析只进行一次,不能适应需需求调查分析只进行一次,不能适应需求变化;顺序的开发流程,使得开发中的经求变化;顺序的开发流程,使得开发中的经验教训不能反馈到该项目的开发中去;不能验教训不能反馈到该项目的开发中去;不能反映出软件开发过程的反复与迭代性;没有反映出软件开发过程的反复与迭代性;没有包含任何类型的风险评估;开发中出现的问包含任何类型的风险评估;开发中出现的问题直到开发后期才能够显露,因此失去及早题直到开发后期才能够显露,因此失去及早纠正的机会。纠正的机会。Tom GilbTom Gi

13、lb:“假如你不积极地解决你项目中假如你不积极地解决你项目中存在的风险,它们就会积极地解决掉存在的风险,它们就会积极地解决掉你你” 瀑布方法会掩饰项目中真正的风瀑布方法会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。险,当你太晚发现它们时已无济于事。4.快速原型开发模式快速原型开发模式 根据客户需求在较短的时间内解决用根据客户需求在较短的时间内解决用户最迫切解决的问题,完成可演示的产户最迫切解决的问题,完成可演示的产品。这个产品只实现最重要功能,在得品。这个产品只实现最重要功能,在得到用户的更加明确的需求之后,原型将到用户的更加明确的需求之后,原型将丢弃。丢弃。 需求分析需求分析需求分析

14、需求分析原型开发原型开发原型开发原型开发原型评价原型评价原型评价原型评价最终设计最终设计最终设计最终设计系统实现系统实现系统实现系统实现用户反馈用户反馈用户反馈用户反馈图图图图 快速原型开发模式示意图快速原型开发模式示意图快速原型开发模式示意图快速原型开发模式示意图 5.5.螺旋模式螺旋模式 螺旋模式是瀑布模式与边写边改演化模螺旋模式是瀑布模式与边写边改演化模式相结合,并加入风险评估所建立的软件开式相结合,并加入风险评估所建立的软件开发模式。发模式。 主要思想是在开始时不必详细定义所有主要思想是在开始时不必详细定义所有细节,而是从小开始,定义重要功能,尽量细节,而是从小开始,定义重要功能,尽量

15、实现,接受客户反馈,进入下一阶段,并重实现,接受客户反馈,进入下一阶段,并重复上述过程,直到获得最终产品。复上述过程,直到获得最终产品。每一螺旋(开发阶段)包括每一螺旋(开发阶段)包括5 5个步骤:个步骤:确定目标,选择方案和限制条件确定目标,选择方案和限制条件对方案风险进行评估,并能解决风险对方案风险进行评估,并能解决风险进行本阶段的开发和测试进行本阶段的开发和测试 计划下一阶段计划下一阶段确定进入下阶段的方法确定进入下阶段的方法 优点:优点: 严格的全过程风险管理;严格的全过程风险管理; 强调各开发阶段的质量;强调各开发阶段的质量; 提供机会评估项目是否有价值继续提供机会评估项目是否有价值

16、继续下去。下去。 引入严格的风险识别、分析和控制,引入严格的风险识别、分析和控制,要求风险管理技术水平很高,并需要较要求风险管理技术水平很高,并需要较多的人员、资金和时间上的投入多的人员、资金和时间上的投入图图 软件开发的螺旋模式软件开发的螺旋模式 6.V6.V模式模式 V V模式是在模式是在2020世纪世纪8080年代后期年代后期Paul RookPaul Rook提出的。提出的。V V模型更强调软件测试过程与分析、模型更强调软件测试过程与分析、设计等开发过程的关联。设计等开发过程的关联。同类模型同类模型nW模型模型q为弥补为弥补V模型的不足,模型的不足,W模型出现了。模型出现了。q 相对于

17、相对于V模型,模型,W模型增加了软件各开发阶模型增加了软件各开发阶段中应同步进行的验证和确认活动。段中应同步进行的验证和确认活动。qW模型由两个模型由两个V字型模型组成,分别代表测字型模型组成,分别代表测试与开发过程。试与开发过程。q从下图可明显看出测试与开发的从下图可明显看出测试与开发的并行关系并行关系,也就是说,测试与开发是紧密结合的。也就是说,测试与开发是紧密结合的。软件测试软件测试W模型图模型图qW模型强调:测试伴随着软件开发的各阶段,测试模型强调:测试伴随着软件开发的各阶段,测试的对象不仅仅是程序,需求分析、设计等同样要测的对象不仅仅是程序,需求分析、设计等同样要测试。试。测试与开发

18、是同步进行的测试与开发是同步进行的测试与开发是同步进行的测试与开发是同步进行的。q优点优点n有利于有利于尽早地、全面地尽早地、全面地尽早地、全面地尽早地、全面地进行测试。进行测试。n有利于有利于全过程地全过程地全过程地全过程地测试。测试。q局限局限n在在W模型中,需求分析、设计、编码等活动被视为串行的,模型中,需求分析、设计、编码等活动被视为串行的,同时,测试和开发活动之间也是线性的关系。故无法支持同时,测试和开发活动之间也是线性的关系。故无法支持迭代、自发性及变更调整。迭代、自发性及变更调整。nH模型模型qV模型和模型和W模型都把软件的开发过程活动视模型都把软件的开发过程活动视为为串行串行,

19、并不现实。,并不现实。q与各开发阶段相对应的测试之间也不可能保与各开发阶段相对应的测试之间也不可能保持严格的次序关系。持严格的次序关系。q各层次的测试(单元测试、集成测试、系统各层次的测试(单元测试、集成测试、系统测试)也存在反复触发、迭代和增量关系。测试)也存在反复触发、迭代和增量关系。q为解决以上问题,为解决以上问题,H模型被提出。模型被提出。 nH模型将测试活动完全独立出来,形成完全独模型将测试活动完全独立出来,形成完全独立的流程,将测试准备活动和测试执行活动清立的流程,将测试准备活动和测试执行活动清晰地体现出来。晰地体现出来。n下图表示的仅为整个软件生产周期中某个层次下图表示的仅为整个

20、软件生产周期中某个层次上的一次测试。图中标注的其他流程可以是任上的一次测试。图中标注的其他流程可以是任意的开发流程,也可以是非开发流程,如意的开发流程,也可以是非开发流程,如SQA流程,甚至是测试流程自身。流程,甚至是测试流程自身。n只要测试准备活动完成,达到了测试就绪点,只要测试准备活动完成,达到了测试就绪点,就可执行测试工作。就可执行测试工作。 软件测试软件测试H模型图模型图7.7.喷泉模式喷泉模式 喷泉模式是喷泉模式是B.H.SollersB.H.Sollers和和J.M.EdwardsJ.M.Edwards在在19901990年提出的一种新的软件开发模型,它年提出的一种新的软件开发模型

21、,它以用户需求为动力、以对象为驱动,主要用以用户需求为动力、以对象为驱动,主要用于支持面向对象的软件开发过程。于支持面向对象的软件开发过程。软件测试与软件开发的关系软件测试与软件开发的关系 软件开发与软件测试的关系软件开发与软件测试的关系n n测试与开发各阶段的关系测试与开发各阶段的关系n n测试在开发阶段的作用测试在开发阶段的作用q项目规划阶段项目规划阶段n n负责从单元测试到系统测试的整个测试阶段的负责从单元测试到系统测试的整个测试阶段的负责从单元测试到系统测试的整个测试阶段的负责从单元测试到系统测试的整个测试阶段的监控监控监控监控q需求分析阶段需求分析阶段n n确定测试需求分析、系统测试

22、计划的制定、评确定测试需求分析、系统测试计划的制定、评确定测试需求分析、系统测试计划的制定、评确定测试需求分析、系统测试计划的制定、评审后成为管理项目审后成为管理项目审后成为管理项目审后成为管理项目q详细设计和概要设计阶段详细设计和概要设计阶段n n确保集成测试计划和单元测试计划完成确保集成测试计划和单元测试计划完成确保集成测试计划和单元测试计划完成确保集成测试计划和单元测试计划完成q编码阶段编码阶段n n由开发人员进行自己负责部分的测试代码。在项由开发人员进行自己负责部分的测试代码。在项由开发人员进行自己负责部分的测试代码。在项由开发人员进行自己负责部分的测试代码。在项目较大时,由专人进行编

23、码阶段的测试任务目较大时,由专人进行编码阶段的测试任务目较大时,由专人进行编码阶段的测试任务目较大时,由专人进行编码阶段的测试任务q测试阶段(单元、集成、系统测试)测试阶段(单元、集成、系统测试)n n依据测试代码进行测试,并提交相应的测试状态依据测试代码进行测试,并提交相应的测试状态依据测试代码进行测试,并提交相应的测试状态依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告报告和测试结束报告报告和测试结束报告报告和测试结束报告小结小结n什么是软件什么是软件n软件的特征软件的特征n软件生命周期软件生命周期n软件产品构成的主要部分软件产品构成的主要部分n软件开发模型与测试模型软件开发模型与测试模型

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

最新文档


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

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