第6章 软件测试(2) pwq_第1页
第6章 软件测试(2) pwq_第2页
第6章 软件测试(2) pwq_第3页
第6章 软件测试(2) pwq_第4页
第6章 软件测试(2) pwq_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

2023/1/140软件工程第6章软件测试(2)2023/1/141本章要点一、测试概述二、测试方法三、测试级别四、测试管理流程五、测试自动化六、测试过程七、案例分析2023/1/142软件测试---测试级别2023/1/143软件测试V&V模型1.V模型--是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;

局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现

2.W模型--在V模型的基础上,增加了开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题

局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整

2023/1/144测试的级别概要设计详细设计编码集成测试单元测试代码审查需求分析系统测试回归测试验收测试动态测试级别2023/1/145本节要点代码审查

单元测试集成测试系统测试回归测试2023/1/146代码审查的依据依据源程序2023/1/147代码审查优点看到的是问题的本身而不是征兆发现其它方法无法发现的逻辑错误效率是最初测试效率的3-5倍最多发现75-80%的错误及早发现缺陷2023/1/148产品质量的过滤器方法缺陷排除效益的近似值(%)代码审查70-80代码互查50-70编译50单元测试40-50集成测试45系统测试452023/1/149代码审查技术静态分析走查:WalkThrough审查:Inspection评审:Review2023/1/1410本节要点代码审查单元测试集成测试系统测试回归测试2023/1/1411单元测试单元测试单元测试单元测试单元测试单元测试2023/1/1412单元测试定义:对软件基本组成单元进行的测试,检验程序最小单位有无错误。单元:软件开发中的最小的独立部分C语言中的单元:函数或者是子过程C++语言中的单元:类2023/1/1413单元测试的依据依据详细设计2023/1/1414单元测试的目标1、检查代码实现是否符合详细设计2、尽早发现错误Microsoftapplications10-20defects/KLOCduringunittesting0.5defects/KLOCafterrelease性价比最好2023/1/1415单元测试的角度模块出错处理局部数据结构独立路径边界条件模块接口2023/1/1416单元测试的任务1模块接口测试检查进出模块的数据是否正确Checklist:模块的实际输入/出与定义的输入/出是否一致个数、类型、顺序模块中对于非内部/局部变量是否合理使用使用其他模块时,是否检查可用性和处理结果使用外部资源时,是否检查可用性并及时释放资源内存、文件、硬盘、端口等其他2023/1/1417单元测试的任务2模块局部数据结构测试检查局部数据结构能否保持完整性Checklist:变量从来没有被使用可能别的地方使用了错误的变量名变量没有初始化错误的类型转换数组越界非法指针变量或函数名称拼写错误使用了外部变量或函数其他2023/1/1418单元测试的任务3模块边界条件测试检查临界数据是否正确处理Checklist:普通合法数据是否正确处理普通非法数据是否正确处理边界内最接近边界的(合法)数据是否正确处理边界外最接近边界的(非法)数据是否正确处理其他2023/1/1419单元测试的任务4模块独立执行路径测试检查由于计算错误、判定错误、控制流错误导致的程序错误Checklist:死代码错误的计算优先级精度错误比较运算错误赋值错误表达式的不正确符号>、>=;=、==、!=循环变量的使用错误错误赋值其他2023/1/1420单元测试的任务5模块内部错误处理测试检查内部错误处理设施是否有效Checklist:是否检查错误出现资源使用前后其他模块使用前后出现错误,是否进行错误处理抛出错误通知用户进行记录错误处理是否有效在系统干预前处理报告和记录的错误真实详细其他2023/1/1421单元测试环境(1/3)驱动模块被测模块桩模块桩模块桩模块测试结果测试用例2023/1/1422桩模块的种类桩A桩B桩C桩D图例: 信息流及方向显示跟踪信息显示参数返回参数(从表或外部文件)根据输入参数查表,返回相应输出参数单元测试环境(2/3)2023/1/1423驱动模块的种类驱动器A驱动器B驱动器C驱动器D图例: 信息流及方向调用低层次模块传递参数(查表或外部文件)显示参数B和C的组合单元测试环境(3/3)2023/1/1424单元测试技术测试设计:依据模块的内部结构,设计测试用例的过程。主要采用白盒测试技术,关注逻辑覆盖原则:1、保证没有死代码保证一个模块中的每个独立路径都可能被使用到2、保证对所有的逻辑值都测试true和false3、在上下边界和合法的范围内运行所有的循环4、确保内部数据结构的有效性和完整性2023/1/1425单元测试技术逻辑覆盖测试方法语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖2023/1/1426单元测试策略由顶向下需要桩模块由低到上需要驱动模块孤立测试需要桩和驱动模块2023/1/1427例如VoidfuncA(inta,intb){ If(max(a,b)<0) printf(“allinputvaluesarenegativenumbers!”); Else printf(“Thebiggestvalueisnotnegativenumber!”);}Intmax(inta,intb){ if(a>=b) returna; else returnb;}2023/1/1428本节要点代码审查单元测试集成测试系统测试回归测试2023/1/1429集成测试单元测试单元测试单元测试单元测试单元测试2023/1/1430集成测试定义在单元测试的基础上,将所有的模块按照概要设计要求组装成子系统或者系统。用来发现模块接口之间的错误2023/1/1431集成测试依据概要设计(总体设计)2023/1/1432集成测试的层次子系统内集成模块内集成子系统间集成2023/1/1433集成测试技术正向测试规范导出等价类状态转换2023/1/1434集成测试技术逆向导出错误猜测法故障测试边界值特殊值(特殊边界值)状态转换测试2023/1/1435集成测试技术高覆盖测试功能覆盖接口覆盖2023/1/1436集成测试策略大爆炸集成自顶向下集成自底向上集成三明治集成2023/1/1437M1M2M3M4M5M6M8M7大爆炸集成2023/1/1438M1M2M3M4M5M6M8M7自顶向下集成2023/1/1439M3M1M2D3D1D2簇1簇2簇3自底向上集成2023/1/1440M3M1M2D3D1D2三明治集成2023/1/1441冒烟测试

在软件中,“冒烟测试”这一术语描述的是在将代码更改签入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。2023/1/1442本节要点代码审查单元测试集成测试系统测试回归测试2023/1/1443系统测试2023/1/1444系统测试定义

系统测试是将集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对系统进行一系列的组装测试和确认测试。2023/1/1445系统测试的依据依据系统需求:功能性需求,非功能性需求2023/1/1446系统测试的目的目的为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试一般使用黑盒测试技术一般由独立的测试人员完成应用最广泛的测试2023/1/1447系统测试方法1、功能测试目标:对产品的功能进行测试,检验是否实现、是否正确实现方法:覆盖产品的功能规范导出法等价类划分边界值分析因果图判断表错误猜测法2023/1/1448系统测试方法2、协议一致性测试目标:监测实现的系统与标准协议的符合程度方法:规范导出法等价类划分边界值分析2023/1/1449系统测试方法3、性能测试目标:对产品的性能进行测试,检验是否达标、是否能够保持方法:覆盖系统的性能需求,一般和负载测试结合使用规范导出法错误猜测法2023/1/1450系统测试方法4、压力测试目标:在人为设置的系统资源紧缺情况下,检查系统是否发生功能或者性能上的问题方法:人为减少可用的系统资源,包括:内存、硬盘、网络、CPU占用、数据库反应时间…规范导出法等价类划分边界值分析错误猜测法2023/1/1451系统测试方法5、容量测试目标:在人为设置的高负载(大数据量、大访问量)的情况下,检查系统是否发生功能或者性能上的问题方法:人为生成大数据量,并利用工具模拟频繁并发访问等价类划分边界值分析错误猜测法2023/1/1452系统测试方法6、安全性测试目标:检查集成在系统内的保护机制是否能够在实际中保护系统不受非法的侵入。方法:一般与功能测试结合使用规范导出法错误猜测法基于故障的测试2023/1/1453系统测试方法7、恢复测试目标:验证系统从软件或者硬件失败中恢复的能力。方法:在人为使发生系统灾难(系统崩溃、硬件损坏、病毒入侵等)的情况下,检查系统是否能够恢复被破坏的环境和数据。规范导出法错误猜测法基于故障的测试2023/1/1454系统测试方法8、备份测试目标:验证系统从软件或者硬件失败中的事件中备份数据的能力。方法:参考恢复测试方法规范导出法错误猜测法基于故障的测试2023/1/1455系统测试方法9、GUI测试目标:界面实现与界面设计的吻合程度,确认界面处理的正确性。方法:规范导出法等价类划分边界值分析因果图判断表错误猜测法2023/1/1456系统测试方法10、兼容性测试目标:测试应用对其他应用或者系统的兼容性方法:规范导出错误猜测2023/1/1457系统测试方法11、可用性测试目标:检查系统界面和功能是否容易学习、使用方式是否规范一致,是否会误导用户或者使用模糊的信息一般与功能测试结合使用方法:可以采用用户操作、观察(录像)、反馈并评估的方式规范导出法错误猜测法2023/1/1458系统测试方法12、安装测试目标:验证成功安装系统的能力。方法:在不同的硬件配置下,在不同的操作系统和应用软件环境中,检查系统是否发生功能或者性能上的问题。规范导出错误猜测2023/1/1459系统测试方法13、文档测试目标:验证用户文档是正确的并且保证操作手册的过程能够正确工作。方法:一般由单独的一组测试人员实施规范导出2023/1/1460系统测试方法14、在线帮助测试目标:检查系统的实时在线帮助的可用性和正确性方法:规范导出法2023/1/1461系统测试方法15、数据转换测试目标:验证已存在数据的转换并载入一个新的数据库是否有效方法:规范导出法2023/1/1462本节要点代码审查单元测试集成测试系统测试回归测试2023/1/1463回归测试目标:验证系统的变更没有影响以前的功能,检查系统变更之后是否引入新的错误或者旧的错误重新出现,尤其是在每次Build之后和稳定期测试的时候工具:一般使用工具,一般依赖于测试用例库和缺陷报告库2023/1/1464验收测试目标:验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。

验收测试一般有三种策略:正式验收、非正式验收活Alpha测试、Beta测试。方法:一般需要结合回归测试,并谨慎处理新出现的Bug2023/1/1465本章要点一、测试概述二、测试方法三、测试级别四、测试管理流程五、测试自动化六、测试过程七、案例分析2023/1/1466软件测试---测试管理流程2023/1/1467测试管理流程测试计划测试设计、开发测试执行测试记录分析测试总结完毕缺陷跟踪针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。根据测试计划,配置测试环境,并手动或者自动执行测试设计。根据测试计划,忠实地记录测试执行的过程和结果。分析测试记录,如果发现与预期结果不同,确定并重现缺陷。检查测试设计是否全部执行完毕,缺陷是否全部关闭。记录、分发、评估、关闭缺陷报告。分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。2023/1/1468本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估测试计划定义测试需求,测试策略,测试资源和进度计划等。...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试计划2023/1/1470测试计划-测试需求详细说明被测软件的工作情况,指出测试范围和任务。2023/1/1471测试计划-测试策略测试技术和工具测试完成的标准特殊的考虑,包括资源需求和进度表等2023/1/1472测试策略项 例子测试的级别: 系统测试类型: 功能技术: 为每个主要功能建立测试过程...

采用黑盒测试技术, 数据/结果是否得到验证完成尺度: 所有的测试过程被执行 所有易出问题的功能必须被执行...

严重性级别为1或2的缺陷不再出现

其它因素: "测试必须在下午7:00以后到上午 9:00之前进行."测试计划-测试策略2023/1/1473测试计划-资源人力资源--测试经理职责全面的管理-测试计划采集资源项目报告-测试评估要求有测试过程的知识熟悉测试工具有领导才能懂得项目的管理2023/1/1474测试计划-资源人力资源--测试工程师(设计者/开发者)职责分解测试需求测试设计测试开发要求有应用需求方面的知识熟悉测试工具编程的技巧(附加)2023/1/1475测试计划-资源人力资源--测试工程师(测试执行)职责执行测试产生日志结果检查修正的错误要求了解要测试的系统网络服务器等熟悉测试工具有诊断的技巧2023/1/1476测试计划-资源人力资源--测试系统管理员职责管理测试的系统添加新用户处理用户的要求要求系统管理的经验和方法熟悉测试管理工具2023/1/1477测试计划-资源系统资源测试开发系统测试管理系统测试存储库网络2023/1/1478系统测试计划模板1.介绍1.1目的1.2测试策略1.3范围1.4参考文献1.5术语

2.测试项目3.被测特性4.不被测特性5.测试方法

6.测试通过/失败标准6.1测试结果审批过程7.测试挂起/恢复的条件8.系统测试交付物9.测试任务10.环境需求10.1硬件需求10.2软件需求10.3测试工具10.4其它11.角色和职责12.人员及培训13.系统测试进度14.风险和应急计划15.审批2023/1/1479本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估测试设计定义测试的具体方法,设计测试用例、构造测试过程...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试设计2023/1/1481测试设计-找出并描述测试用例分析应用工作流确定描述测试活动找到测试用例确定描述测试用例被测对象说明期望结果,如输出状态、条件或数据值确定测试用例数据作为输入数据的值测试期待结果值支持用例的数据,不作为输入、输出2023/1/1482测试设计-确定并构造测试过程构造测试过程建立测试需要的数据测试过程的起始条件、状态、行为测试步骤输入的数据值期待的结果结果评估定义测试过程的结束条件、状态、行为2023/1/1483测试设计-评估测试覆盖覆盖的度量标准基于需求的覆盖基于代码的覆盖判定标准均采用完成测试项的百分比2023/1/1484测试案例样例表8-3:测试案例编码:WebSite-Base-link-01版本:V1.0

测试项目名称:测试人员:

测试时间:

测试项目标题:测试内容:

测试环境与系统配置:测试输入数据

测试次数:预期结果:

测试过程:1.

测试结果:测试结论:实现限制:备注:2023/1/1485测试案例样例测试项编号UT_TC_002_001_002优先级中测试项描述测试目录参数合法,但检索层次非法情况预置条件无用例序号输入执行步骤期望结果001dir=”Dir1”lev=-2g_DirRoot=NULL

返回FALSE;反馈目录检索层次设置错误;全局变量g_DirRoot内容不变;002dir=”Dir1”lev=81g_DirRoot=NULL

返回FALSE;反馈目录检索层次设置错误;全局变量g_DirRoot内容不变;2023/1/1486测试设计测试设计案例2023/1/1487本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估测试开发对在测试设计阶段已被定义的测试案例进行创建或修正的阶段(例如:脚本编写以及注意事项)。...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试开发2023/1/1489测试开发--编写测试脚本创建测试脚本参考已有的有价值的脚本建立测试环境建立脚本修改脚本(如果必要)2023/1/1490录制vs.编程先录制,如果需要的话再编程产生WindowSetContext(揗yapp?MenuSelect揊ile-->OpenWindowSetContext(揥indow2?ComboBoxclick揊ile1PushButtonclick揙KWindowSetContext(揗yapp?MenuSelect揊ormat-->FontsProgramming

PowerandcontrolRapidcreationUsablebynon-programmersRecord/playback测试开发--录制和编写测试脚本2023/1/1491创建测试脚本应注意:尽量使测试脚本可重用尽可能减少测试脚本的维护量如果可能,尽量使用已有的测试脚本使用测试工具创建测试脚本,减少手工作业测试开发--录制和编写测试脚本2023/1/1492测试开发--确定测试特需的功能考虑驱动模块考虑桩模块2023/1/1493测试开发-建立外部数据集创建外部数据集查阅测试用例、测试过程使用适当的工具和方法创建数据集利用数据集对测试脚本调整调试测试脚本1020304050DataSetsTestProcedureScriptCommands2023/1/1494测试开发-建立外部数据集使用外部数据集的好处:使测试脚本中不含数据,易于维护使数据易于修改,不受脚本影响方便增添测试用例,较少或避免修改测试脚本外部数据能够被多个测试脚本共享外部数据集中可包含用于控制测试脚本的数据值2023/1/1495本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估测试执行对被测软件进行一系列的测试并记录日志结果的阶段(环境准备、意外处理、结果分析)。...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试执行2023/1/1497测试执行--执行测试过程建立测试环境初始测试环境执行测试过程自动测试手工测试2023/1/1498测试环境搭建针对不同的测试目的构造不同的测试环境;测试环境的构造应最大程度上有利于自动化;测试环境应能够很好的接受测试的输入;测试环境应能够把测试执行的结果反馈给测试人员;2023/1/1499测试案例执行配置输入条件;按用例执行步骤执行用例;仔细观察每个可能的输出结果,与期望结果比较,记录差异点;发现可能的缺陷;(由于用例不可能遍历每个可能的输出,因此不同的人在执行同一个测试用例的时候,可能会得到不同的结果,这是一个经验的积累)避免用例之间的干扰,排除人为产生的错误;隔离缺陷,协助开发人员定位问题;如实的记录每个缺陷,缺陷信息应当详尽,避免歧义,并利于问题的重现;2023/1/14100测试执行--评估测试执行正常:所有的测试过程或测试标准按计划结束不正常:测试失败或未达到预期的测试覆盖2023/1/14101测试执行--从失败测试中恢复如何从失败中恢复:确定错误发生的真正原因纠正错误重新建立测试环境重新初始化测试环境重新执行测试2023/1/14102测试执行--记录缺陷记录缺陷追踪缺陷2023/1/14103本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估缺陷跟踪记录测试事件或用户问题,进行调查研究,提出解决它们的方案并进行修改的阶段。...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试跟踪2023/1/14105缺陷追踪2023/1/14106执行日志在测试执行过程中,每天都应当记录测试执行日志,一般测试执行日志应当包含下列内容:执行了哪些用例,谁执行的,是否通过,发现了哪些缺陷,总体的测试进展情况,可能的风险,遇到的问题等。工具:例如Buggit2023/1/14107缺陷跟踪日志序号时间事件描述错误类型状态处理结果测试人开发人1

2

3

2023/1/14108缺陷跟踪日志(实验要求)缺陷类型缺陷问题时间解决情况测试人员2023/1/14109本节要点测试计划测试设计测试开发测试执行测试跟踪测试评估测试评估分析测试结果并判断测试的标准是否被满足的阶段。目标是量化测试进程,生成、评估缺陷和总结测试覆盖率。...Exec.Exec.TestPlanningDefectTrackingTest

DevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试管理流程-测试评估2023/1/14111测试评估--测试用例覆盖覆盖判定:对于测试目标有多少测试用例,已执行的测试用例数成功执行的测试用例数确保100%的测试用例全部成功地执行制定测试覆盖标准,考虑:风险和严重性可接受的覆盖百分比2023/1/14112测试评估-分析缺陷常用的缺陷分析标准:缺陷分布缺陷趋势缺陷滞留2023/1/14113缺陷分布(按优先级)测试评估-分析缺陷2023/1/14114缺陷趋势(随时间)测试评估-分析缺陷2023/1/14115测试评估--确定测试是否达到标准确定标准:参阅测试计划有关测试覆盖和缺陷评估等策略检查测试结果、缺陷和缺陷分析2023/1/14116测试报告参照模板(可裁减)

1介绍2测试时间、地点和人员3测试环境描述4测试数据度量4.1测试用例执行度量

被测对象用例总数执行总数发现缺陷数规模

2023/1/14117报告的内容(续一)4.2测试进度和工作量度量4.2.1进度度量任务计划开始时间计划结束时间实际开始时间实际结束时间

4.2.2工作量度量

执行任务开始时间结束时间工作量(人时)

2023/1/14118报告的内容(续二)4.3缺陷数据度量

4.4覆盖率数据度量

被测对象总数致命严重一般提示设计错误赋值错误算法错误接口错误功能错误其它

标识符名称覆盖率

2023/1/14119报告的内容(续三)4.5综合数据分析

计划进度偏差=(实际进度-计划进度)/计划进度×100%用例执行效率=执行用例总数/执行总时间(小时)用例密度=用例总数/规模×100缺陷密度 =缺陷总数/规模×100用例质量 =缺陷总数/用例总数×100缺陷严重程度分布饼图:

缺陷类型分布饼图:

2023/1/14120报告的内容(续四)5测试评估5.1测试任务评估

评估结论:本次测试执行准备充足,完

温馨提示

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

评论

0/150

提交评论