- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]9第五章--结构化实现1
第五章 结构化实现 5.1 编码 程序设计语言的选择 项目的应用领域 科学工程计算:Fortran、C 、Pascal 数据处理与数据库应用:SQL 实时处理:汇编、C、Ada 系统软件:汇编、C、Pascal 人工智能:Lisp、Prolog 程序设计风格 源程序文档化 标识符按意取名 程序加注释(序言性注释、功能性注释) 数据说明 次序规范化,易找、易测试、易排错、易维护 语句构造 简单直接、易读易懂、层次缩进 清晰第一、效率第二 尽可能使用库函数;尽量只采用三种基本控制结构 输入和输出 程序效率 算法和存储器对效率的影响 防不胜防的软件错误 —— 例1:1963年, 美国, 飞往火星的火箭爆炸, 损失$ 10 million. 原因: FORTRAN循环 DO 5 I = 1, 3 误写为 DO 5 I = 1.3 软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审,其工件量约占总工作量40%以上(对于人命关天的情况,测试相当于其它部分总成本的3 — 5倍)。 测试的重要性 测试目的 G.Myers的观点: 测试是为了发现错误而执行程序的过程 一个好的测试用例能够发现至今尚未发现的错误 一个成功的测试是发现了至今尚未发现的错误的测试 测试人员的任务 站在使用者的角度上,通过不断地使用和攻击刚开发出来的软件产品,尽量多地找出产品中存在的问题,也就是我们所称的Bug 测试指导原则 测试用例应由输入数据和预期的输出数据两部分组成 测试用例不仅选用合理的输入数据,还要选择不合理的输入数据 除了检查程序是否做了它该做的事,还应检查程序是否做了它不该做的事 应制定测试计划并严格执行,排除随意性 对发现错误较多的程序段,应进行更深入的测试 长期保留测试用例,便于进行回归测试 穷举测试是不可能的。一般选用少量“最有效的”测试数据 程序员避免测试自己的程序 基本概念 1、定义:测试是为了发现程序中的错误而执行程序的过程。 注意:① 只能尽可能查错,不能证明程序中 没有错; ② 测试员与程序员不应是同一个人。 2、黑盒和白盒测试 ? 白盒测试(white-box , or open-box, clear-box testing): Use the structure of the program to test. —— Structural testing 例:(White-box) 下图所示的程序中共有 520?1014条可能的执行通路,显然,每条通路都执行一遍是不现实的。 设计测试用例的原则 保证模块中每一独立的路径至少执行一次 保证所有判断的每一分支至少执行一次 保证每一循环都在边界条件和一般条件下至少各执行一次 验证所有内部数据结构的有效性 常用的白盒测试方法 逻辑覆盖测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 基本路径测试 条件测试 循环测试 5.3 逻辑覆盖 逻辑覆盖(Logical coverage) —— 适用于白盒测试,覆盖程度由弱到强顺次为: ⑴ 语句覆盖(Statement coverage):每个语句至少执行一次。 5.3 逻辑覆盖 例: 5.3 逻辑覆盖 ⑵判定覆盖(Branch coverage):在⑴的基础上,每个判定的每个分支至少执行一次。 5.3 逻辑覆盖 ⑶ 条件覆盖(Condition coverage):在⑴的基础上,使每个判定表达式的每个条件都取到各种可能的结果。 5.3 逻辑覆盖 ⑸ 条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。 5.3 逻辑覆盖 考察control flow graph 的角度,还可考虑下述覆盖: ⑹ 点覆盖 巩固加深 将正确答案的编号填入题目空白处: 在白盒测试用例中,有语句覆盖、条件覆盖、判定覆盖、路径覆盖等,其中(A)是最强的覆盖准则。 可供选择的答案:A:(1)语句覆盖 (2)条件覆盖 (3)判定覆盖 (4)路径覆盖 为了对下图所示的程序进行覆盖测试,必须适当地选取测试数据。若X,Y是两个变量,可供选择的测试数据组共有I,II,III,IV四组(如表中给出) 巩固加深answer A:(4) B:(1) C:(8) D:(5) E:(8) 5.4 控制结构测试 白盒测试技术根据程序的控制结构设计测试用例的技术 5.4.1 基本路径测试(Tom McCabe)
文档评论(0)