Smile to yourself,both on your face and in your heart! MSN:lmjsmiling@hotmail

自动化测试设计实战 - 移动广告系统自动化测试设计

上一篇 / 下一篇  2010-12-26 22:22:35

1                                     自动化测试框架

1.1                                测试流程

1.1.1                           测试流程图

自动化测试包括系统的安装和配置、模拟器的安装和配置、公用测试数据的准备、测试数据和配置的更新以及自动化测试脚本。如下图:51Testing软件测试网5l J|h)fdSP S

 51Testing软件测试网 O8oh#n_m{|'`;^

 51Testing软件测试网.@,y*]1`N yS

 51Testing软件测试网q MJ4JUp

 

#dx4kK#S.\|*~ Z6D5r0

 

oCr3eRxE/z0

 51Testing软件测试网7mc3kJ/^Qt \

 51Testing软件测试网(L4[7l C7l B*c

 51Testing软件测试网 v$\^0P8I{&v;ySp6P

 

+WTP H]'\-[A3^0

 

8{1jn(_a8]~0

 

*S9ze!F5Ac&}s0

 51Testing软件测试网%U NFo:w+Z

 

^Yq"`/m"\0

 51Testing软件测试网%q)Ge;P6^/oJ

 

?/Zgr6o*B0

 51Testing软件测试网4Lb1E)t}j&ft\

 51Testing软件测试网w(z4OPH}Z$QU

 

+U~9yL,v_0

 

&d0jw~0z X(^p|0

 51Testing软件测试网\:_ o w!f5h3ac-t

 51Testing软件测试网2wC7kg od\


1.1.2                           测试流程说明

系统测试准备:系统的安装和配置、模拟器的安装和配置、公用测试数据的准备这些动作,是自动化测试开始的前提,在自动化测试过程中的一次性行为。在系统测试中,公共的测试数据可以供整个系统使用,这些数据在系统安装配置完成后使用自动化测试脚本创建,创建好后存放在XML文件中。使用XML存放的好处是数据的复用。51Testing软件测试网PZ pTj6k{

功能测试类:同属某功能的测试用例放在同一个JAVA测试类中,该测试类从XML文件中读取公共测试数据并验证测试数据的合法性,如果测试数据合法则使用这些测试数据,否则创建一套新的公用测试数据并将这套公共测试数据存放到XML文件中供其它测试类使用。同时,创建适合这个功能测试类使用的测试数据,并配置适合该功能测试类的配置参数。51Testing软件测试网)~K,y PB+j*_#^0]

测试用例:如果某个测试用例需要某些特殊的测试配置和数据,在具体的某个测试用例开始的时候进行,在准备好数据后,获取当前测试数据的状态和设置预期结果,然后执行测试步骤,当所有的测试步骤都测试完成后检查测试结果。最后,一定要恢复测试环境,如果公共测试数据或配置被修改,一定要在测试用例结束的时候恢复。

%V\J/kK:HA0

1.2                                测试结构

自动化测试框架由Data, Action, Verification, CasesUtil组成。如下图:

&jdno\ }0

2h,|]&Xv+Be L0

1.2.1                           Data

主要用于存放公共测试数据的定义,比如要创建的公用测试数据的定义,创建测试数据的Action在创建数据的时候从Data定义文件中读取输入,然后创建符合测试要求的测试数据。51Testing软件测试网NG A&jm?

也用于存放数据结构的定义,比如,短消息的结构体定义或某测试对象的属性定义。51Testing软件测试网h'Ue{%b*ed

Data中还会有常量定义,常量在整个系统中全局使用。51Testing软件测试网pd*Bp/GS&po

1.2.2                           Action

在测试过程中需要进行的任何操作,比如:配置、创建数据、测试步骤等。51Testing软件测试网!H n-HPt.NLz

1.2.3                           Verification

在测试完成后,对测试结果进行验证的类和方法。比如:检查接收到的广告内容是否正确。

'x@5u;|)m6zE$Io;P]D0

1.2.4                           Cases

测试用例存放目录,相关功能的测试用例放在同一测试子目录中,同一功能的测试用例放在同一个测试类中。

)OPF"}D5o a0

1.2.5                           Util

主要是用于存放工具类。

&Fk|4XRe2U0

1.3                                命名规则

1.3.1                           包(Package

·        All other letters are lowercase51Testing软件测试网/ITO9yh%C

·        E.g. pushcampaign51Testing软件测试网yK&i&p-p[ J)H z

1.3.2                           类(Class

·        The first letter of every word is capital, all other letters lowercase

e S-WhG ?'~d?0

·        The class including test cases should end with XXXTest.java, or else should be XXX.java51Testing软件测试网~ |"UR5~&D Y!E

·        For example: PushCampaignTest.java  

FDll%r0

1.3.3                           变量(Variable

·        The first letter of the first word is lowercase.

x#\G CH6u P&q#Fp+G9~0

·        The first letter of the every word except the first word is capital.

'?4kNo(N s_0

·        All other letters are lowercase.

wX`h|3]/w(@s9M0

·        For example: dailyBudget.

RUk,`1[7{h}2{0

1.3.4                           常量(Constant

·        All letters are capital51Testing软件测试网7S~aMo"W5}o

·        The name should be meaningful51Testing软件测试网*H!w)e*YM"z,E

·        The name of different words should be joined by “_”51Testing软件测试网-s0SUS)M3DA

·        The name should start with “DEFAULT”

!Aj/\4^fG0

·        For example: DEFAULT_COUNTRY51Testing软件测试网v@@b2S

1.4                                基本原则

自动化测试的基本原则:

#P9b/?{*QET0

·        Reliable

u1^D#jrt&^+_S0

·        Readable51Testing软件测试网*bY{VI

·        Extensible51Testing软件测试网9Zn ?"va"e)y

·        Maintainable51Testing软件测试网:v OMT;B

·        Practicable

.Q$T.B&E+f#tUW0

·        Repeatable51Testing软件测试网*W)WU`w4n1~

2                                     Data

2.1                                测试数据

测试数据可分为三种:公用测试数据、功能类测试数据和用例测试数据三种。

Yp!Oj.Y]#?0

2.1.1                           公用测试数据(Common Test Data)

公用测试数据是测试系统中所有测试用例都能使用的数据,在自动化测试用例开始运行前首先创建一套供所有测试用例使用的公用测试数据,这些数据可以包括:51Testing软件测试网X$n3QcQ-m0x*U

·        Service Provider

+HKn5m(h(`.~1p%pe0

·        Publisher

f^f`$Rb,N!T |z4X0

·        Publisher Pricing Agreement51Testing软件测试网#W]W$dH

·        Site

%K#u)\`\ H/^Q0

·        Inventories (One inventory for one channel)

&B yW;^ZN)z {:j"~0

·        Ad Sales51Testing软件测试网"B9C9^(Q~i9l G

·        Ad Sales Pricing Agreement51Testing软件测试网y3B$Cld'F

·        Media Agency

WC_.Lt&mgmQ0

·        Media Agency Pricing Agreement

nr%y-}p*e)nDt'q0

·        Campaign (One campaign for one campaign type)

sE:FqC6B5n,}0

·        Consumer51Testing软件测试网/n ]1S{mN

公用数据应存放在XML文件中供所有测试类使用,测试类在测试开始前先从XML文件中读取测试数据,并验证测试数据的合法性,如果测试数据非法则需要重新创建并保存到XML文件中。

oG$d0Tzn f)aWp%y0

公用测试数据的创建流程:

~}*a5C#jVl0

·        根据数据定义文件创建公用测试数据(createCommonTestData)51Testing软件测试网 XR h&|W5m:H

·        保存公用数据到XML文件中(storeCommonTestDataToFile)51Testing软件测试网.a4z~4D*QG

在测试类中使用公用数据的流程:

,bD2l:n.IJ3Z'p0

·        XML文件中读取公用测试数据(readCommonTestDataFromFile)51Testing软件测试网CJC-vm7qU)`f

·        校验公用测试数据的合法性:存在于系统并且状态正常(verifyCommonTestData),如果数据非法则重新创建。

/U_ hZrlm0

使用公用数据的好处是避免重复创建测试数据,节省自动化测试的时间。而存放测试数据到XML的好处是一方面可以重复使用这些测试,另一方面是遇到问题的时候可以方便地使用保存在XML的测试数据进行问题跟踪。51Testing软件测试网#J!uW _-J0S `

公用测试数据不建议修改,如果非要修改,一定要记得恢复。

S!f_/} F D9c0

2.1.2                           功能类测试数据(Functionality Test Data)

同一功能的测试用例放在同一测试类中,当公用测试数据满足不了这个测试类并且某些测试数据又可以供这个测试类的大部分测试用例使用时,在测试用例开始运行前创建功能类测试数据。

2F#V'Lg@+t0

2.1.3                           用例测试数据(Case Test Data)

某些测试用例需要特殊的测试数据,而且这些测试数据只适合于某个测试用例,则在这个测试用例测试前准备该测试用例的测试数据。51Testing软件测试网 i-[1F7y;f

每个与广告投递相关的测试用例,都创建一个唯一的用户,这样做的好处是方便计费日志的检查,并且,当用例运行失败的时候,唯一的用户ID也方便定位出错的原因。

qT7Vh)O3G^$k0

2.2                                测试数据常量化

公用测试数据应该用常量定义,这些常量在创建数据、使用数据、校验测试结果的时候可以使用。这样可以避免测试数据写死在测试用例中,当某个值被改变或参数被删除的时候,所带来的维护工作量。51Testing软件测试网5W~%|CIrN

比如,每个广告投递一次需要1元,定义常量CAMPAIGN_DELIVERY_COST=1,那么在数据创建的时候可以使用CAMPAIGN_DELIVERY_COST这个常量,并且在检查这个广告投递成功后是否扣除1元也可以使用这个常量。51Testing软件测试网,bk#hn"V

2.3                                测试数据结构体

测试数据或测试对象定义测试结构体,供Action/Verification/Cases使用,比如:PublisherCampaign这些测试数据根据它们的属性构成测试数据结构体;又如:短信广告内容这些被测试检查对象也根据他们的属性组成测试对象数据结构体。

MlQ2o8hu0

3                                     Action

Action,顾名思义,就是在测试的过程中所作的任何操作。Action在自动化测试中可分为所有或某些测试类都可以使用的公用Action和某类或某个测试用例使用功能类Action两种,而这两种Action又可以分为原子Action和组合Action

%p3@?%@G/B0

Primitive Action就是一个不可被分割的简单操作,而Composite action则是由若干个Primitive Action组成的操作,如果某几个Primitive Action会被两个以上的地方使用,那么这几个动作应该封装成一个Composite Action

2`%Q'V oL] p7@|'u vH%W0

3.1                                公用测试操作(Common Action)

以下这些测试动作是全局使用的:51Testing软件测试网Qd+a.u6g\

·        getCampaignBudgetImpressionClicks51Testing软件测试网4`'x"O'f*@ G,Ri

·        getInventory

*ZX N.B$y)}0

·        getChannel

:b]ak9ev0

·        optinConsumersByWebservice51Testing软件测试网O?*@~!g5Z%Ri

以下这些测试动作,适合于所有PUSH广告相关的测试,包括push campaign, survey campaign, incentive reward campaigndirect market campaign等与PUSH相关的测试场景:

G3?4O)g(^j0

·        configurePushEnvironment51Testing软件测试网Z2BY.O4ekc,XC

TAG:

 

评分:0

我来说两句

Open Toolbar