软件安全性测试.docxVIP

  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文档。上传文档
查看更多
静态测试的和动态测试浅析 根据程序是否运行, 测试可以分为静态测试和动态测试。 静态测试就是静态分析, 对模 块的源代码进行研读, 查找错误或收集一些度量数据, 并不需要对代码进行编译和仿真运行。 动态测试需要真正运行程序发现错误, 通过有效的测试用例, 对应的输入输出出关系来分析 被测程序的运行情况。 1、 静态测试 所谓静态测试( static testing )就是不实际运行被测软件,而只是静态地检查程序代码、 界面或文档中可能存在的错误的过程。 从概念中我们可以知道,其包括对代码测试、界面测试和文档测试三个方面:对于代码 测试, 主要测试代码是否符合相应的标准和规范; 对于界面测试, 主要测试软件的实际界面 与需求中的说明是否相符; 对于文档测试, 主要测试用户手册和需求说明是否符合用户的实 际需求。静态测试包括对软件产品的设计规格说明书的审查,对程序代码的阅读、审查等。 静态分析的查错和分析功能是其他方法所不能替代的, 已被当作一种自动化的代码校验方法。 静态方法是指不运行被测程序本身, 仅通过分析或检查源程序的文法、 结构、过程、接 口等来检查程序的正确性。 静态方法通过程序静态特性的分析, 找出欠缺和可疑之处, 例如 不匹配的参数、 不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、 空指针的 引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。 通常静态测试包括: ( 1)代码检查:代码会审、代码走查、桌面检查; (2)静态结构分 析;( 3)代码质量度量。 静态测试采用人工检测和计算机辅助静态分析手段进行检测,只进行特性分析。 ?人工检测: 人工检测是指不依靠计算机而完全靠人工审查或评审软件。 人工检测这种 方法可以有效地发现逻辑设计和编码错误,发现计算机不易发现的问题。 ?计算机辅助静态分析: 利用静态分析工具对被测程序进行特性分析, 从程序中提取一 些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。如用错的局部变量和全局变量, 不匹配的参数, 潜在的死循环等。 静态分析中还可以用符号代替数值求得程序结果, 以便对 程序进行运算规律的检验。 2、 动态测试 动态测试( dynamic testing ),指的是实际运行被测程序,输入相应的测试数据,检查实 际输出结果和预期结果是否相符的过程, 所以判断一个测试属于动态测试还是静态的, 唯一 的标准就是看是否运行程序。 动态方法是指通过运行被测程序, 检查运行结果与预期结果的差异, 并分析运行效率和 健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。 动态测试是通过观察代码运行时的动作, 来提供执行跟踪、 时间分析, 以及测试覆盖度 方面的信息。 通常动态测试包括: (1)黑盒测试:又称功能测试。这种方法把被测软件看成黑盒,在 不考虑软件内部结构和特性的情况下测试软件的外部特性。 ( 2)白盒测试:又称结构测试。 这种方法把被测软件看成白盒, 根据程序的内部结构和逻辑设计来设计测试实例, 对程序的 路径和过程进行测试。 二者之间的区别: 区别一:静态测试是用于预防的,动态测试是用于矫正的; 区别二:多次的静态测试比动态测试要效率和效益高; 区别三:静态测试综合测试程序代码; 区别四:在相当短的时间里,静态测试的覆盖度能达到 100%,而动态测试经常是只能 达到 50%左右,原因动态测试发现的 bug 大部分只是在测试实际执行的那部分代码; 区别五:动态测试比静态测试更花时间; 区别六:静态测试比动态测试更能发现 bug; 区别七:静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行; 区别八:静态测试能发现动态测试所不能发现的一些: “Syntax error, code that hard to maintain , code that hard to test , code that does not confirm to coding standard , and ANSI violations ”。 黑盒白盒、动态静态测试之间的关系 它们只是测试的不同角度而已, 同一个测试, 既有可能是黑盒测试, 也有可能是动态测 试;既有可能是静态测试,也有可能是白盒测试。 而且它们之间还有包括交叉的关系, 总结 以下 4 句话: ?黑盒测试有可能是动态测试 (运行程序, 只看输入和输出) ,也有可能是静态测试 (不 运行程序,只是查看界面) ?白盒测试有可能是动态测试 (运行程序, 并分析代码结构) ,也有可能是静态测试 (不 运行程序,只是静态查看代码) ?动态测试有可能是黑盒测试 (运行程序, 只看输入和输出) ,也有可能是白盒测试 (运 行程序,并分析代码结构) ?静态测试有可能是

文档评论(0)

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

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

1亿VIP精品文档

相关文档