软件测试方法和模型.pptx_第1页
软件测试方法和模型.pptx_第2页
软件测试方法和模型.pptx_第3页
软件测试方法和模型.pptx_第4页
软件测试方法和模型.pptx_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

第二讲 软件测试测试流程和方法 Software Testing methods and techniques,软件开发系列软件测试,在本章中,我们将学习: 测试流程 测试停止的标准 测试方法,测试流程和方法概览,完成此课程之后,学员将具备以下能力: 了解测试的流程 什么情况下才可以停止测试?测试停止的标准是什么? 测试的方法有哪些?,测试流程和方法目标,测试流程 测试停止的标准 测试方法,测试流程和方法课程目录,典型流程 测试活动的开始时间,测试流程和方法测试流程,测试流程 测试停止的标准 测试方法,测试流程和方法课程目录,测试停止的标准 测试停止的标准一般有五类标准,具体测试项目视情况进行选择: 第一类标准:测试时间超过了预定期限,测试被强制性停止 第二类标准:执行了所有的测试用例,但并没有发现故障 第三类标准:使用特定的测试用例设计方案,作为判断测试停止的基础 第四类标准:正面指出了停止测试的具体要求,即制定了停止测试的标准 第五类标准:根据单位时间内查出故障的数量决定是否停止测试,测试流程和方法测试停止的标准,按照这些标准的定义,我们制定以下各个阶段的测试停止的标准: (1)软件测试停止标准 软件系统经过单元、集成、系统测试, 分别达到单元、集成、系统测试停止标准。 软件系统通过验收测试,并已得出验收测试结论。 软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据。 软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据。,测试流程和方法测试停止的标准,(2)单元测试停止标准 单元测试用例设计已经通过评审; 按照单元测试计划完成了所有规定单元的测试; 达到了测试计划中关于单元测试所规定的覆盖率的要求; 被测试的单元每千行代码发现错误数小于4个; 软件单元功能与设计一致; 在单元测试中发现的错误已经得到修改,各级缺陷修复率达到标准。 (3) 集成测试停止标准 集成测试用例设计已经通过评审; 按照集成构件计划及增量集成策略完成了整个系统的集成测试; 达到了测试计划中关于集成测试所规定的覆盖率的要求; 被测试的集成工作版本每千行代码发现错误数小于2个; 集成工作版本满足设计定义的各项功能、性能要求; 在集成测试中发现的错误已经得到修改,各级缺陷修复率达到标准。,测试流程和方法测试停止的标准,(4) 系统测试停止标准 系统测试用例设计已经通过评审; 按照系统测试计划完成了系统测试; 达到了测试计划中关于系统测试所规定的覆盖率的要求; 被测试的系统每千行代码发现错误数小于1个; 系统满足需求规格说明书的要求; 在系统测试中发现的错误已经得到修改,各级缺陷修复率达到标准。 (5) 缺陷修复率标准 严重缺陷、较大缺陷的修复率应达到100%; 较小缺陷、轻微缺陷修复率应达到80%以上; 其他缺陷修复率应达到60% 以上。 (6) 测试覆盖率 语句覆盖率最低不能小于80%; 测试用例执行覆盖率应达到100%; 测试需求覆盖率应达到100%。,测试流程和方法测试停止的标准,测试流程 测试停止的标准 测试方法,测试流程和方法课程目录,静态测试与动态测试 黑盒测试与白盒测试 单元测试 集成测试 系统测试 性能测试 测试中的群体现象 怎么做界面测试? 怎么做边界测试? 怎么做功能性测试? 怎么测试系统的数据正确性? 怎么使用WAS进行性能测试? 软件的易用性应该考虑哪些因素?,测试流程和方法测试方法,1静态测试与动态测试 (1)静态测试 静态测试是指在不运行软件系统的情形下,对软件的需求、设计和代码进行的评审和检查,测试的方法一般包括: 需求评审 设计评审 代码走查,测试流程和方法测试方法(静态测试与动态测试),(2)动态测试 动态测试是指部分或全部运行软件系统的情形下,对软件的接口、功能、性能等方面的测试,动态测试一般包含了用户与软件系统之间的交互过程。动态测试一般包括: 单元测试 集成测试 系统测试 验收测试,测试流程和方法测试方法(静态测试与动态测试),2黑盒测试与白盒测试 (1)黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。,测试流程和方法测试方法(黑盒测试与白盒测试),(2)白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。,测试流程和方法测试方法(黑盒测试与白盒测试),3单元测试 单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。 一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。 应为测试模块开发一个驱动模块(driver)和(或)若干个桩模块(stub)。驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,“主程序”打印“进入-退出”消息。 驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。若驱动和桩模块比较简单,实际开销相对低些。遗憾的是,仅用简单的驱动模块和桩模块不能完成某些模块的测试任务。提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。,测试流程和方法测试方法(单元测试),单元测试一般完成以下任务: 模块接口测试 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素: 1、输入的实际参数与形式参数的个数是否相同; 2、输入的实际参数与形式参数的属性是否匹配; 3、入的实际参数与形式参数的量纲是否一致; 4、调用其他模块时所给实际参数的个数是否与被调模块的形参 个数相同; 5、调用其他模块时所给实际参数的属性是否与被调模块的形参 属性匹配; 6、用其他模块时所给实际参数的量纲是否与被调模块的形参量 纲一致; 7、调用预定义函数时所用参数的个数、属性和次序是否正确; 8、是否存在与当前入口点无关的参数引用; 9、是否修改了只读型参数; 10、对全程变量的定义各模块是否一致; 11、是否把某些约束作为参数传递。,测试流程和方法测试方法(单元测试),如果模块内包括外部输入输出,还应该考虑下列因素: 1、文件属性是否正确; 2、OPEN/CLOSE语句是否正确; 3、格式说明与输入输出语句是否匹配; 4、缓冲区大小与记录长度是否匹配; 5、文件使用前是否已经打开; 6、是否处理了文件尾; 7、是否处理了输入/输出错误; 8、输出信息中是否有文字性错误; 模块局部数据结构测试 检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误: 1、不合适或不相容的类型说明; 2、变量无初值; 3、变量初始化或省缺值有错; 4、不正确的变量名(拼错或不正确地截断); 5、出现上溢、下溢和地址异常。 除了局部数据结构外,如果可能,单元测试时还应该查清全局数据(例如FORTRAN的公用区)对模块的影响。,测试流程和方法测试方法(单元测试),模块中所有独立执行通路测试 在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时基本路径测试和循环测试是最常用且最有效的测试技术。计算中常见的错误包括: 1、误解或用错了算符优先级; 2、混合类型运算; 3、变量初值错; 4、精度不够; 5、表达式符号错。 比较判断与控制流常常紧密相关,测试用例还应致力于发现下列错误: 1、不同数据类型的对象之间进行比较; 2、错误地使用逻辑运算符或优先级; 3、因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等; 4、比较运算或变量出错; 5、循环终止条件或不可能出现; 6、迭代发散时不能退出; 7、错误地修改了循环变量。,测试流程和方法测试方法(单元测试),一个好的设计应能预见各种出错条件,并预设各种出错处理通路,出错处理通路同样需要认真测试,测试应着重检查下列问题: 1、输出的出错信息难以理解; 2、记录的错误与实际遇到的错误不相符; 3、在程序自定义的出错处理段运行之前,系统已介入; 4、异常处理不当; 5、错误陈述中未能提供足够的定位出错信息。 模块边界条件测试 边界条件测试是单元测试中最后,也是最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。,测试流程和方法测试方法(单元测试),4集成测试 集成测试也称组装测试,主要查找模块之间接口的错误。 集成测试一般采用渐增式集成,集成的方式有: 自顶向下 自底向上 自顶向下与自底向上相结合,测试流程和方法测试方法(集成测试),5系统测试 软件的系统测试是指软件通过集成测试后,已经组装成了一个完整的软件系统,在此基础上执行的功能性、性能、易用性、一致性、可移植性和可维护性等方面的全面的测试。,测试流程和方法测试方法(系统测试),6性能测试 (1)性能测试概述 一般一个软件系统的性能的高低,可以从以下三个方面得到验证: a、软件系统能否长时间不间断稳定的工作 b 、当有大用户量并发访问系统时,用户的响应时间是否在一个比 较合理的范围 c、如果软件系统产生了大数据量的业务数据,查询数据的速度会 不会异常缓慢 因此我们的测试方法也必须从这三方面考虑,通常从“时间”和“数据量”两个方面来测试是比较容易做到的,而要模拟出“大用户量”则必须借助自动化测试工具。 性能测试的目的是找出软件系统的性能瓶颈,从而以最小的代价,有针对性的修改软件或更换硬件设备,提高软件系统的性能。,测试流程和方法测试方法(性能测试),(2)性能数据指标 在性能测试过程中,测试工具通过部署一整套性能监视器,来收集和显示各个架构层次、服务器和组件上的性能数据,包括网络、操作系统、应用服务器、中间件、应用程序、.NET服务器、Web服务器和数据库服务器。在进行性能测试时,这些数据用来精确测量系统各个方面的性能,从而用户可以快速、简便地定位问题和瓶颈的来源。最终,这些数据用来生成各种文档和图表,并判断出应用程序的性能是否满足业务的需要。,测试流程和方法测试方法(性能测试),测试流程和方法使用静态和动态测试来进行结构和功能测试,群体现象的产生 利用群体现象测试,测试流程和方法测试中的群体现象,第三讲 软件测试测试模型 Software Testing methods and techniques,软件开发系列软件测试,在本章中,我们将学习: 测试模型 测试流程,测试模型概览,完成此课程之后,学员将具备以下能力: 了解测试模型的含义? 测试模型有哪些? 了解测试的流程?,测试模型目标,测试模型 测试流程,测试模型课程目录,功能性,易用性,效率,可靠性,可移植性,可维护性,测试模型,软件测试-测试模型,测试模型,功能性,在指定条件下,产品满足明确和隐含要求功能的能力 适应性:软件为指定的任务和用户目标提供合适功能的能力; 准确性:软件提供所需精确度的正确或相符结果及效果的能力; 互操作性、互用性:产品与一个或多个系统进行交互的能力; 保密安全性:保护信息和数据的能力; 功能依从性:软件依从同功能性相关的标准、约定或法规的能力;,软件测试-测试模型,测试模型功能性,功能测试 正常的流程与异常的流程 正面的用例与反面的用例 输入数据的数据类型和长度 边界值的防范 数据的准确性,软件测试-测试模型,测试模型功能测试,易用性,在指定条件下,产品被理解、学习、使用和吸引用户的能力 易理解性:完成特定任务的功能明显性和适用性; 易学性:软件使用户能学习它的应用的能力; 易操作性:产品使用户能操作和控制它的能力; 吸引性:软件产品吸引用户的能力; 易用性依从性:软件依从同易用性相关的标准、约定或法规的能力;,软件测试-测试模型,测试模型易用性,易用性测试 是否符合日常习惯 提示性信息是否准确 是否提供了很多帮助信息,用以指导用户更好的使用软件系统 软件的操作流程是否设置得很清晰,操作过程很简洁 用户使用最频繁的选项是否设置了默认值,用户使用最多的功能是否放在最显眼的地方,软件测试-测试模型,测试模型易用性测试,效率,在指定条件下,相对于所用资源数量,软件产品提供适当性能的能力 时间特性:在规定条件下,软件产品执行其功能时,提供适当的响应和 处理时间以及吞吐量的能力; 资源特性:在规定条件下,软件产品执行其功能时,使用合适的数量和 类型的资源的能力; 效率依从性:软件依从同效率相关的标准、约定或法规的能力;,软件测试-测试模型,测试模型效率,效率 安全性(防止信息泄露和恶意破坏) 稳定性(长时间不间断运行) 健壮性(多用户同时访问) 效率(大数据量查询),软件测试-测试模型,测试模型效率,可靠性,在指定条件下,产品维持规定的性能级别的能力 成熟性:软件为避免由软件中错误而导致失效的能力; 容错性:软件失效或在违反规定的接口情况下,软件产品维护规定的 性能级别的能力; 易恢复性:发生故障情况下,软件重建规定的性能级别并恢

温馨提示

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

评论

0/150

提交评论