登录 | 注册 | English

资讯中心

yzc88网页版登录  >  资讯中心  >  产品动态

大家会对App的所有代码进行动态测试,是不是就不需要对代码进行静态分析了?

问题4. 大家会对App的所有代码进行动态测试,包括单元测试、集成测试和回归测试,是不是大家就不需要对代码进行静态分析了?
 
:不是的,代码的动态测试和静态分析是两种截然不同的测试方法,他们的测试原理不同,测试代码中的问题也不同,对代码质量提升所起的作用也不同。对代码进行在充分的动态测试,也无法取代对代码的静态分析工作。
        对代码的动态测试,通常是指通过运行代码,观察代码实行的动作,比较代码的实际运行结果和预期结果,从而判断代码的逻辑功能是否正确,并了解代码覆盖度等方面的信息。
        对代码的静态测试,通常是指通过对代码进行研读,查找一些潜在缺陷或收集一些度量数据,无需对代码进行编译和运行。
        通过代码动态测试和静态测试的原理可以看到,它们的运行原理和测试的内容都有明显的区别。下面详细说明一下代码动态测试和静态分析的不同:
        1. 代码动态测试应该开始于已经完成代码编写的阶段,因为在这个阶段代码才可以正常运行,因此才能判断其逻辑是否正确;而对代码进行静态分析不需要实行代码,所以静态分析工作应该开始于开始写代码的阶段,这样可以尽快发现代码中的潜在缺陷,减少修复bug所消耗的成本;
        2.测试人员是对代码进行动态测试的主力人员,他们需要根据代码的设计文档尽可能地设计出各种合理的测试用例,用来排查代码中的逻辑错误;而开发人员是对代码进行静态分析的主力人员,他们需要确保生产出高质量的代码,在代码进行动态测试之前尽可能地排除那些由于代码不规范、逻辑过于复杂、可读性差、可测试性差等原因所带来的潜在缺陷,通过对代码的静态分析,既有效减少了动态测试过程中所发现的bug数量,同时也能够明显节省修复bug所需要的时间。
        3.动态测试的测试内容偏向于代码的功能、可靠性、可用性和高效性;而静态分析更关注与代码的可靠性、可测试性、可维护性和轻便性。
        4.动态测试的前提是需要人为提供一些测试用例,因此动态测试效果很大程度上取决于这些测试用例。由于人工无法穷举所有可能的测试用例,所以动态测试工作也无法覆盖到所有的测试用例;而静态分析不需要测试用例作为前提,它仅需要大家确定按照什么样的编码规范或者标准(如MISRA标准、GJB5369标准等)对代码检查,就能对代码进行非常全面的分析,在不需要人工参与的情况下就能够发现很多的代码缺陷。
        由此可见,代码静态分析和动态测试分别侧重于对代码不同方面的测试,从测试阶段上来说,应该优先进行代码静态分析,在进行动态测试,才能在对大程度上优化测试工作,获得良好的测试效果。
 

 

相关文章

    没有相关文章
关于恒润
企业概况
企业理念
企业资质
资讯中心
恒润在全球
诚聘英才
校园招聘
实习生招聘
社会招聘
走进恒润
常见问题
市场活动
在线研讨会
线下活动
微信课堂
用户社区
资料下载
恒润月刊
用户留言
个人中心
相关链接
达索企业
IBM-中国
联系大家
电话:010-64840808
邮箱:market_dept@hirain.com
版权所有 ? yzc88网页版登录 京ICP备18000642号-1 京公网安备11010802017344号 网站地图 | 招聘信息 | 法律声明 | 隐私保护
XML 地图 | Sitemap 地图