论文部分内容阅读
软件的整个生命周期都离不开测试技术的辅助,无论单元测试、集成测试、系统测试,或者白盒测试、黑盒测试等都是从不同的方面去保障软件的质量。而软件测试技术中最热门的就是自动化测试技术。自动化测试技术将测试人员和开发人员从重复的工作中解放出来,将精力投入其他更有创造性的工作中去。在实际的产品研发中,各大IT企业均出现了平台化趋势。所谓平台,是指与业务无关的一层软件或硬件实现,产品是在平台之上做的二次开发,这样提高了代码的重用性,缩短了研发周期。平台是由大量驱动、底层API(包括用户态和内核态)、内核服务程序组成。平台不是产品,平台测试与产品测试也有相当大的差别。对平台测试往往只有硬编码、编译、运行,非常繁琐,因此开发一个平台自动化测试系统是很有意义的。要实现平台的自动化测试,最优的方案是对用户态和内核态的所有的API都实现一个统一的调用接口,通过该接口能够调用任意API,并能正确接收返回值。因为只有统一的接口才能迅速的实现自动化。平台自动化测试系统的一个重要任务就是在被测系统中注入测试代理,通过这个代理,实现函数的动态调用与返回。C语言缺乏面向对象支持,要实现动态调用以及参数的序列化和反序列化难度较大。另外平台自动化测试系统将在测试机上实现一个通用的自动化测试框架。该框架应具有良好的扩展性,功能齐全,使用方便,稍经扩展就能够同时适应产品测试和平台测试。为方便平台测试,系统还实现了一个附加工具——AW(Action Word)自动生成工具。该工具根据编译原理,通过对平台头文件做词法语法分析,提取目标函数,解析出函数原型——包括函数名,参数类型、个数,返回值类型,调用惯例等。然后在测试端生成对应的AW。这将大大降低测试脚本编写的难度和代码量,提高效率。平台自动化测试系统的实现,将大大提高平台测试的效率,为缩短产品研发测试周期,提高产品质量起到积极的推动作用。