copy Bookmark http://www.51testing.com/?35658
发布新日志
2008-10-21 17:32:09
对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。可能输入包括:参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);可能输出包括:返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数据。了解了这些,就不会对没有参数、没有返回值如何测试产生疑问了。测试没有参数的函数,它可能还有别的输入,例如全局变量,成员变量,或调用子函数获得的输入(这个要使用工具才能做到),只要函数需读取的,都应该设定初始值,如果完全没有,没有输入也是一种输入,照样测试就是了。 同样道理,输出也不仅仅是返回值,没有返回值还可能修改了全局变量什么的,这些也是要判断的输出。但是,单元测试应该测试哪些比较复杂的程序,而不是只测试接口。对于只是读写一两个数据的接口,没什么好测试的,例如“DWORD GetInterfaceVersion ();//获取解码器版本号”,应该只是读取一个全局变量并返回,没有什么测试意义,要测的话,先设定那个全局变量的值,也一样测试,例如:输入:SetInterfaceVersion (1234); //调用其他函数完成初始化,这个是外部输入,不是内部输入。输出:ASSERT(GetInterfaceVersion () == 1234);不过这样做没什么意义。更具体的单元测试技术,建议看一下视频教程《单元测试讲座》,下载地址:http://www.kailesoft.cn/download/
以上是对这个帖子的回复,类似问题比较多见。http://www.51testing.com/spacecp.php?action=spaceblogs&op=add&openwindow=1
查看(779) 评论(0) 收藏 分享 管理
2007-08-14 22:52:52
查看(2060) 评论(1) 收藏 分享 管理
2007-08-13 22:52:57
什么叫好用例?被奉为经典的标准是:发现错误可能性大的用例就是好用例,发现至今未被发现的错误的用例就是成功的用例。对此,有网友评论说:这个标准就像傻子吃烧饼,连吃五个不饱,吃完第六个终于饱了,于是说:早知道吃了第六个就会饱,何必吃前面五个?没错,设计用例时你怎么知道哪个用例发现错误的可能性大?要是代码中根本就没错误呢?好用例应该是一个集合,就像傻子吃的六个烧饼是一个整体,一起吃下去才会饱,而不是找出一个“好”烧饼,吃一个就饱。
例如我们测试一个函数,如果用例集覆盖了该函数的所有等价类,那么,测试就是完整的,就是好用例和成功用例,衡量用例质量的标准跟是否发现错误无关。
举个例子,如果把程序视为一个池塘,错误视为塘中的鱼,那么,我们建立用例就相当于织网,这个网要能覆盖整个池塘,如果做到了这一点,那么一网下去,只要池塘里有鱼,就一定能捞上来,如果没有捞上鱼,可以认为塘中没有鱼。塘中是否有鱼,并不是评价网的质量的标准。
那么,如何衡量完整性和实现完整的测试呢?今天晚了,且听下回分解。
查看(1056) 评论(2) 收藏 分享 管理
2007-08-12 23:16:53
查看(1163) 评论(1) 收藏 分享 管理
VisualUnit