| 3.2Ppython 1)优点:       ① 借助了ython语言的动态性,比较容易书写调试case 。 ② Python也有对应的Pyunit框架,并且在高版本包含了Pyunit和Ctypes库,比在C++中使用Cppunit更方便。 ③ 结果报表比较清晰,易于定位出错位置,并且出错信息也较详细。 ④ 基于Python的跨平台,可以很方便的在多个平台下测试不同平台版本的C代码,而测试脚本基本不用重新编写。 2)缺点      ①如果测试静态库,需要先转成动态库,并保证动态库和静态库在使用上没有差异性      ②对于头文件定义不完整的库,例如,结构体的声明在.c或者.cpp文件中,需要在Ctypes生成的py文件中手动写生成的映射类型的各个成员。对于非基础类型,需要了解其在Ctypes中的表示形式。      ③对于头文件依赖其他库的头文件定义,需要转换对应头文件的定义。     ④需要熟悉C、Python和Ctype定义的一些类型及其转换规则。     对于C中的类型,需要了解其对应的Ctype定义,在Python中只能使用其Ctype类型,而不是Python的类型。      对于一些细节问题,需要格外关注其转换,如字节对齐等问题。 对于简单类型的数据准备,成本很低。 对于复杂数据类型的数据准备,成本可能比C更高,比如一个简单的char型空指针,Ctypes定义就比较复杂如POINTER(c_ubyte)() 。     对于C里面常见的一些操作,需要熟悉Python对应的操作,如文件操作、socket操作。   参考资料[1] Pyunit: http://pyunit.sourceforge.net/pyunit_cn.html [2] Cppunit:http://www.vckbase.com/document/viewdoc/?id=1258 [3] ctypes tutorial:http://python.net/crew/theller/ctypes/tutorial.html |