双击用户函数,这个时候就可以任意修改桩函数返回我们想要的结果了:
8.关于测试用例
对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。可能输入包括:参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);可能输出包括:返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数据。了解了这些,就不会对没有参数、没有返回值如何测试产生疑问了。测试没有参数的函数,它可能还有别的输入,例如全局变量,成员变量,或调用子函数获得的输入(这个要使用工具才能做到),只要函数需读取的,都应该设定初始值,如果完全没有,
没有输入也是一种输入,照样测试就是了。 同样道理,输出也不仅仅是返回值,没有返回值还可能修改了全局变量什么的,这些也是要判断的输出。但是,单元测试应该测试哪些比较复杂的程序,而不是只测试接口。 8.1预置条件为形参的测试用例 源代码如图:
自动生成的测试用例为
从例子中我们可以看出unsigned _a = 1; unsigned _b = 2为设定输入,之后执行程序unsigned char _return = data_deal(_a, _b);最后判定输出,对于本例我们只需根据需要修改a,b的值即可,也可建立数据数据源测试用例。根据测试需要也可手动添加其设定输入,如全局变量、成员变量等。
如何建立测试用例
选择所需用例的测试套件,右键>新建>测试用例使用向导
? 选择函数(如果只有一个函数就没得选择了,呵呵),给测试用例命名,点击
next
? 到这里点击Finish就完成了新建测试用例,这里我们选择新数据源测试用例
点击自动生成,这里我们选择“表”(也可新建csv或者excel数据源测试用例,选择表),点击OK>Finsh完成:
? 双击测试套件下的数据源,这个时候就很方便的建立大量测试用例了:
8.2调用子函数获得输入
对于以下函数:
sum函数只提供了一个出口,对于data_deal函数来说建多少测试用例都无法完全执行每条语句,so以上介绍的桩函数就派上用场了,对sum函数插桩,当执行data-deal的第一个测试用例时让sum函数返回10,当执行data-deal的第二个测试用例时让sum函数返回0,当执行data-deal的第三个测试用例时让sum函数返回5,这样就可以完全保证每条语句都执行一次了。这里介绍的只是用法,具体到实际应用时需保证测试质量前提下精心设计。
图中篮圈为自带API函数,红圈为data_deal的测试用例。这里只是保证了覆盖率,对于data_deal函数套件下的其他测试用例(这里测试用例不止3个)还是执行sum返回的值对应的判断语句(如上上图的if语句),这样造成测试不均匀的现象,个人愚见应该把所有测试用例都用到桩函数中,但这样又带来了大量的工作。
插桩后执行测试用例结果:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++test(VS2010插件版)简明操作手册(5)在线全文阅读。
相关推荐: