《单元测试》PPT课件.ppt

上传人:wuy****n92 文档编号:80463683 上传时间:2023-03-23 格式:PPT 页数:37 大小:261.99KB
返回 下载 相关 举报
《单元测试》PPT课件.ppt_第1页
第1页 / 共37页
《单元测试》PPT课件.ppt_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《《单元测试》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单元测试》PPT课件.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件测试方法和技术软件测试方法和技术-Ch.5单元测试单元测试Kerry Zhu第四章回顾 软件质量标准软件质量标准 软件测试规范软件测试规范 CMM思想和结构体系思想和结构体系 建立软件测试管理和评判体系建立软件测试管理和评判体系第五章 单元测试5.1 什么是单元测试5.2 单元测试的目标和任务5.3 静态测试技术的运用5.4 动态测试技术的运用5.5 调试与评估5.6 单元测试的过程与文档管理5.7 单元测试的常用工具简介5.1 什么是单元测试什么是单元测试测试的测试的4个阶段:个阶段:单元测试单元测试集成测试集成测试 系统测试系统测试验收测试验收测试按阶段进行测试是一种基本的测试策略按阶

2、段进行测试是一种基本的测试策略单元测试的定义单元测试的定义定义定义:单元测试是对软件基本组成单元进行的测试。单元测试是对软件基本组成单元进行的测试。时机时机:一般在代码完成后由开发人员完成一般在代码完成后由开发人员完成,QA,QA人员辅助人员辅助.概念概念:模块模块,组件组件,单元单元 为何要进行单元测试为何要进行单元测试?n尽早发现错误尽早发现错误错误发现越早,成本越低.开发人员过于自信,后期复杂度高,发现解决BUG困难.n检查代码是否符合设计和规范检查代码是否符合设计和规范 12小时6小时3小时单元测试集成测试系统测试单元测试的背景单元测试的背景n开发流程时间表与修改Bug代价的关系图开发

3、结束开发结束开发结束开发结束开发早期开发早期开发早期开发早期修修修修改改改改代代代代价价价价单元测试的背景单元测试的背景(续)(续)n编程过程中,每写100行代码会犯150个错误n编程与编译运行结束后,每100行代码中大约残留有1-3个Bugn寻找与修改程序错误的代价占总体开发投资的40%-80%nBug在整个研发流程中被发现的越早,修改的代价就越低5.2 单元测试的目标和任务单元测试的目标和任务目标目标:单元模块被正确编码单元模块被正确编码n信息能否正确地流入和流出单元;信息能否正确地流入和流出单元;n在单元工作过程中,其内部数据能否保持其完整性,在单元工作过程中,其内部数据能否保持其完整性

4、,包括内部数据的形式、内容及相互关系不发生错误,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。也包括全局变量在单元中的处理和影响。n在为限制数据加工而设置的边界处,能否正确工作。在为限制数据加工而设置的边界处,能否正确工作。n单元的运行能否做到满足特定的逻辑覆盖。单元的运行能否做到满足特定的逻辑覆盖。n单元中发生了错误,其中的出错处理措施是否有效。单元中发生了错误,其中的出错处理措施是否有效。任务任务1:模块接口测试模块接口测试检查模块接口是否正确,检查模块接口是否正确,checklist:n 输入的实际参数与形式参数是否一致。输入的实际参数与形式参数是否一

5、致。个数、属性、量纲个数、属性、量纲n 调用其他模块的实际参数与被调模块的形参是否一致。调用其他模块的实际参数与被调模块的形参是否一致。个数、属性、量纲个数、属性、量纲n 全程变量的定义在各模块是否一致。全程变量的定义在各模块是否一致。n 外部输入、输出外部输入、输出文件、缓冲区、错误处理文件、缓冲区、错误处理n 其它其它任务任务2:模块局部数据结构测试模块局部数据结构测试检查局部数据结构完整性检查局部数据结构完整性Checklist:n 不适合或不相容的类型说明。不适合或不相容的类型说明。n 变量无初值。变量无初值。n 变量初始化或默认值有错。变量初始化或默认值有错。n 不正确的变量名或从来

6、未被使用过。不正确的变量名或从来未被使用过。n 出现上溢或下溢和地址异常。出现上溢或下溢和地址异常。n 其它其它任务任务3:模块边界条件测试模块边界条件测试检查临界数据处理的正确性检查临界数据处理的正确性Checklist:n 普通合法数据的处理。普通合法数据的处理。n 普通非法数据的处理。普通非法数据的处理。n 边界值内合法边界数据的处理。边界值内合法边界数据的处理。n 边界值外非法边界数据的处理。边界值外非法边界数据的处理。n 其它其它任务任务4:模块独立执行通路测试模块独立执行通路测试检查每一条独立执行路径的测试。保证每条语句检查每一条独立执行路径的测试。保证每条语句被至少执行一次。被至

7、少执行一次。Checklist:n 算符优先级。算符优先级。n 混合类型运算。混合类型运算。n 精度不够。精度不够。n 表达式符号。表达式符号。n 循环条件,死循环。循环条件,死循环。n 其它其它任务任务5:模块的各条错误处理通路测试:模块的各条错误处理通路测试预见、预设的各种出错处理是否正确有效。预见、预设的各种出错处理是否正确有效。Checklist:n 输出的出错信息难以理解。输出的出错信息难以理解。n 记录的错误与实际不相符。记录的错误与实际不相符。n 程序定义的出错处理前系统已介入。程序定义的出错处理前系统已介入。n 异常处理不当。异常处理不当。n 未提供足够的定位出错的信息。未提供

8、足够的定位出错的信息。n 其它其它Microsoft对单元测试的理解对单元测试的理解单元测试具体分类单元测试具体分类n验证产品实现符合功能规格书n验证产品代码运行的正确性n边缘条件测试n产品安全性测试n从已有Bug增加的回归测试n产品代码覆盖度测试(Code Coverage)n产品代码注射测试(Code Injection)n异常测试单元测试具体分类单元测试具体分类n产品速度性能的比较测试n产品极限情况测试n产品与国际标准的兼容性测试n产品与以前版本的操作系统,文件格式的兼容测试n同一产品不同版本共同运行的兼容性测试n产品在不同语言操作系统下的运行测试单元测试具体流程单元测试具体流程n测试过

9、程从产品设计开始nSpec Review 非常重要n微软产品Spec Review演示nSharepoint Server的应用n测试代码编写由软件开发设计者(SDE)自己开始nDRT(Developer Regression Test)的重要性n没有相随的DRT,Feature Area不算开发完nDRT不全部编译并100%通过,不允许Check-inn测试组的测试不100%编译并100%通过0级测试(BVT),70%通过1级测试,不允许Check-in单元测试具体流程单元测试具体流程(续续)n测试代码主体由软件测试工程师(SDET,STE)编写n测试从写软件测试规格书(Test Spec)

10、开始nTest Spec必须通过PM,Dev与同组Tester共同开会研究通过n测试代码根据不同测试的情景分为0-4级的优先级n0级测试称为BVT(Build Verification Test)n在Dev主要的功能实现Check-in前,0-1级测试代码必须已由测试工程师完成n在Dev进行Check-in时,0级测试必须100%通过单元测试具体流程单元测试具体流程(续续)n在Dev进行Check-in时,1级测试必须至少有70%通过nDev进行产品代码的Check-innTest进行测试代码的Check-inn产品编译由Build团队每日进行nTest编译由测试团队在产品编译完成后进行n测试

11、编译完成后,由测试自动化系统进行测试n在随后的代码优化与稳定期内,测试工程师编写2-4级测试代码,并报告产品Bug,Dev负责修改Bug,稳定并优化产品5.3 静态测试技术的运用静态测试技术的运用静态测试技术:静态测试技术:不运行被测试程序,对代码通过不运行被测试程序,对代码通过检查、阅读进行分析。检查、阅读进行分析。三步曲:三步曲:n 走查走查(Walk Through)。)。n 审查审查(Inspection)。)。n 评审评审(Review)编码的标准和规范编码的标准和规范标准:建立起来必须遵守的规则。标准:建立起来必须遵守的规则。规范:建议最佳做法,推荐更好方式。规范:建议最佳做法,推

12、荐更好方式。实施标准和规范的原因:实施标准和规范的原因:n 可靠性。可靠性。n 可读性和可维护性。可读性和可维护性。n 可移植性。可移植性。走查走查(Walk Through)定义:采用讲解、讨论和模拟运行的方式进行的定义:采用讲解、讨论和模拟运行的方式进行的查找错误的活动。查找错误的活动。注意:注意:n 引导小组成员在走查前通读设计和编码。引导小组成员在走查前通读设计和编码。n 限时,避免跑题。限时,避免跑题。n 发现问题适当记录,避免现场修改。发现问题适当记录,避免现场修改。n 检查要点是代码是否符合标准和规范,是否有逻辑错误。检查要点是代码是否符合标准和规范,是否有逻辑错误。审查审查(I

13、nspection)定义:采用讲解、提问方式进行,一般有正式的定义:采用讲解、提问方式进行,一般有正式的计划、流程和结果。主要方法采用缺陷检查表。计划、流程和结果。主要方法采用缺陷检查表。注意:注意:n 以会议形式,制定会议目标、流程和规则,结束后要编以会议形式,制定会议目标、流程和规则,结束后要编写报告。写报告。n 按缺陷检查表逐项检查。按缺陷检查表逐项检查。n 发现问题适当记录,避免现场修改。发现问题适当记录,避免现场修改。n 发现重大缺陷,改正后会议需要重开。发现重大缺陷,改正后会议需要重开。n 检查要点是缺陷检查表,所以该表要根据项目不同不断检查要点是缺陷检查表,所以该表要根据项目不同

14、不断积累完善。积累完善。走查与审查的比较走查与审查的比较评审评审(Review)定义:通常在审查会后进行,审查小组根据记录定义:通常在审查会后进行,审查小组根据记录和报告进行评估。和报告进行评估。注意:注意:n 充分审查了所规定的代码,并且全部编码准则被遵守。充分审查了所规定的代码,并且全部编码准则被遵守。n 审查中发现的错误已全部修改。审查中发现的错误已全部修改。5.4 动态测试技术的运用动态测试技术的运用动态测试需要真正将程序运行起来,需要设计系动态测试需要真正将程序运行起来,需要设计系列的测试用例保证测试的完整性和有效性。列的测试用例保证测试的完整性和有效性。n 白盒测试白盒测试n 黑盒

15、(灰盒)测试黑盒(灰盒)测试白盒测试方法白盒测试方法主要要逻辑驱动法和基本路径法。主要要逻辑驱动法和基本路径法。p 语句覆盖。语句覆盖。p 判定覆盖。判定覆盖。p 条件覆盖。条件覆盖。p 判定判定/条件覆盖。条件覆盖。p 条件组合覆盖。条件组合覆盖。p 路径覆盖。路径覆盖。p 循环覆盖。循环覆盖。详细内容详细内容 第第14章章 软件测试用例的设计软件测试用例的设计黑盒测试方法黑盒测试方法运行单元程序有时需要基于被测单元的接口,开运行单元程序有时需要基于被测单元的接口,开发相应的驱动模块和桩模块。发相应的驱动模块和桩模块。n 驱动模块(驱动模块(drive):对底层对底层或子层模块进行测试所编写

16、的或子层模块进行测试所编写的调用这些模块的程序。调用这些模块的程序。n 桩模块(桩模块(stub):对顶层或):对顶层或上层模块进行测试时所编写的上层模块进行测试时所编写的替代下层模块的程序。替代下层模块的程序。黑盒常用方法黑盒常用方法n 等价类划分法等价类划分法 n 边界值分析法边界值分析法 三种数据:三种数据:n 错误推测法错误推测法 -正常数据正常数据n 因果图法因果图法 -错误数据错误数据n 功能图法功能图法 -边缘数据边缘数据另外还得考虑接口测试、性能测试、内存测试另外还得考虑接口测试、性能测试、内存测试n 性能分析性能分析n 内存分析内存分析5.6 调试与评估调试与评估调试与测试的

17、对象及采用的方法有很大程度上的相似,调调试与测试的对象及采用的方法有很大程度上的相似,调试还用到断点控制等排错方法,但其目的却完全不同。测试还用到断点控制等排错方法,但其目的却完全不同。测试是为了找出软件中存在的缺陷,而调试是为了解决存在试是为了找出软件中存在的缺陷,而调试是为了解决存在的缺陷。的缺陷。n 软件单元功能与设计需求一致。软件单元功能与设计需求一致。n 软件单元接口与设计需求一致。软件单元接口与设计需求一致。n 能够正确处理输入和运行中的错误。能够正确处理输入和运行中的错误。n 在单元测试中发现的错误已经得到修改并且通过了测试。在单元测试中发现的错误已经得到修改并且通过了测试。n

18、达到了相关的覆盖率的要求。达到了相关的覆盖率的要求。n 完成软件单元测试报告完成软件单元测试报告 单元测试检查表单元测试检查表(1)借助单元测试检查表进行评估。借助单元测试检查表进行评估。案例:案例:单元测试检查表单元测试检查表单元名称单元名称_ 系统系统 _ 构造构造_任务编号任务编号_ 初次测试日期初次测试日期_关键测试项是否已纠正关键测试项是否已纠正有无任何输入参数没有使用?有无任何输出参数没有产生?有无任何数据类型不正确或不一致?有无任何算法与PDL或功能需求中的描述不一致?有无任何局部变量使用前没有初始化?有无任何外部接口编码错误?即调用语句、文件存取、数据库错误。有无任何逻辑路径错

19、误?该单元是否有多个入口或多个正常的出口?单元测试检查表单元测试检查表(2)额外测试项额外测试项8.该单元中有任何地方与PDL与PROLOG中的描述不一致?9.代码中有无任何偏离本项目标准的地方?10.代码中有无任何对于用户来说不清楚的错误提示信息?11.如果该单元是设计为可重用的,代码中是有可能妨碍重用的地方?采取的动作和说明采取的动作和说明(请用单独的一页或多页。每一项动作必须指出所引用的问题。)审查结果审查结果1.如果上述11个问题的答案均为否,那么测试通过,请在此标记并且在最后签名。2.如果代码存在严重的问题,例如多个关键问题的答案为是,那么程序编制者纠正这些错误,并且必须重新安排一次

20、单元测试。下一次单元测试的日期:_3.如果代码存在小的缺陷,那么程序编制者纠正这些错误,并且仲裁者必须安排一次跟踪会议。跟踪会议的日期:跟踪会议的日期:_测试人签名:测试人签名:_ 日期:日期:_ 5.6 单元测试的过程和文档管理单元测试的过程和文档管理过程过程:1.在详细设计阶段完成单元在详细设计阶段完成单元测试计划。测试计划。2.建立单元测试环境,完成建立单元测试环境,完成测试设计和开发。测试设计和开发。3.执行单元测试用例,并且执行单元测试用例,并且详细记录测试结果。详细记录测试结果。4.判定测试用例是否通过。判定测试用例是否通过。5.提交提交单元测试报告单元测试报告。单元测试的文档单元

21、测试的文档1.软件需求规格说明书软件需求规格说明书、软件详细设计说明书软件详细设计说明书 1.单元测试计划单元测试计划 2.单元测试计划单元测试计划、软件详细设计说明书软件详细设计说明书 1.单元测试用例单元测试用例 3.单元测试用例单元测试用例文档及文档及软件需求规格说明书软件需求规格说明书、软件详细软件详细设计说明书设计说明书 缺陷跟踪报告缺陷跟踪报告/缺陷检查表缺陷检查表 4.单元测试用例单元测试用例、缺陷跟踪报告缺陷跟踪报告、缺陷检查表缺陷检查表 1.单元测试检查表单元测试检查表 5.评估评估单元测试报告单元测试报告 5.7 单元测试常用工具简介单元测试常用工具简介工具分类工具分类:n 静态分析工具静态分析工具n 代码规范审核工具代码规范审核工具n 内存和资源检查工具内存和资源检查工具n 测试数据生成工具测试数据生成工具n 测试框架工具测试框架工具n 测试结果比较工具测试结果比较工具n 测试度量工具测试度量工具n 测试文档生成和管理工具测试文档生成和管理工具Q&A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁