上位机软件自动化测试经验总结 自动化测试框架
一.摘要
本文档主要描述QA在进行软件自动化测试项目中获取的经验,以及提出一些有利于下一次类似测试应该汲取的教训,以便为未来的软件自动化测试提供必要的依据。
二.获得的经验
1. 完整的项目回顾
2. 具体的开发总结
略(公司的上位机软件,为了保密,称其为VS,软件的功能主要是物体经过某个传感器系统时,能够通过各种外设收集数据并予以判断,并且做出是否将交易记录递交数据库的决定)
2.1 流程测试的风险
将VS的通过传感器系统的流程纳入项目,是基于测试工具本身能使用动态链接库来扩展其自身语言(VBScript)无法完成的输入输出信号模拟功能。但这是有很大风险的,第一,数据通讯依赖串口,既要正确的通过串口发出信号,也要正确的通过串口捕获信号,但是一个串口只能被一个软件打开,使用什么技术来模拟这种输入输出信号呢?普通的商用机只有一个物理串口,如果没有很好的串口模拟技术支撑,不仅随时随地的流程自动化测试将化为泡影,测试成本也将上升。第二,我们不知道测试工具对哪些编译型语言编写的dll支持,是否支持的好,程序员能否熟练编写这种未知语言编写的dll;
实际上,这两种风险在开发过程中我们都真实的遇到了。对于第一种风险,我们最终使用串口对接技术来解决,并且放弃了物理串口,使用虚拟串口。编写dll 时,我们一开始使用Delphi来写dll,但是测试工具无法正常调用,最后我们用C#成功的编写了测试工具可以正常调用的dll。
2.2自动化测试的架构
自动化测试的架构也是我们在项目开始初经常涉及的问题。好的测试架构能够提高开发效率,保证开发质量,规避开发歧途,降低项目后期整合时的维护难度。因为项目组成员,来自各个不同的部门,对于测试自动化的理解深浅不同,使用自动化工具的水平参差不齐,团队的合作开发使得我们亟需完美的测试架构。但是,这毕竟是我们第一次做自动化测试项目,没有任何的经验积累。公司目前采用的测试管理工具是QC,那么使用QC+QTP,就是我们架构的唯一选择。QC和QTP 能够无缝结合,使用QC可以方便的生成,运行,管理自动化测试案例。除了架构带给我们开发过程中的这些便利外,我们还需要考虑测试编码过程中编码的方式,编码的效率,测试对象的管理,函数的管理,代码的配置管理。
我们将测试对象做成一个共享对象库,每个团队成员进行某个自己负责的案例开发时,只要关联这个对象库,就能自动识别被测软件的对象。使用共享对象库,不但保证被测软件对象的唯一性,而且便于后期对象的维护。目前,在自动化测试中模拟操作的更好的代替方法是描述性编程,可以避免软件升级时对象库的维护。但是由于团队成员是初次参与这种项目,所以采用更成熟的对象库技术。
编码方式有3种,一种是直录,一种是手工编,还有一种是混编。直录的优点是速度快而方便,缺点是它产生的新对象不会存到共享对象库,脚本相对累赘。手工编的优点是代码清晰简洁,可读性更好,缺点是相对麻烦,编码速度稍慢。混编是指主要采用手工编码方式,在人机交互复杂时用直录提高效率,完成脚本后再使用手工编码简化脚本。我们采用的就是混编方式。如果使用描述性编程,那就必须要完全使用手工编码了。
文章来源于领测软件测试网 https://www.ltesting.net/