其他
【连载】嵌入式测试驱动开发(7)
/***首先接着上一节聊聊***/
我们上一节谈到了伪装法进行具有依赖性模块的测试开发方法,也知道了这个方法给我们测试驱动程序开发带来的益处,那我们具体用怎样的方式去进行替换和伪装所依赖的模块呢,这里我们谈一下该方法的具体如何来伪装和替换?
1)在编译链接的时候通过控制链接不同的文件来进行依赖模块的替换;比如说我们有两个文件都是模块的实现,一个是真实的产品代码模块;一个是用于替换和伪装所依赖的模块,我们在链接的时候通过配置链接文件进行选择性的链接。
2)用函数指针的调用来替换掉我们测试代码所依赖的模块,虽然说我们的函数指针变量会消耗一定的内存,但是对于代码的灵活性有很大的益处。
3)使用预编译进行代码的选择,这个是最直接的,不过也是容易出错的,毕竟代码结构变化较大。我们可以结合前面两种办法共同为我们伪装法服务。
/***测试驱动步步构建***/
我们都知道像我们一个中间模块一般都会存在多种多样的状态或者是调度,这样的话我们可能需要写很多的测试字据。那么我们一次性把测试列表中的所有项一起列举出来显得有点复杂,那么我们采取一种步步构建的方法,先从初始化状态开始测试,然后第一个状态开始测试,接下来开始测第二个状态,一直到所有状态全部测完!
1)我们进行初始化测试是最简单的,没有任何状态的切换,或者是其他事件的到来,这个时候的主要的工作是进行测试框架的构建和测试接口的书写。比如说我们安装的伪装测试代码中的一些初始化状态的EQUAL来进行测试通过!
2)在一个TEST中,我们首先是准备该测试模块所需要的依赖条件或者相关资源,然后提供给被测试模块运行使用,然后进行被测试模块的输出判断,完成该次测试。
3)我们所开发的被测试模块都最终会被调用,我们在测试被测试模块的时候需要我们在测试字据中调用被测试模块;我们还需要测试被测试模块能否正确被调用,需要在TEST_GROUP中另外再进行一个TEST来进行调用测试。
4)我们根据上面的测试以后就可以测试成功一次就重构一次。把一些重复的代码进行重构,使得代码更加清洁,同时我们还能对测试进行重构,比如说检测多bit,原本通过两行代码进行测试,我们可以变成判断多bit进行测试,或者是封装成函数!
好了,这里是公众号“最后一个bug”,感谢大家的关注,下期为大家继续为大家带来嵌入式测试驱动开发技巧!我们下期见!