静态测试和动态测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码检查
• 代码检查包括代码走查、桌面检查、代码审查等,主 要检查代码和设计的一致性,代码对标准的遵循、可读 性,代码的逻辑表达的正确性,代码结构的合理性等方 面。
• 代码检查的具体内容:变量检查、命名和类型审查、 程序逻辑审查、程序语法检查和程序结构检查等。
• 代码检查的优点:在实际使用中,代码检查比动态测 试更有效率,能快速找到缺陷,发现30%~70%的逻辑设 计和编码缺陷;代码检查看到的是问题本身而非征兆。
调 用 关 系 图
代码质量度量
• 软件质量包括六个方面:功能性、可靠性、易用性、效率、 可维护性和可移植性。软件的质量是软件属性的各种标准度 量的组合。
• 针对软件的可维护性,目前业界主要存在三种度量参数: Line复杂度、Halstead复杂度和McCabe复杂度。
• (1)Line复杂度以代码的行数作为计算的基准。 • (2)Halstead以程序中使用到的运算符与运算元数量作为计数
• 代码检查的缺点:非常耗费时间,而且代码检查需要 知识和经验的积累。
静态结构分析函数内部控制流图
• 静态结构分析主要是以图形的方式表现程序的内部结构。 例如函数调用关系图、函数内部控制流图。其中: ——函数调用关系图以直观的图形方式描述一个应用程序 中各个函数的调用和被调用关系; ——函数内部控制流图显示一个函数的逻辑结构,由许多 节点组成,一个节点代表一条语句或数条语句,连接结点的 函数叫边,边表示节点间的控制流向。
目标,然后可以据以计算出程序容量、工作量等。 • (3)McCabe复杂度 一般称为圈复杂度,它将软件的流程图转
化为有向图,然后以图论来衡量软件的质量。
静态测试阶段的任务
(1)检查算法的逻辑正确性。 (2)检查模块接口的正确性。 (3)检查输入参数是否有合法性检查。 (4)检查调用其他模块的接口是否正确。 (5)检查是否设置了适当的出错处理。 (6)检查表达式、语句是否正确,是否含有二义性。 (7)检查常量或全局变量使用是否正确。 (8)检查标识符的使用是否规范、一致。 (9)检查程序风格的一致性、规范性。 (10)检查代码是否可以优化,算法效率是否最高。 (11)检查代码注释是否完整,是否正确反映了代码的功能。
静态测试与动态测试
1、静态测试
• 静态测试不实际运行软件,主要是对软件的编程格 式、结构等方面进行评估。
• 静态测试包括代码检查、静态结构分析、代码质量 度量等。它可以由人工进行,也可以借助软件工具 自动进行。
• 因为静态测试方法并不真正运行被测程序,只进行 特性分析。所以,静态方法常常称为“分析”,静 态测试是对被测程序进行特性分析方法的总称。
(3)提供程序缺陷的间接信息:所用变量和常量的交叉应 用表、是否违背编码规则、标识符的使用方法和过程的调 用层次。
(4)为进一步查找做好准备。
(5)选择测试用例。
(6)进行符号测试。
静态测试与动态测试(续)
2、动态测试
• 动态方法的主要特征是: ——计算机必须真正运行被测试的程序,通过输入测试
用例,对其运行情况即输入与输出的对应关系进行分析, 以达到检测的目的。 • 动态测试包括: (1)功能确认与接口测试 (2)覆盖率分析 (3)性能分析 (4)内存分析
静态测试与动态测试(续)
• 静态测试可以完成以下工作:
(1)发现下列程序的错误:错用局部变量和全局变量、未 定义的变量、不匹配的参数、不适当的循环嵌套或分支嵌 套、死循环、不允许的递归、调用不存在的子程序,遗漏 标号或代码。
(2)找出以下问题的根源:从未使用过的变量Βιβλιοθήκη Baidu不会执行 到的代码、从未使用过的标号、潜在的死循环。