电话:0731-83595998
导航

单元测试与代码的动态行为和静态行为

来源: 2017-11-26 13:08

  这一问题的引出是来自我们的软件发布流程的。我们的产品运行的是Monta Vista或是WindRiver Linux(后面称之为目标环境),而开发环境是Fedora Linux(后面称之为主机环境)。我们对于单元测试都会在主机环境上完成,然后,在目标环境上并不做单元测试,而只是做Sanity Test(你可以理解为功能测试)。一开始,我并没有发现我们在发布产品前并不在目标环境下做单元测试的,后来无意的交谈中我发现了这一与我所想像的不一致的现象,即,我认为产品在发布前应当在目标环境下做单元测试。
  说到这,有人可能会想,单元测试应当一旦做过,就证明了其正确性,为什么还要在这里所说的目标环境下再做测试呢?是的,这一问题也同样出自于我们的一个软件工程师。在问我的当时,我并没有想好如何回答。于是,在开车回家的路上,我就在思考"这是一个对于单元测试的理解比较普遍的问题,如何去表述让别人一下子能明白单元测试还得在目标环境中再做"。思考的结果就是这里要提出的代码的动态和静态行为概念。
  动态行为是指代码具有一定的响应能力的行为,比如,一个对于线程进行封装的类,其行为应当就是动态的。另一个例子,就是Socket通讯问题,我们需要对连接进行测试,此时其所表现出来的也是动态行为。对于动态行为的代码,其在不同的操作系统中表现有可能是不同的。
  与动态行为不同的是,静态行为只是被动的计算或是组织数据结构。比如,一个MD5的计算函数,其行为就是静态的,这种行为不论你是在任何操作系统或是处理器上运行,其结果都是一样的。
  有了这两个概念,我不知是不是有助于我们去分析,我们所写的代码是否应当在不同的环境下做单元测试。借用这两个述语我们得到如下的陈述:如果全部代码都只有静态行为,那么只要在一种环境下做单元测试就行了;如果代码包括动态行为,那么我们必须在所有可能运行的环境下做单元测试。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端