第3章 静态测试_第1页
第3章 静态测试_第2页
第3章 静态测试_第3页
第3章 静态测试_第4页
第3章 静态测试_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1现代软件测试技术八月262第3章静态测试八月26目录3静态测试概述评审评审类型静态分析

静态测试实践3.1静态测试概述4定义不动态执行程序,通过分析程序文档、代码等静态形式发现缺陷的测试方法。

特点无需设计测试用例和判读结果可人工实施,充分发挥人的逻辑思维优势利用思维互补,高效发现逻辑错误实施条件简单,易于开展3.2评审5评审的作用提高质量:尽早发现并修复缺陷,减少缺陷传递降低成本:缺陷发现越早,修复成本越低加快进度:减少后期缺陷定位和修复的时间消耗提升能力:促进知识共享,积累项目经验3.2评审(续1)6评审的基本原则聚焦产品,对事不对人注重评审效率未通过阶段评审不得进入下一研制阶段以发现问题、缺陷和隐患为目标评审组人员覆盖面宜广避免无休止争论,记录争议点留待后续甄别仅提出问题,不承担解决问题的责任使用评审检查单提升效果3.2评审(续2)7评审的基本过程组建评审组评审计划制定评审准备(资料分发、人员熟悉)召开评审会提交评审报告建立评审过程记录跟踪问题解决,必要时组织再评审3.2评审(续3)8角色和职责角色核心职责主审员协调审查、主持讨论、调解争端、确保评审高效有序责任人准备被审查产品、提供相关信息、解决评审发现的问题讲解员熟悉被审产品、解释信息逻辑块、配合主审员工作审查员熟悉产品和标准、鉴别问题、保持客观性记录员记录评审问题及说明、提供补充信息产品经理确定审查内容、分配资源、保障培训、选定主审员3.3评审类型9需求评审概要设计评审详细设计评审数据库评审测试评审3.3.1需求评审10常见问题需求报告冗长,难以快速理解前期准备不足,评审效率低评审节奏无法控制缺乏合格评审员,难以提出深入问题需求评审(续1)11实施建议分层次评审(目标性、功能性、操作性需求)正式评审与非正式评审结合分阶段评审,避免大规模集中评审精心挑选多元背景评审员开展评审员专项培训利用需求评审检查单建立标准评审流程做好评审后问题跟踪充分准备评审资料并提前分发需求评审(续2)12评审细则引用文档定义清晰功能、性能、接口描述完整准确非功能性需求(安全、可靠、易用等)明确需求可测试、可度量、可验证具备需求追踪表文档规范、一致、无歧义3.3.2概要设计评审13评审重点与需求说明书的一致性系统模块划分合理性接口定义明确性文档规范性评审细则体系结构优化合理,基于实体部件设计功能性能完全分配至具体部件部件接口定义清晰合理扇入扇出数控制在7以下具备需求追踪表多视图(逻辑、进程、实现、部署)描述完备3.3.3详细设计评审14评审重点与概要设计说明书的一致性模块内部逻辑合理性接口清晰度数据库设计完整性测试方案合理性评审细则软件部件分解为可实现的软件单元单元入口、出口设计清晰完整单元间关系明确文档规范、正确、一致3.3.4数据库评审15评审重点概念、逻辑、物理结构设计合理性数据字典完整性安全保密设计有效性评审细则数据逻辑结构满足完备性和一致性数据冗余度合理后备与恢复设计有效存取控制满足安全和实时性要求存储分配、压缩、分块合理3.3.5测试评审16测试需求规格说明的评审细则测试依据完整有效被测对象全部标识测试类型分类适当测试充分性和终止条件明确覆盖所有功能、性能和接口文档规范一致测试评审(续1)17测试计划的评审细则组织与职责分配合理测试人员具备独立性和相应资质测试环境要求明确进度安排可行测试项可追踪至对应文档测试说明的评审细则覆盖所有被测对象测试方法可行、用例充分进度和过程准备合理用例与计划可追踪测试评审(续2)18测试报告的评审细则测试过程和用例执行情况描述完整未执行用例说明原因结论客观公正文档规范一致测试记录的评审细则有测试人员签名执行结果描述充分明确文档规范一致3.4静态分析19控制流分析数据流分析程序插桩变异测试编码标准一致性检查3.4.1控制流分析20核心概念控制流图:描述程序执行路径的有向图路径定义:有序边的集合(完整路径、简单路径、基本路径等)可达性:节点间是否存在可行路径控制流分析(续)21控制流覆盖准则准则类型核心要求覆盖率公式语句覆盖覆盖所有节点(每条语句至少执行一次)覆盖节点数/总节点数×100%分支覆盖覆盖所有有向边(每个分支真假值各一次)覆盖边数/总边数×100%原子谓词覆盖每个原子谓词真假值各一次运行的原子谓词状态数/总原子谓词状态数×100%分支-谓词覆盖原子谓词和复合谓词均取真假值运行的分支-谓词状态数/总分支-谓词状态数×100%复合谓词覆盖谓词所有可行真假组合均出现运行的复合谓词组合数/总复合谓词组合数×100%路径覆盖覆盖所有完整路径覆盖路径数/总路径数×100%3.4.2数据流分析22核心概念测试过程和用例执行情况描述完整定义性出现:变量绑定数据的位置引用性出现:变量数据被使用的位置(计算性、谓词性引用)数据流图:包含变量定义与引用信息的控制流图数据流覆盖准则定义覆盖:每个变量的定义能传递到至少一个引用引用覆盖:每个变量的定义能传递到所有可行引用定义-引用覆盖:覆盖所有无回路或简单回路的定义-引用路径3.4.3程序插桩23定义向被测程序插入探针(如计数语句、打印语句),获取执行信息的测试方法测试记录的评审细则覆盖率统计插桩:记录语句、分支等执行次数断言检测插桩:插入判断变量特性的语句(如分母非零断言)错误定位插桩:通过二分法等插入打印语句定位错误关键问题探测信息:根据测试目标确定(如覆盖率、执行结果)探测位置:按需设置(如分支后、关键计算节点)探测点数量:在满足需求的前提下最小化3.4.4变异测试24定义是一种错误驱动测试,通过生成变异因子(含特定错误的程序变体)验证原程序正确性强变异测试核心思想:假设原程序存在小错误,生成变异因子,通过测试数据区分原程序与变异因子的输出变异算子:语法结构转换规则(如运算符替换、变量替换)优缺点:测试效果好,但资源消耗大变异测试(续)25弱变异测试核心思想:聚焦程序基本组成成分,验证成分内部错误能否在局部发现与强变异的区别:不实际生成变异因子,仅验证测试数据能否区分成分变异前后的输出优缺点:开销小、效率高,但故障覆盖范围有限3.4.5编码标准一致性检查26代码检查检查代码与设计的一致性、结构合理性、编码标准符合性等的静态方法代码检查的目的确保代码遵循编码标准发现程序缺陷和错误验证代码与流程图的一致性提升代码可读性和可维护性编码标准一致性检查(续1)27代码检查方式方式特点实施步骤桌面检查程序员自查,节省时间个人分析代码、补充文档、发现错误代码走查小组逻辑运行程序分发材料→提出问题→开会探讨解决方案代码审查小组阅读讨论分析分发材料→程序员讲解→成员提问→发现问题编码标准一致性检查(续2)28代码检查项目目录文件组织:分组清晰、模块独立函数:功能描述清晰、参数合理、算法有说明数据类型及变量:命名规范、取值正确、无未使用变量条件判断语句:逻辑清晰、使用正确、常见情况优先循环体制:非空、终止条件明确、命名有意义代码注释:准确完整、无无用注释其他:兼容性、变量交叉引用、标号正确性等3.5静态测试实践29指导原则实践案例3.5.1指导原则30提高评审有效性技术因素不将评审数据用于个人绩效评估提供评审技能培训优先评审重要工作产品确保评审员技术和背景平衡遵循评审流程,注重内容而非形式组织因素管理层支持评审活动提供缺陷修改时间认可评审改进成果营造无责备氛围指导原则(续)31提高评审有效性(续)人员因素鼓励深层次思考作者自愿参与评审聚焦关键缺陷发现程序的错误:未定义变量、不匹配参数、死循环等寻找潜伏问题的原因:未使用变量、冗余代码、可疑计算等提供程序的信息:语句次数、变量交叉引用表等选择测试用例:明确输入输出和前提条件为查错做准备:提前识别潜在问题3.5.2实践案例32原始程序问题必须修改:无注释、子函数无返回值类型、精度丢失建议修改:main函数无返回值类型和参数列表、变量定义不规范、缺乏空行max(floatx,floaty){returnz=x>y?x:y;}main(){floata,b;intc;scanf(“%f,%f”,&a,&b);c=max(a,b);printf(“MAXIS%f\n”,c);}修改后的代码33/*

程序名称:求两个实数中的最大值

作者:×××

版本:1.0

创建时间:×年×月×日*/

floatmax(floatx,floaty){//返回两个单精度数中的大数returnz=x>y?x:y;}voidmain(){floata,b;intc;

温馨提示

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

评论

0/150

提交评论