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软件测试网!C'p+x AdMwo1t

 51Testing软件测试网\8n&m!fCB4Z5R3?t

 

'{2AAaX l!Ej0

 

?xD _'e/c9^(dl0

 51Testing软件测试网E8]mU O:s

 51Testing软件测试网O{.@2Jrr3Y.yC~

 

!j wBM}Y`8fkGT0

 51Testing软件测试网 Hv$A?%J

 51Testing软件测试网$q^!Ca$b%bo

 51Testing软件测试网t#N6h&T @:]q

 51Testing软件测试网M8v|7v[,D5c

 

5]Pe4i8kL0

 

}IlSV-l#_&hd1Z)_0

 

&EU0eLiYx0

 

J'pXOEl/K_n0

 51Testing软件测试网-p p}d#[

 

n+^;o%a6x$t)|0

 51Testing软件测试网\TP:T$n7@Gj4T

 

E Y6y&rC9} s;Y0He0

 51Testing软件测试网-fZ$h~#c"M'f

 

9f'Gz#~j0

 

}Pk9fz.Lt0

1.1.2                           测试流程说明

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

功能测试类:同属某功能的测试用例放在同一个JAVA测试类中,该测试类从XML文件中读取公共测试数据并验证测试数据的合法性,如果测试数据合法则使用这些测试数据,否则创建一套新的公用测试数据并将这套公共测试数据存放到XML文件中供其它测试类使用。同时,创建适合这个功能测试类使用的测试数据,并配置适合该功能测试类的配置参数。

)~pw$IM&D_QOyW3x0

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

1.2                                测试结构

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

3v0S3aPF?h0

9Ib*gz&t-r?0

1.2.1                           Data

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

也用于存放数据结构的定义,比如,短消息的结构体定义或某测试对象的属性定义。

s4l8pa ]`)VZ7?0

Data中还会有常量定义,常量在整个系统中全局使用。51Testing软件测试网p}&J R3rNQU(R A

1.2.2                           Action

在测试过程中需要进行的任何操作,比如:配置、创建数据、测试步骤等。51Testing软件测试网B4F)S)^,J!}a6U^r

1.2.3                           Verification

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

n%l(Y oa:l0

1.2.4                           Cases

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

7a@UD!e#H0

1.2.5                           Util

主要是用于存放工具类。51Testing软件测试网\r(V;Eo-O~J)fm

1.3                                命名规则

1.3.1                           包(Package

·        All other letters are lowercase

6Mj%h}{j.KK(H:|0

·        E.g. pushcampaign

!X9fB'{b k0

1.3.2                           类(Class

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

o4{/f/Q1AfS3KP0

·        The class including test cases should end with XXXTest.java, or else should be XXX.java51Testing软件测试网l ]!g;c"}3I{gh

·        For example: PushCampaignTest.java  51Testing软件测试网 D yz*e-zV8~,~:T

1.3.3                           变量(Variable

·        The first letter of the first word is lowercase.

T0?Am-^5v&yi0X0

·        The first letter of the every word except the first word is capital.51Testing软件测试网'xzS1?cX |

·        All other letters are lowercase.51Testing软件测试网)i4kJ'D1`d

·        For example: dailyBudget.

)Dlf5^}c(z0

1.3.4                           常量(Constant

·        All letters are capital

@3D*a bNTPS0

·        The name should be meaningful

UQ:pb!T-Y0

·        The name of different words should be joined by “_”51Testing软件测试网:o kUs7Z['c

·        The name should start with “DEFAULT”51Testing软件测试网*U)gR[:a!`

·        For example: DEFAULT_COUNTRY51Testing软件测试网d qzA"M3c4X

1.4                                基本原则

自动化测试的基本原则:51Testing软件测试网 R/r8i&bAt

·        Reliable

5QsUHG+xoQ0

·        Readable51Testing软件测试网j p2t#Hoe

·        Extensible

f*Fy#LS Ph!c6q#Q.n0

·        Maintainable

y nG^ q[}c0

·        Practicable51Testing软件测试网T V"@ I7QUH

·        Repeatable

uw?~.TDCy9sT$W0

2                                     Data

2.1                                测试数据

测试数据可分为三种:公用测试数据、功能类测试数据和用例测试数据三种。51Testing软件测试网 UE{*E |q%e)_4u

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

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

·        Service Provider

Ps6pdH-~.e)X0

·        Publisher51Testing软件测试网,v[%r @0OzRi

·        Publisher Pricing Agreement

"M7^+[3H%D,m0

·        Site

;O?)v3x3G;`\0

·        Inventories (One inventory for one channel)51Testing软件测试网WH ` @ v/{:mSr&zw9D

·        Ad Sales

9R~g!t)\g_8C,U0

·        Ad Sales Pricing Agreement51Testing软件测试网,Q Jt1l UY-M

·        Media Agency51Testing软件测试网+a\0bBJ{8H8?/b6E

·        Media Agency Pricing Agreement51Testing软件测试网;Lx6N { [ r*[Mu

·        Campaign (One campaign for one campaign type)

1@{ ~@Lps0

·        Consumer51Testing软件测试网2{dq/H'N)D$OG.} r

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

jf;mfo oq0

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

,]7J B1t.BGzN-R0

·        根据数据定义文件创建公用测试数据(createCommonTestData)

o5b(y*w C \*sHxn0

·        保存公用数据到XML文件中(storeCommonTestDataToFile)51Testing软件测试网Ig,b[UZG h

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

v?E/HY^0

·        XML文件中读取公用测试数据(readCommonTestDataFromFile)51Testing软件测试网%Sh`#R#N5a

·        校验公用测试数据的合法性:存在于系统并且状态正常(verifyCommonTestData),如果数据非法则重新创建。51Testing软件测试网Gq6k s,?/Ey2g

使用公用数据的好处是避免重复创建测试数据,节省自动化测试的时间。而存放测试数据到XML的好处是一方面可以重复使用这些测试,另一方面是遇到问题的时候可以方便地使用保存在XML的测试数据进行问题跟踪。51Testing软件测试网@xV;Y[l{L

公用测试数据不建议修改,如果非要修改,一定要记得恢复。51Testing软件测试网G6X DY'mG6n

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

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

:JS;g&H7@l$M)e0

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

某些测试用例需要特殊的测试数据,而且这些测试数据只适合于某个测试用例,则在这个测试用例测试前准备该测试用例的测试数据。51Testing软件测试网 Fs'ri dj)Ih:w

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

B$pA.S[sR0

2.2                                测试数据常量化

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

1@/z~Kc'ZWZ0

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

2.3                                测试数据结构体

测试数据或测试对象定义测试结构体,供Action/Verification/Cases使用,比如:PublisherCampaign这些测试数据根据它们的属性构成测试数据结构体;又如:短信广告内容这些被测试检查对象也根据他们的属性组成测试对象数据结构体。51Testing软件测试网%bc~p(}"h,A8Io[3P

3                                     Action

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

X H'Mfym4UO0

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

2n6` _x,B7R0

3.1                                公用测试操作(Common Action)

以下这些测试动作是全局使用的:51Testing软件测试网w d;QCF D$K8~_

·        getCampaignBudgetImpressionClicks

8F*_1a}YcJFf0

·        getInventory

@,L.CK3e]Z0

·        getChannel

9~1r4[ar*T4Q0

·        optinConsumersByWebservice

0F!k4m,EqN`q s0j-h0

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

R:}m6p9Q0R Q-uF0

·        configurePushEnvironment

L'p\;\bB3z8w h0

TAG:

 

评分:0

我来说两句

Open Toolbar