第三章 软件测试流程.ppt_第1页
第三章 软件测试流程.ppt_第2页
第三章 软件测试流程.ppt_第3页
第三章 软件测试流程.ppt_第4页
第三章 软件测试流程.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、软件测试基础教程,杜文结经秀丽主编中国水利水电出版社,第三章软件测试程序,第三章软件测试程序,3.1软件测试复杂性和经济分析3.2软件测试流程3.3单元测试3.4集成测试3.5确认测试3.6系统测试3.7确认测试练习,本章摘要,第三章软件测试程序,软件测试复杂性和经济性软件测试相关流程:单元测试,集成测试,3.1在软件测试复杂性和经济分析、第三章软件测试过程、软件工程开发的一般认识中,开发程序是一个复杂而困难的过程,需要大量的人力、物力、时间,但测试一个程序比较容易,不需要花费太多的精力。这实际上是人们对软件工程开发过程的理解的误解。在实际软件开发过程中,作为现代软件开发工业的一个非常重要的组

2、成部分,软件测试推迟着越来越重要的角色。随着软件规模的扩大如何在有限的条件下有效地进行开发的软件测试成为软件工程中一个非常重要的课题,3.1.1软件测试复杂性,第三章软件测试过程,设计测试用例是需要细致、高度技巧的工作,一不小心就能互相照顾,可能导致不适当的遗漏。以下是对容易出现问题的根本原因的分析。(1)完全测试是不现实的。在实际的软件测试工作中,无论用什么方法,软件测试情况都非常多,不能进行完全彻底的测试。彻底的测试是确保被测试的程序在所有可能的输入情况下都运行一次。牙齿测试经常被称为“彻底测试”。彻底测试可能会导致以下问题:输入量太大。输出太多。软件执行路径过多。说明书有主观性。3.1.

3、1软件测试复杂性,第三章软件测试程序,E.W.Dijkstra的名言对测试的不完整性表示:“程序测试只能证明错误的存在,但不能证明错误的存在。”因为彻底的测试工作量太大,实践行不通,所以不能保证所有实际测试都不完整,测试的程序在理论上没有残留。由于3.1.1软件测试复杂性,第三章软件测试程序,(2)彻底测试存在软件测试风险的可行性,大多数软件测试中只能进行郑智薰彻底测试。这意味着另一个危险。例如,在Microsoft Office工具中使用Word时,可以测试创建新Word文档。在文档中输入汉字“之后”。将字体属性设置为“yes”,将字体大小设置为“show”,效果将牙齿为“null”。将页面

4、显示比例设置为500%。这时“后”字里出现了“后满进”四个字。类似的问题如果在实际测试中不使用彻底的测试就很难发现,在投入软件市场的情况下,发现维修成本可能会很高。这可能导致软件测试圆无法进行完整的测试,无法进行不完整的测试,无法证明软件100%的可靠性的矛盾。那么如何在牙齿两者的矛盾中找到相对平衡点呢?3.1.1软件测试复杂性,如图3-1所示的第三章软件测试过程,如图3-1所示的最佳测试量示意图中所示,软件缺陷减少到特定数值后,随着测试杨怡的增加,软件缺陷没有明显减少。这是软件测试工作中需要注意的重要问题。如何将测试数据的杨怡大量软件测试减少到可以控制的范围,如何对风险做出最明智的选择是软件

5、测试人员必须掌握的重要问题。图3-1中的最佳测试量图说明了发现软件缺陷数和测试量之间的关系。随着测试量的增加,测试成本呈指数增长,软件缺陷减少到特定数值后,变化不大。最佳测量是两条曲线的交点。,3.1.1软件测试复杂性,3章软件测试过程,图3-1最佳测试量图表,3.1.1软件测试复杂性,3章软件测试过程,(3)杀虫剂现象1990年,Boris Beizer编纂的软件这就像农药杀虫一样。经常使用一种茄子农药,害虫就会有免疫力,农药会失去作用。软件开发人员在开发过程中会遇到各种主观客观因素和无法预测的突发事件,因此,即使优秀的软件测试人员使用测试方法或工具,也不能检测到所有的缺陷。为了克服被测试的

6、软件免疫力,软件测试负责人必须持续编写新的测试程序,对被测试的软件中的单个测试程序有免疫力,持续测试程序的各个部分,使软件缺陷不成为发现对象。这对软件测试人员的素质提出了很高的要求。3.1.1软件测试复杂性,第三章软件测试程序,(4)缺陷的不确定性是软件测试中难以判断的现象,是缺陷的不确定性。也就是说,不是所有的软件缺陷都需要修理。很难确定到底什么是软件缺陷的标准,任何软件测试书都只能提出一个一般的定义。在实际测试中,要根据具体的测试对象明确牙齿定义。尽管如此,即使特定测试者对软件系统的理解不同,也会产生标准差异。3.1.2软件测试经济,第三章软件测试进程,软件测试经济有两个茄子方面。一是反映

7、测试工作在整个项目开发过程中的重要位置。二是反映了为了实现测试成本和测试效果的统一,应该根据什么原则进行测试。软件工程的总目标是充分利用有限的人力和物力,以高效率、高质量完成测试。如果与3.1.1节一起无法进行彻底测试,您可以理解为什么在测试量和测试成本的曲线上选择最佳测试点。3.1.3软件测试符合性准则、第三章软件测试程序、软件测试符合性准则包括:所有软件:具有有限的完整测试集。如果测试的数据集足以测试被测试的软件系统,那么添加更多的测试数据仍然足够。(威廉莎士比亚、哈姆雷特、测试、测试、测试、测试、测试、测试、测试)牙齿特性被称为软件测试单调。软件所有成分都经过充分测试并不意味着整个软件的

8、测试就足够了。牙齿特性称为软件测试郑智薰复合性。对一个软件系统的全面测试不足以完全测试软件系统的每个组件。牙齿特性称为软件测试郑智薰可降解性。软件测试适度性和软件需求、软件实现都与软件复杂性成正比。牙齿功能称为软件测试复杂性。随着测试次数的增加,检查软件缺陷的概率会减少。软件测试收益率有下降率。随着3.1.4软件测试误解、第三章软件测试程序、软件产业产业化、模块化发展,软件开发组中软件测试人员的重要性也不断突出。在国外,很多著名企业已经对软件测试工作非常重视。例如,软件测试人员与开发者的比例已经达到2:1家著名的微软公司。软件测试对软件开发项目的成功与否有着非常重要的意义。但是在实际项目开发和

9、管理中仍然存在很多管理上或技术上的误解。(1)期望将大多数人工替换为测试自动化;(2)忽略需求阶段参与;(3)软件测试技术要求不高的位置;3.2软件测试流程;第3章软件测试流程;第1软件开发V模型软件测试阶段;软件测试流程和软件设计软件开发流程的V模型是众所周知的模型,如图3-2所示。在v模型中,从左到右描述了基本开发过程和测试行为,为软件开发人员和测试管理员提供了一个非常简单的框架。v模型的价值在于明确标识测试过程的不同级别,并明确说明这些测试阶段和开发过程中每个阶段的对应关系。v模型的每个测试阶段执行的执行过程如下:单元测试是基于代码的测试,最初由开发人员运行,以验证执行节目代码的每个部分

10、是否满足所需的功能要求。集成测试(WHO)验证两个或多个单元之间的集成是否正确,并具体检查详细设计中定义的每个单元之间的接口。完成单元测试和集成测试后,使用客户环境模拟系统启动系统测试操作,以确保系统满足摘要设计中定义的功能和性能。最后,技术部门完成所有测试工作后,业务专家或用户就可以验收测试产品以满足用户的业务需求。图3-2显示了整个软件测试操作中每个测试链接的互连和约束关系。3.2软件测试流程、第3章软件测试流程、图3-2 V模型图表、3.2软件测试流程、第3章软件测试流程、第2软件测试流程软件测试流程可分为单元测试、合并测试、验证(有效性)测试、系统测试和接受(用户)测试5个阶段(1测试

11、对象是每个单元格。测试目的是验证每个模块或组件是否工作正常。单元测试主要使用白盒测试方法检测程序的内部结构。(2)集成测试:也称为装配测试。在单元测试基础上组装测试的模块集成测试进行。测试目的是检查与接口相关的模块之间的问题。集成测试主要使用黑盒测试方法。(3)验证测试:也称为验证测试。完成集成测试后,验证软件功能和性能以及其他功能是否符合用户要求。测试目的是确保系统可以按照用户预定的要求工作。验证测试通常使用黑盒测试方法。(4)系统测试:完成验证测试后,还需要进行系统测试工作,以确保可以与实际环境(例如硬件和软件平台、数据、人员等)协调。可以说,系统测试后软件产品基本上满足了开发要求。(5)

12、验收测试:测试过程的最后一步。验收测试主要强调用户的作用,软件开发人员也要参与。3.2软件测试流程、第三章软件测试流程和软件测试阶段的输入信息包括软件配置:测试对象等两种茄子类型。一般包括需求指南、设计指南、测试的源节目等。测试配置:通常包括测试计划、测试阶段、测试用例和具体实施测试的测试过程,以及测试工具。将测试结果与预期结果进行比较后,可以确定是否有错误,并确定是否进入问题解决阶段进行调试工作。修改的程序可能会产生新的问题,需要重新测试。一般来说,在出错的情况下,基于错误率估计测试的软件可靠性对软件运行后的维护有重要价值。、3.2软件测试流程、第3章软件测试流程、图3-3测试每个阶段的图表

13、、3.3单元测试、第3章软件测试流程、第1章单元测试定义单元测试是对软件基本组件的测试。单元测试对象是软件设计最小单位模块。很多人把单位的概念误解为具体的函数或类的方法,这种理解是不正确的。作为最小的单元,必须有明确的功能定义、性能定义和介面定义,并且能够与其他单元明确区分。菜单、显示器介面或可以独立执行的特定功能可以是一个单元。从某种意义上说,单元的概念扩展到了组件。3.3单元测试、3章软件测试程序、2单元测试目标单元测试的主要目标是确保每个单元模块都正确编码。除了确保单元测试测试代码的功能外,还要确保代码在结构上稳定健康,在所有条件下都能正确响应。全面的单元测试功能减少了应用程序级别所需的

14、工作量,完全降低了系统出错的可能性。手动运行可能需要大量单元测试工作,自动化测试可以提高测试效率。3.3单元测试,第3章软件测试程序,3单元测试内容单元测试主要内容是模块介面测试。本地数据结构测试独立路径测试错误处理测试边界条件测试。如图3-4所示,这些测试在模块中工作以执行单元测试任务。测试模块介面:测试通过已测试模块的数据流。为此,必须检查所有模块接口,包括参数表、调用子模块的参数、完整数据和档案导入/导出操作。3.3单元测试,第3章软件测试过程,本地数据结构测试:确定设计测试案例检查数据类型说明、初始化、默认值等方面的问题,以及整体数据对模块的影响。测试独立路径:选择适当的测试用例以测试

15、模块的重要执行路径。基本路径测试和循环测试可以发现很多路径错误,是最常见、最有效的测试技术。测试错误处理:确定模块的错误处理功能是否有错误或缺陷。例如,是否拒绝不合理的输入、错误的说明是否难以理解、错误的位置是否错误、错误的原因是否报告错误、错误条件是否未正确处理等。在处理错误之前测试边界条件,包括错误条件是否导致了系统干预:在数据流、控制流中完全相同,或者大于或小于标识的比较值时,特别要注意出错的可能性。对于牙齿场所,要仔细选择测试用例,认真测试。此外,如果需要模块运行时间,则专门进行关键路径测试,以确定最坏情况和平均意义下影响模块运行时间的因素。此信息对于性能评估非常有用。3.3单元测试、

16、3章软件测试程序、4单元测试阶段通常在编码阶段进行单元测试。完成源代码编写,经过检查和验证,确认没有语法错误后,开始设计单元测试测试用例。使用设计文档可以验证节目功能和查找多个程序错误测试案例。对于每个输入集,必须具有预期的精确结果。在模块介面测试中测试的模块不是独立的程序。考虑测试模块时,考虑到与外部的连接,使用与测试模块模拟的模块作为辅助模块。这些辅助模块可分为(1)车手模块(车手)。也就是说,它与被测试模块的主程序相同。接收测试数据,将牙齿数据发送到测试模块,最后输出实测结果。(2)档案模块(stub):调用的子模块,而不是测试的模块。档案模块可以处理少量数据,不必获取子模块的所有功能,但什么都不能做。、3.3单元测试、第3章软件测试流程、测试的模块、相关驱动模块和档案模块共同构成了“测试环境”(请参阅图3-5)。如果模块执行多个功能,并表示为包或对象类(例如,Ada中的包、MODULA中的模块、C中的类),则可以将模块视为由多个小程序组成。对于其中的每个小程序,首先执行单元测试任务,然后对核心模块执行性能测试。对于支持特定标准领域的程序,应着手进行互连测试。有些人为了单元测试区分牙齿情况,特别称模块测试。3.3单元测试,3章软件测试过程,

温馨提示

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

评论

0/150

提交评论