版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元测试过程第1页,共34页,2023年,2月20日,星期三2本章大纲讨论与单元测试相关的内容,包括什么是单元测试单元测试活动设计单元测试用例单元测试工具介绍JUnitIBMRationalPurifyandPurecoverage第2页,共34页,2023年,2月20日,星期三3定义软件单元是在组件设计时定义的可以独立测试的个体单元可能是:一个过程(函数)一个菜单一个类一个网页或者一组过程、一组菜单,一组类,一组网页单元的最重要属性是不管它是一个或者一组过程、菜单、类还是网页,它可以与其他的部分独立开来单元测试是针对单个或一组单元执行的测试什么是单元测试第3页,共34页,2023年,2月20日,星期三4单元测试过程单元测试过程第4页,共34页,2023年,2月20日,星期三5根据IEEEStd.1008–1987forSoftwareUnitTesting,主要的单元测试活动包括制定总体计划,包括方法,资源和进度确定待测特性精化总体测试计划设计测试用例实现精化的计划和设计执行测试过程检查测试是否可以终止评估测试效率和被测单元质量单元测试活动第5页,共34页,2023年,2月20日,星期三6计划单元测试采用基于第六章提供的测试计划模版定义自己的单元测试计划设计单元测试用例单元测试是根据软件单元的逻辑和结构进行的,通常由单元的开发人员执行为了设计单元测试用例,应该:基于软件设计,确定测试单元单元测试用于测试单元的如下部分接口局部数据结构逻辑结构:基本路径,分支和循环单元测试活动第6页,共34页,2023年,2月20日,星期三7单元测试用于测试单元的如下部分错误处理运行时特征,如内存分配、动态绑定、运行时类型信息等。这些通常被单元测试人员忽略运用测试用例设计方法设计单元测试用例。在单元测试中,使用最多的测试技术是白盒测试。当然可以使用其它技术,重要的一点是所选取的测试技术适合于相应的测试需求可以通过结构化自然语言描述测试用例,也可以用编程语言实现测试用例。设计单元测试用例第7页,共34页,2023年,2月20日,星期三8单元测试环境执行单元测试的软硬件环境待测单元单元测试用例因为单元是整个系统的一部分,它不能单独运行。为了执行单元测试用例需要开发如下的测试代码驱动:模拟调用函数的一段代码,它可以替代调用被测单元的模块桩:模拟被测单元所调用函数的一段代码,它可以替代被被测单元调用的模块搭建单元测试环境第8页,共34页,2023年,2月20日,星期三9方法单元测试可以完全手工执行,也可以借助工具执行或者使用两者的结合单元测试中的缺陷跟踪缺陷一定要记录一般采用简化流程执行单元测试第9页,共34页,2023年,2月20日,星期三10常用单元测试工具静态测试工具静态分析工具动态测试工具JUnitFramework/projects/Junit/IBMRationalPurecoverageIBMRationalPurifyIBMRationalQuantify可以从IBM网站获得试用版本
/software/sw-atoz/indexR.html执行单元测试第10页,共34页,2023年,2月20日,星期三11RationalPurifyRationalPurify可以检测.NET和Java应用程序中方法和对象级别上的内存管理问题VisualC/C++应用程序的运行时错误和内存泄漏问题运行Purify与Purecovery一样,有三种运行Purify的方法通过Purify自带的用户界面在IDE如MicrosoftVisualStudio6,VisualStudio.NETandIBMWebSphereStudio中运行通过命令行第11页,共34页,2023年,2月20日,星期三12检测C/C++程序内存泄漏方法为了检测C/C++程序运行时错误,只需要通过Purify运行被测程序就会获得所需的信息下面以Purify自带的示例“Hello.c”为例,演示如何利用Purify检测C程序中的内存泄漏等运行时问题第12页,共34页,2023年,2月20日,星期三13检测C/C++程序内存泄漏第一步:指定被测程序:“purifyinstalldir\PurifyPlus\PurifySamples\hello.c”,点击Run第13页,共34页,2023年,2月20日,星期三14检测C/C++程序内存泄漏第2步:等待Purify完成对被测程序的插桩动作,点击被测程序“确定”按钮第14页,共34页,2023年,2月20日,星期三15检测C/C++程序内存泄漏第3步:被测程序运行结束后,Purify会在数据浏览窗口显示相应的信息这些有色图标显示被测程序存在运行错误内存泄漏信息第15页,共34页,2023年,2月20日,星期三16检测C/C++程序内存泄漏第4步:检查可疑代码,修复缺陷第16页,共34页,2023年,2月20日,星期三17检测C/C++程序内存泄漏作出的修改第17页,共34页,2023年,2月20日,星期三18检测C/C++程序内存泄漏第5步:重复步骤1~4,运行修改后代码”better.c”。Wow~~~!这次没有出现运行时问题第18页,共34页,2023年,2月20日,星期三19检测Java程序内存泄漏执行如下步骤分析内存使用情况通过Purify运行Java或.NET程序在被测程序初始化完成后,提取第一次内存快照运行怀疑可能存在内存泄漏的代码,完成后再提取第二次内存快照比较两次快照以识别可能引起内存泄漏的方法检查代码中不再使用对象的可疑方法或者包含引用不再使用对象的对象。下面以Purify自带的样例“LeakSample.java”为例演示如何检测Java内存泄漏第19页,共34页,2023年,2月20日,星期三20检测Java程序内存泄漏第一步运行Purify第20页,共34页,2023年,2月20日,星期三21检测Java程序内存泄漏第2步指定被测程序“purifyinstalldir\PurifyPlus\PurifySamples\Java\LeakSample\LeakSample.class”,点击Run,将显示一个小窗口第21页,共34页,2023年,2月20日,星期三22检测Java程序内存泄漏第3步:待被测程序初始化完成后,点击工具条上的“GarbageCollect”按钮,提取第一次内存快照第22页,共34页,2023年,2月20日,星期三23检测Java程序内存泄漏第4步:选择“LeakContinuously”,点击“Start”按钮。你会发现内存使用随程序的运行不断地增加,红点是JAVA程序自动产生的垃圾回收点第23页,共34页,2023年,2月20日,星期三24检测Java程序内存泄漏第5步:点击被测程序的“stop”按钮第24页,共34页,2023年,2月20日,星期三25检测Java程序内存泄漏第6步:再次点击工具条上的“GarbageCollect”按钮,提取第二次快照,对两次内存快照进行比较后发现,在两次快照间存在相当的内存差异,这表明你的程序中存在内存泄漏问题memorygap第25页,共34页,2023年,2月20日,星期三26检测Java程序内存泄漏第7步:点击待被测程序的“Exit”按钮,Purify的数据浏览窗口打开同时”LeakSample$Processor”方法高亮显示第26页,共34页,2023年,2月20日,星期三27检测Java程序内存泄漏第8步:右键点击”LeakSample$Processor”,选择源文件第27页,共34页,2023年,2月20日,星期三28检测Java程序内存泄漏第9步:检查”LeakSample.java”源文件中可疑的方法修正缺陷可能是这里出了问题第28页,共34页,2023年,2月20日,星期三29改成for(i=0;
i<cnt;i++)检测Java程序内存泄漏第29页,共34页,2023年,2月20日,星期三30第10步:采用与1~9相同的步骤运行修改后的”LeakSample.java”。这次运行结果显示两次快照之间不存在内存差异了没有内存差异检测Java程序内存泄漏第30页,共34页,2023年,2月20日,星期三31其他单元测试工具静态分析工具PC-LintforC/C++LogiscopeXXUnit系列工具(都可从/下载)CUnittestingFrameworkNUnitforC#DUnitforDelphiXMLUnitJsUnitforclient-sideJavaScriptSimpleTestforPHP….第31页,共34页,2023年,2月20日,星期三32模版基于第10章介绍的模版编写单元测试报告主要内容单元测试报告总结了整个单元测试过程并可提供有利于过程改进的信息,如:计划的测试用例数修改的测试用例数删除的测试用例数实际执行的测试用例数未测用例数量和未测原因发现的严重缺陷数量挂起缺陷数量评估测试单元改进建议单元测试报告第32页,共34页,2023年,2月20日,星期三33下面的建议可能很有帮助单元测试前执行代码检视由开发被测单元的程序员执行单元测试完成代码后修改单元测试用例记得测试运行时问题测试程序越简单越好开发测试程序编程规范在单元测试时使用裁减的缺陷
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内贸运输合同
- 2026年大学生职业资格证书备考指南报告药学专业
- 2026年医学检验专业学生血站就业前景分析
- 2026年食堂节日特色食品供应方案:端午粽子、中秋月饼
- 2026年全域旅游规划环境影响评价与可持续发展策略
- 2026年商会财务工作外部评价报告
- 内分泌科甲状腺功能减退患者治疗指南
- 儿科小儿支气管肺炎护理培训手册
- 神经炎的康复训练指南
- 换血疗法介绍图解
- 民航客舱服务规范与操作指南(标准版)
- 2024-2025学年度渤海船舶职业学院单招数学通关题库附完整答案详解(各地真题)
- 2026消防安全标志设置要求标准全面解读
- 2025年10月浙江德清农村商业银行招考专业人才笔试历年备考题库附带答案详解试卷2套
- 广西中烟工业有限责任公司2026年招聘51人备考题库及答案详解1套
- 2026年上海市高职单招职业适应性测试考试题库附答案解析
- 招商公司运营薪酬制度
- GB/T 36073-2025数据管理能力成熟度评估模型
- 专项安全施工防机械伤害方案
- 2025年五类人员进乡镇班子结构化笔试及答案
- 银行随机立减协议书
评论
0/150
提交评论