嵌入式软件测试-课件2研讨.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式软件测试-课件2研讨

嵌入式软件测试 第一部分 软件测试用例设计 软件测试技术—提要 软件测试方法及技术 静态测试方法 动态测试方法 测试用例设计方法 技术—动态与静态测试 S S S S S S S S S S S S S S D D D D D D D D D D S S D D D D D D D D D D D D D D D D D D D S S S S S 许多动态测试通常会遗留下来的缺陷 可以通过早期的静态测试发现 动态测试时发现的缺陷 静态测试时发现的缺陷 技术—静态测试特征 静态测试是不动态执行程序代码而寻找程序代码中可能存在的缺陷或评估程序代码的过程 可以由人工进行,充分发挥人的逻辑思维优势 可以借助软件工具自动进行 技术—常用静态测试方法 代码审查 代码走查 静态分析 技术—代码审查 测试内容 检查代码和设计的一致性;检查代码执行标准的情况;检查代码逻辑表达的正确性;检查代码结构的合理性;检查代码的可读性 方法 代码审查单 技术—代码走查 代码走查过程 准备阶段 生成实例 会议走查 形成报告 技术—静态分析 内容 控制流分析 数据流分析 接口分析 表达式分析 质量度量 技术—自动静态测试过程 根据语言和环境要求选择代码检查工具 定义代码检查规则 实施自动化代码检查 对自动代码检查结果进行分析 编制问题报告并审查 利用静态分析工具实施代码静态分析 根据拟定原则,进行人工补充检查 编制问题报告并审查 对发现的问题实施闭环控制 技术—动态测试特征 实际运行被测试程序,取得程序运行的真实情况和动态情况,进行分析; 测试的质量依赖于使用的测试数据; 生成测试数据和分析测试结果需要时间与经费投入; 动态测试涉及人员、设备和数据等多个方面,要求有较好的管理和工作规程。 技术—好的测试用例 具有合理的捕获缺陷的概率 执行了重要的区域 做了应引起注意的事情 不做多余的事情 既不太简单也不太复杂 不与其它测试用例冗余 使得缺陷显而易见 考虑缺陷的隔离和识别 技术—测试设计方法分类 方法 策略 白盒方法 黑盒方法 技术—白盒测试特征 已知产品内部工作流程,通过测试来检测产品的内部动作是否按照详细设计规格说明的规定正常进行,而不管它的功能; 目标是对所有逻辑路径进行测试,穷举路径; 依据详细设计规范; 白盒测试(White-Box Testing)也称为结构测试或逻辑驱动测试。 技术—白盒测试图示 结果输出 内部行为 预期输出 软件设计 选择输入 技术—逻辑路径的数量 程序的执行序列(逻辑路径)的数目是庞大的,简单的重复就有可能使执行序列的数目增大到天文数字。 例子: For (int i =0;in;++i) {if (a.get(i)==b.get(i)) x[i]=x[i]+100; else x[i]=x[i]/2; } 解: 可能的执行序列/路径数是2n+1 当n=20时,执行序列/路径数是1,048,577 技术—基本覆盖 基于控制流的覆盖 语句覆盖 分支覆盖 条件覆盖 条件分支覆盖 修正条件分支覆盖(MC/DC) 条件组合覆盖 基本路径覆盖 循环覆盖 数据流覆盖 变元覆盖(mutation coverage) 技术—控制流图 一个段是一个或多个无条件连续执行的语句。 一个段在控制流图中用一个结点表示,结点可以用任何方便的形式命名。 一个控制条件转移是一个分支,一个分支段在控制流图中用一个输出边表示。 一个程序的入口点用入口结点表示,它是一个没有输入边的结点,一个程序的出口点用出口结点表示,它是一个没有输出边的结点。 技术—程序实例 void DoWork(int x,int y,int z) { int k=0,j=0; if((x3)(z10)) { k=x*y-1; j=sqrt(k); } if((x= =4)||(y5)) { j=x*y+10; } j=j%3; } 技术—控制流图例 A: 1,2,3 B: 4 C: 5, 6, 7, 8 D: 9 E: 10, 11, 12 F: 13, 14 A B D F E C 技术—语句覆盖 程序中每条语句至少被执行一次 C1覆盖、行覆盖、段覆盖、基本块覆盖 语句覆盖的盲点(循环;条件) 语句覆盖是最起码的测试要求 技术—语句覆盖示例 用例 { x=4、y=5、z=5} 执行路径 ABCDEF A B D F E C 判定1:(x3)(z10) 判定2: (x= =4)||(y5) 技术—分支覆盖 程序中的每一个分支至少通过一次 C2覆盖、决策覆盖、判定覆盖 分支覆盖的盲点 短路估值使分支覆盖不必考虑所有条件 分支覆盖不能保证所有入口-出口路径都被执行 技术—分

文档评论(0)

骨干 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档