当前位置:首页 > 全部子站 > IT > 水平考试

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

来源:长理培训发布时间:2017-11-26 13:08:57

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

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部