




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第六章 单元测试过程 安博测试空间技术中心http:/ 62303260 623032302006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-2本章大纲p讨论与单元测试相关的内容,包括n单元测试过程n单元测试计划n单元测试用例设计n单元测试执行n单元测试报告2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-3p定义定义n对构成软件的基本单位,即单元,进行测试的过程n目的在于验证被测单元的功能是否正确,是否可以依照设计正常工作p什么是单元n在组件设计时定义的可以独立测试
2、的个体n单元可能是:1.一个过程(函数)、一个菜单、一个类、一个网页或者2.一组过程、一组菜单,一组类,一组网页n应遵循的标准:可以与其它的部分相对独立开来什么是单元测试2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-4单元测试过程单元测试过程单元测试过程2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-5p单元测试计划单元测试计划n主要任务是依据测试策略和相关文档,例如软件需求分析说明书、软件设计说明书、项目计划等确定单元测试目的,识别单元测试需求,安排测试进度、
3、规划测试资源、制订测试开始和结束准则、说明回归测试方法和缺陷跟踪过程并使用合适的模版将这些内容编写以到软件单元测试计划文档中n采用基于第5章提供的测试计划模版定义自己的单元测试计划单元测试活动2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-6p单元测试用例设计单元测试用例设计n主要任务是根据各项测试需求确定单元测试方案,包括p测试所依据的标准和文档p测试使用的方法例如白盒、黑盒或其它p缺陷属性的说明p结论的约定等。p如果需要编写测试代码或测试工具还需准备测试代码与工具的设计描述单元测试活动2006级本科软件测试与质量保证 200
4、8年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-7p单元测试实现单元测试实现n依据规范开发单元测试用例并确保满足测试需求,测试用例可以是手工测试用例,也可以是自动化测试脚本p单元测试执行单元测试执行n主要任务是搭建测试环境,运行测试用例以发现被测单元中的缺陷,当发现缺陷后提交缺陷问题报告单并在缺陷修复后对缺陷的修正进行验证p单元测试报告单元测试报告n对测试过程进行总结,提供相关测试数据说明和缺陷说明,评价被测对象并给出改进意见,输出软件单元测试报告单元测试活动2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有
5、6-8p其它其它n单元测试中还有一些辅助性但也非常重要的活动p进行需求跟踪以验证分配到该软件单元的需求是否已完全实现p跟踪和解决单元测试缺陷p更新用户文档p阶段评审p单元过程资产基线p编写任务总结报告等单元测试活动2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-9单元测试活动p角色和职责n单元测试通常由单元的开发者承担,开发人员需要在单元测试阶段负责完成单元测试计划、方案和报告。n在单元测试过程中还可能涉及到的主要角色包括1.系统分析设计人员:保证需求的变更并进行软件单元可测性分析,确定单元测试的对象、范围和方法2.软件测试工程
6、师:负责参与单元测试类文档的评审,对单元测试计划、设计和执行质量进行监控,根据实际情况,可选择参与由开发人员负责的代码评审、单元测试等活动3.配置管理人员:对代码及单元测试文档进行配置管理4.质量保证人员:单元测试过程进行审计。2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-10单元测试计划p单元测试计划n指明了单元测试的过程,明确此次单元测试的目的n内容p目的p测试方法p测试范围p测试交付件p测试过程准则p工作任务分布p测试进度p测试资源p测试用例结构及其用例p测试结论约定2006级本科软件测试与质量保证 2008年9月-20
7、09年01月 SEI of ECNU 孙海英 版权所有 6-11单元测试计划p测试方法 n根据项目要求和被测单元特征,指明在本次单元测试中所采用的发现缺陷的技术,例如常规的白盒测试、黑盒测试、自动化测试或者复用类似的测试等p测试范围n测试范围明确此次确单元测试“做什么”和“不做什么”,依据项目安排测试哪些单元,每个单元需要测试哪些内容。2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-12单元测试计划p测试范围n按照常规观点,围绕单元的设计功能,单元测试常需要包括单元的接口测试、局部数据结构测试、边界条件测试、所有独立执行通路测试
8、和各条错误处理测试等几大方面2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-13单元测试计划p测试范围n单元接口测试是单元测试的基础,主要检查进出单元的数据是否正确:p实际的输入与定义的输入是否一致,包括个数、类型、顺序;p对于非内部/局部变量是否合理使用p使用其它模块时,是否检查可用性和处理结果p使用外部资源时,是否检查可用性及时释放资源,包括内存、文件和端口等2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-14单元测试计划p测试范围n局部数据结构测试:检查局部
9、数据结构能否保持完整性:p变量从来没有被使用,包括可能别的地方使用了错误的变量名p变量没有初始化p错误的类型转换p数组越界p非法指针p变量或函数名称拼写错误,包括使用了外部变量或函数2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-15单元测试计划p测试范围n单元独立执行路径测试,主要检查由于计算错误、判断错误、控制流错误导致的代码缺陷 p死代码p错误的计算优先级p精度错误,包括比较运算错误、赋值错误p表达式的不正确符号p循环变量的使用错误、包括错误赋值2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI o
10、f ECNU 孙海英 版权所有 6-16单元测试计划p测试范围n单元内部错误处理测试,主要检查内部错误处理设施是否有效p是否检查错误出现,包括资源使用前后、其他模块使用前后p出现错误是否进行处理,包括抛出错误、通知用户、进行记录p错误处理是否有效,包括在系统干预前处理、报告和记录的错误都应真实详细2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-17单元测试计划p测试范围n边界条件测试,主要临界数据是否正确处理p普通合法数据是否正确处理p普通非法数据是否正确处理p边界内最接近边界的合法数据是否正确处理p边界内最接近边界的非法数据是
11、否正确处理2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-18单元测试计划p测试范围,其它n单元的运行时特征p内存分配p动态绑定p运行时类型信息p被测单元性能p可维护性2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-19单元测试计划p测试交付件nXXXX单元测试计划nXXXX单元测试计划评审报告nXXXX单元测试用例nXXXX单元测试用例评审报告nXXXX单元测试脚本nXXXX单元测试脚本评审报告nXXXX单元测试报告nXXXX单元测试报告评审报告n缺陷问题单若干
12、2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-20单元测试计划p测试过程准则n定义了单元测试在什么条件下开始、结束、挂起以及恢复p满足什么条件可以开始单元测试即单元测试的入口准则p满足什么条件单元测试可以结束即单元测试的停止准则p出现哪些情况单元测试可以挂起即单元测试的受阻准则p满足了哪些条件便可以恢复被挂起的单元测试即单元测试的恢复准则2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-21单元测试计划p工作任务分解(WBS)n明确此次单元测试任务的分解情况及各个
13、单项之间的关系p测试进度n依据估计的单元测试工作量,基于任务分解情况和可用资源情况,制定每项任务开始和结束的时间点p测试资源n为了进行此次单元测试所需的人力资源包括角色及其职责、环境资源、工具等相关资源p测试结论约定n描述了为了达成共识,针对某些项而制定的统一标准,例如测试用例优先级、缺陷严重级别定义、缺陷优先级等2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-22p设计思想n综合运用多种测试用例设计方法,包括白盒和黑盒,从正向、反向对被测单元进行较为彻底的测试以说明单元功能达到预期设计的目的p首先需要设计一些测试用例说明单元基
14、本可用p接着需要从正向、反向并结合单元的特点对单元的设计功能进行彻底的测试p在这个结果的基础上,如果设计的测试用例没有达到单元测试的覆盖要求,还需要为此补充相关测试用例p最后,需要设计测试用例关注被测单元的数据持久性、通讯问题、多线程特性、内存使用情况、性能、表现层等方面是否达到设计要求单元测试用例设计2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-23p搭建单元测试环境搭建单元测试环境n执行单元测试的软硬件环境n待测单元n单元测试用例n因为单元是整个系统的一部分,它不能单独运行。为了执行单元测试用例需要开发如下的测试代码p驱动
15、:模拟调用函数的一段代码,它可以替代调用被测单元的模块p桩:模拟被测单元所调用函数的一段代码,它可以替代被被测单元调用的模块单元测试执行2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-24p方法方法n单元测试可以完全手工执行,也可以借助工具执行或者使用两者的结合p单元测试中的缺陷跟踪单元测试中的缺陷跟踪n缺陷一定要记录n一般采用简化流程执行单元测试2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-25p常用单元测试工具常用单元测试工具n静态测试工具p静态分析工具n动
16、态测试工具pJUnit Frameworkhttp:/ pIBM Rational PurecoveragepIBM Rational PurifypIBM Rational Quantify可以从IBM网站获得试用版本 http:/ 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-26Rational PurifypRational Purify可以检测1.NET 和 Java应用程序中方法和对象级别上的内存管理问题2.Visual C/C+应用程序的运行时错误和内存泄漏问题p运行运行Purifyn与Purecovery一样,有三种运行Purify的方法1.通
17、过Purify自带的用户界面2.在IDE如Microsoft Visual Studio 6, Visual Studio .NET and IBM WebSphere Studio中运行3.通过命令行2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-27检测 C/C+程序内存泄漏p方法方法n为了检测C/C+程序运行时错误,只需要通过Purify运行被测程序就会获得所需的信息n下面以Purify自带的示例“Hello.c”为例,演示如何利用Purify检测C程序中的内存泄漏等运行时问题2006级本科软件测试与质量保证 2008年9
18、月-2009年01月 SEI of ECNU 孙海英 版权所有 6-28检测 C/C+程序内存泄漏p第一步:指定被测程序: “purify installdirPurifyPlusPurifySampleshello.c”,点击Run2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-29检测 C/C+程序内存泄漏p第2步:等待Purify完成对被测程序的插桩动作,点击被测程序“确定” 按钮2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-30检测 C/C+程序内存泄漏
19、p第3步:被测程序运行结束后,Purify会在数据浏览窗口显示相应的信息这些有色图标显示被测程序存在运行错误内存泄漏信息2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-31检测 C/C+程序内存泄漏p第4步:检查可疑代码,修复缺陷2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-32检测 C/C+程序内存泄漏 作出的修改2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-33检测 C/C+程序内存泄漏p第
20、5步:重复步骤14,运行修改后代码”better.c”。Wow!这次没有出现运行时问题2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-34检测 Java程序内存泄漏p执行如下步骤分析内存使用情况执行如下步骤分析内存使用情况1.通过Purify运行Java 或 .NET 程序2.在被测程序初始化完成后,提取第一次内存快照3.运行怀疑可能存在内存泄漏的代码,完成后再提取第二次内存快照4.比较两次快照以识别可能引起内存泄漏的方法5.检查代码中不再使用对象的可疑方法或者包含引用不再使用对象的对象。p下面以Purify自带的样例 “Lea
21、kSample.java”为例演示如何检测Java内存泄漏2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-35检测 Java程序内存泄漏p第一步 运行Purify 2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-36检测 Java程序内存泄漏p第2步 指定被测程序 “purify installdirPurifyPlusPurifySamplesJavaLeakSampleLeakSample.class”,点击 Run,将显示一个小窗口2006级本科软件测试与质
22、量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-37检测 Java程序内存泄漏p第3步:待被测程序初始化完成后,点击工具条上的“Garbage Collect”按钮,提取第一次内存快照2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-38检测 Java程序内存泄漏p第4步:选择“Leak Continuously”,点击“Start”按钮。你会发现内存使用随程序的运行不断地增加,红点是JAVA程序自动产生的垃圾回收点2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI
23、of ECNU 孙海英 版权所有 6-39检测 Java程序内存泄漏p第5步:点击被测程序的“stop”按钮2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-40检测 Java程序内存泄漏p第6步:再次点击工具条上的“Garbage Collect” 按钮,提取第二次快照,对两次内存快照进行比较后发现,在两次快照间存在相当的内存差异,这表明你的程序中存在内存泄漏问题memory gap2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-41检测 Java程序内存泄漏p第
24、7步:点击待被测程序的“Exit” 按钮,Purify 的数据浏览窗口打开同时”LeakSample$Processor”方法高亮显示2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-42检测 Java程序内存泄漏p第8步:右键点击”LeakSample$Processor”,选择源文件2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-43检测 Java程序内存泄漏p第9步: 检查”LeakSample.java”源文件中可疑的方法修正缺陷可能是这里出了问题2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-44改成 for (i=0; icnt; i+)检测 Java程序内存泄漏2006级本科软件测试与质量保证 2008年9月-2009年01月 SEI of ECNU 孙海英 版权所有 6-45p第10步:采用与19相同的步骤运行修改后的”LeakSample.java” 。这次运行结果显示两次快照之间不存在内存差异了没有内存差异检测 Java程序内存泄漏2006级本科软件测试与质量保证 2008年9月-2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零售企业数字化供应链协同中的供应链可视化技术应用报告
- 2025年元宇宙社交平台虚拟社交平台社交焦虑缓解与用户体验研究
- 乡村振兴中的职业技能培训:乡村旅游人才培养报告
- 2025年医院信息化建设与医患沟通平台初步设计评估报告
- 2025年餐饮业食品安全监管信息化技术应用与餐饮企业食品安全风险预警体系建设报告
- 2025年医药企业研发外包(CRO)在临床试验数据隐私保护中的法律法规报告001
- 周篮嫂的课件
- 2025年CCS项目在能源领域应用的经济效益与投资决策支持研究报告
- 5G+AI融合的2025年科技互联网产业创新生态构建报告
- 环保产业园2025年循环经济发展模式中的绿色供应链管理与创新研究报告
- 声乐课说课课件
- 学生托管班管理制度
- 2024年山东夏季高中学业水平合格考生物试卷真题(含答案)
- 2025年经济学基础知识测试试题及答案
- 统编版小学语文小升初专题训练:根据课文内容填空(含答案)
- 2025年7月浙江省普通高中学业水平考试押题模拟暨选考意向导引卷历史学科试题(原卷版)
- 贵州省黔西南州、黔东南州、黔南州2025年八年级英语第二学期期末学业水平测试试题含答案
- 杭州市公安局滨江区分局招聘警务辅助人员笔试真题2024
- (2025)入党积极分子培训考试试题及答案
- 2025年天津市河西区中考二模语文试题
- 2025届高考化学复习:必背化学方程式-有机化学
评论
0/150
提交评论