为了使所有的测试工程师在进行自动化设计和测试时能够使编写的脚本风格一致、步骤一致,能够把大家的设计和代码组装在一起,因此有必要对自动化测试脚本编写进行统一的规范化,下面先来介绍我们的项目组整理编写的自动化脚本编写的规范。
1.自动化脚本编写的规范
1)基本信息
在每个脚本模块的上面,必须写上脚本运行的软件和硬件环境(如IE版本、QTP版本、数据库版本等)、外包项目名称、脚本编写人(使用英文名或中文拼音缩写)、脚本创建时间、脚本修改时间、修改说明、输入参数、输出参数、脚本描述等。
2)常量命名规范
常量的命名应该全部用大写,使用"_"作为单词间的分隔符,单词尽量使用全名称,如,Public Const MSG_EMPTY_ROW As String = "有空行存在"。
使用Public而不是早期版本的global来声明变量。
另外,对常量的声明必须带上类型,如前面的As String。
3)变量命名规范
变量命名应该简单,应尽量使用缩写。如果是一般的值类型(如integer string),则直接使用变量用途命名。尽量使用全名,例如,Dim name As String;如果是一般的临时性变量定义,应该尽可能地简单,例如,Dim i As Integer;如果名称由多个单词组成,则取每个单词的首字母,如EntityManager缩写为em,ProcedureManager缩写为pm;如果名称由一个单词组成,则对单词进行分段取首字母,如Entity缩写为et。缩写应该控制在3个字母以内,且尽量清晰。
4)参数命名规范
参数命名的原则是全部用小写,如果参数包括两个或两个以上的单词时,首单词字母小写,其他单词首字母大写,如stepName、stepDescription。
5)函数命名规范
此处函数包括sub和function,函数表示的是一个动作,所以它的结构应该是动词+名词,动词必须小写,后面的名称首字母大写,如getMaterialCode。函数命名尽量不要使用缩写,而且它的名称应该使人一目了然,能够从名称知道这个函数的功能,不要使用无意义的函数名称。当函数名称不足以表达其功能时,应使用在函数头部加上让调用者足够明白的注释。
6)代码注释规范
注释务必做到准确简洁,能够充分表达代码实现的功能。
7)空行
空行是区分代码块与块的间隔,在函数之间必须加上空行;而在函数内部,变量声明块和实现块(实现块指除变量声明外的其他代码)要使用空行来间隔,实现块的内部,通过空行来标识一个功能段。
8)缩进
必须严格执行缩进,变量声明块不缩进,实现块必须保证全部缩进(不可能有实现块是行首对齐的);对于基本的控制结构来说,必须要有缩进,如IF、DO、WITH、FOR、WHILE块。
9)续行
对于过长的语句来说,必须使用续行,续行位置要有明显意义,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE'001%'"。
另外,还要通过管理对象库来提高代码的可读性,通过修改命名来达到更加易读的效果。对于使用比较频繁的代码块来说,好将其写成函数,并尽量将功能复杂的大函数拆分成小函数。
注意:在任何地方,不要写ElseIf语句,好转换成If…Else…Endif结构。
2.业务组件测试
BPT为Bussiness Process Testing的缩写,译为业务组件测试。
1)业务组件的简介
业务组件是组成流程测试的基本单元,组合不同的业务组件可以实现不同的业务流程测试。如将黄金交易系统的登录作为一个组件,将交割申报作为一个组件等,然后可以将这些组件按照一定的业务流程组合在一起,以满足不同业务流的测试。这里业务组件可以重复使用,从而在一定程度上提高自动化开发的效率。
2)业务组件测试的优点
业务组件测试有以下几个优点:
相关业务人员可以在没有脚本的环境下组合业务组件,实现业务流程。
对业务人员的编程能力没有要求,业务人员只需了解系统的业务流程,不用关心具体的脚本实现。这一点也实现了业务层和脚本层的分离。
一旦某个组件开发完毕,即可在不同的流程中使用该组件,实现高可复用性,从而加快业务流程测试的速度。
明确角色分工,业务人员负责流程的开发、组织;QTP工程师负责脚本的开发、维护,以及相应函数库的开发、维护。
因为实现了脚本的复用,提高了自动化开发的效率,在无形中降低了测试过程中维护的时间和成本。