编写背景:
测试组团队经过1年多的实战,测试工作流程及规范大家都已经明白并能很好的完成每个月的测试任务;下半年要向工作质量和工作效率迈上一个台阶,需要发挥大家的力量;自动化测试脚本编写这几个月在测试任务中让大家感受了一把;大家都认识到,要想让这些自动化测试脚本能高效的维护、使用,让新人和老人更容易的明白这些代码,我们需要一个自动化测试脚本编写的规范。
经过大家的努力,得出了这么个初稿,放在这里和大家交流交流,希望有经验的同行能给些建议。
一、命名规范
1.1 全体
1. 原则上不使用单词的省略词。
2. 对于作用域小的循环变量,以i, j, k这样的名字顺序使用。
3. 对于作用域小的变量名,可以使用类名的省略语。 (例: eo = ExampleObject.new)
1.2 类名和模块名
类以及模块名、各单词的每头一个字母大写,不要使用“_”下划线等分隔符。但是,像HTTP这样的通用缩略语,全都照样大写。名称最好使用“名词”或者“形容词+名词”
正例:
OtherClass
HTTPClient
误例:
Other_Class
OTHERCLASS
HttpClient
HTTPclient
HTTP_Client
1.3 方法名
方法名全都小写、各个单词之间用“_”分隔。方法名中使用“动词”或者“动词+名词”
正例:
add_something
误例:
addsSomething
Add_Something
返回真假值的方法的命名,在动词或形容词后追加“?”,对形容词,不用添加“is_”。
正例:
visible?
误例:
is_visible
is_visible?
另外,在使用具有破坏性和非破坏性的方法时候,要在破坏性的方法名后追加“!”。
例:
split
split! # 具有破坏性的split
1.4 常数名
类和模块名以外的常数名,全都用大写,单词之间用“_”来分隔。
例:
EXAMPLE_CONSTANT
1.5 变量名
对于变量名,全都用小写,单词之间用“_”来分隔。全局变量以$开头,实例变量以@开头,类变量以2个@开头。
例:
tmp
local_variable
@instance_variable
$global_variable
@@class_variable
变量名称要能清晰表达该变量的含义,如order_state,记录订单的状态
1.6 文件名
文件名全都使用小写字母,单词之间用“_”来分隔。另外,可以把文件中的已经变换的主要类名作为文件名来使用。
例:
foo.rb # 定义了类Foo
foo_bar.rb # 定义了类FooBar
二、代码排版规范
2.1 注释风格
注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不要放在代码的下方;注释内容应明确表达被注释代码的含义。
例:
# Return a Watir::IE object for an existing IE window. Window can be
# referenced by url, title, or window handle.
# Second argument can be either a string or a regular expression in the
# case of of :url or :title.
# IE.attach(:url, 'http://www.google.com')
# IE.attach(:title, 'Google')
# IE.attach(:hwnd, 528140)
# This method will not work when
# Watir/Ruby is run under a service (instead of a user).
defself.attach(how, what)
ie = new true # don't create window
ie._attach_init(how, what)
ie
end
2.2 代码格式
2.2.1代码空格
逗号“,”、分号“;”之后要留空格
赋值操作符、比较操作符、算术操作符、逻辑操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”等二元操作符的前后都加空格或者前后都不加空格。
正例:
a+b
a + b
误例:
a+ b
a +b
一元操作符如“!”、“~”以及“[]”、“.”、“::”这类操作符前后不加空格。
函数名之后不要留空格
2.2.2代码缩进
为了增加程序的可读性而进行的适当的缩进,缩进的幅度以2个字符为宜。另外,缩进的时候,只可使用空格,不可使用TAB(编程工具不同的时候,看起来会不一样)
例:
if x > 0
if y > 0
puts "x > 0 && y > 0"
end
end
2.2.3空行
同一函数内,不同含义的代码段之间空一行;不同函数和不同类之间空两行
2.3.输出检查点的格式
输出检查点采用“---输出语句---”格式,输出语句应简洁清晰的表达意思。
三、代码示例
代码示例如下图