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                           测试流程图

自动化测试包括系统的安装和配置、模拟器的安装和配置、公用测试数据的准备、测试数据和配置的更新以及自动化测试脚本。如下图:

j5Tr,F?9A1v1E0

 

wTOxm6Z?0

 51Testing软件测试网 `'Z0? E7Oo

 51Testing软件测试网Dy t$l&{ T.G,k

 51Testing软件测试网vT Jy g)mB

 

3`P R/F/}P:?b0

 51Testing软件测试网fk zXh1p(g1O

 

9US9p HA-\-YIL0

 51Testing软件测试网e#^#u-^R%m7}x

 51Testing软件测试网YO(w"h"}Qm4R

 51Testing软件测试网 v/OWn%f;K!JQ-h[

 51Testing软件测试网-@#l'G$Q-~o

 51Testing软件测试网 |?NoR

 

4LqT#oe-O;VW0

 51Testing软件测试网h)D:y)i:hZ pj1p

 

zOD0?z:W8jI0

 51Testing软件测试网$_z2P~*Y\ Nd

 

%F@l3LkV(Z0

 51Testing软件测试网 Z`'`#Bd|l G

 51Testing软件测试网o*og ?R}7_]$\

 51Testing软件测试网d T,NfI-kox

 

dk1s J8V|;Sjh7`Q0

1.1.2                           测试流程说明

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

0}*_ Ws {5C0

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

{Dye {?0

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

1iQ S,EHv0

1.2                                测试结构

自动化测试框架由Data, Action, Verification, CasesUtil组成。如下图:51Testing软件测试网3pfydXou?)L

51Testing软件测试网cw&jBvXoB

1.2.1                           Data

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

qG8v WR}r!z?-hv0

也用于存放数据结构的定义,比如,短消息的结构体定义或某测试对象的属性定义。51Testing软件测试网5k8Xy`0^

Data中还会有常量定义,常量在整个系统中全局使用。

g r_k,N:c8\m0

1.2.2                           Action

在测试过程中需要进行的任何操作,比如:配置、创建数据、测试步骤等。51Testing软件测试网W uk,KP

1.2.3                           Verification

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

9W3va k tJH7u0

1.2.4                           Cases

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

b6~ TX@&tWB{wAs0

1.2.5                           Util

主要是用于存放工具类。

&HZ*|F,t0

1.3                                命名规则

1.3.1                           包(Package

·        All other letters are lowercase51Testing软件测试网:et$|#s8fI

·        E.g. pushcampaign51Testing软件测试网@X+V%BT

1.3.2                           类(Class

·        The first letter of every word is capital, all other letters lowercase51Testing软件测试网Cb4fk*vd.xT

·        The class including test cases should end with XXXTest.java, or else should be XXX.java51Testing软件测试网8s%uOvx3i4d!j?

·        For example: PushCampaignTest.java  

q/T9E-}3{+l0i0

1.3.3                           变量(Variable

·        The first letter of the first word is lowercase.

;u'PH1@$O0

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

\rg Q!] JC0

·        All other letters are lowercase.

G*u'~@.e3}+{:[0

·        For example: dailyBudget.

&d8ff\+}7}#NM0

1.3.4                           常量(Constant

·        All letters are capital51Testing软件测试网P9c'YS"v@I)E M

·        The name should be meaningful51Testing软件测试网\ OL-o fDH^4p

·        The name of different words should be joined by “_”

Vs.DDm!I0

·        The name should start with “DEFAULT”

6rMZ/M3]S4b@0

·        For example: DEFAULT_COUNTRY51Testing软件测试网T#`7SW [@7oL

1.4                                基本原则

自动化测试的基本原则:51Testing软件测试网j?7F4V%y|U:X*V&f

·        Reliable51Testing软件测试网C/T i ~4`

·        Readable

2yk2z2a7G&o0

·        Extensible

p^%s0[Dq Oc0

·        Maintainable

ovyf5\0

·        Practicable

uo8D,@2n)[6Z(R-V0

·        Repeatable51Testing软件测试网'FP%BY_

2                                     Data

2.1                                测试数据

测试数据可分为三种:公用测试数据、功能类测试数据和用例测试数据三种。51Testing软件测试网A f!_$m-Bjz&by

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

公用测试数据是测试系统中所有测试用例都能使用的数据,在自动化测试用例开始运行前首先创建一套供所有测试用例使用的公用测试数据,这些数据可以包括:

5v J4`$ei)mu&\ |c0

·        Service Provider

1F{ JW)w:A*V[ {0

·        Publisher51Testing软件测试网S-z'r;{$I;eiqu

·        Publisher Pricing Agreement51Testing软件测试网x(h iMR+h Q}9V!D

·        Site

3BHs8|4|5S;a'\0

·        Inventories (One inventory for one channel)

2^R&w e}!?8z0

·        Ad Sales

(h}IaF%h'm&mV0

·        Ad Sales Pricing Agreement

yP%CAv)N*mF6p0

·        Media Agency

L;A ~4he&fY0

·        Media Agency Pricing Agreement

7n"n'@3]|1j.Q0

·        Campaign (One campaign for one campaign type)

e5?q Kd{q"dKxV0

·        Consumer51Testing软件测试网'C} v7kZNb2]4H

公用数据应存放在XML文件中供所有测试类使用,测试类在测试开始前先从XML文件中读取测试数据,并验证测试数据的合法性,如果测试数据非法则需要重新创建并保存到XML文件中。51Testing软件测试网 W;V#Y!tb"?$y

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

'r R4fe^[6XQ M0

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

+m*YtcKG0

·        保存公用数据到XML文件中(storeCommonTestDataToFile)

5Y$dz2_ A0

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

:j'itd uQW%M5D0

·        XML文件中读取公用测试数据(readCommonTestDataFromFile)

:K:Npsu;T r F0

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

]l&tM q8p KJ3Xd0

使用公用数据的好处是避免重复创建测试数据,节省自动化测试的时间。而存放测试数据到XML的好处是一方面可以重复使用这些测试,另一方面是遇到问题的时候可以方便地使用保存在XML的测试数据进行问题跟踪。

4U$zyGdz"L4QiP0

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

Plg'MR ^:g5k0

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

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

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

某些测试用例需要特殊的测试数据,而且这些测试数据只适合于某个测试用例,则在这个测试用例测试前准备该测试用例的测试数据。

"v7^Za0P \%@0

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

4_m2r vNs0

2.2                                测试数据常量化

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

)sBZ:_/{:X [R!qH:D0

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

8V/y$EhS BW6aY#H0

2.3                                测试数据结构体

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

3                                     Action

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

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

}/_ U Bu }Lf0h0

3.1                                公用测试操作(Common Action)

以下这些测试动作是全局使用的:

QP L/t(v-X[0

·        getCampaignBudgetImpressionClicks

w4MXVwt)?0

·        getInventory51Testing软件测试网8ptD-E1?-r_,_:SV

·        getChannel51Testing软件测试网0Z8D9n.Tj\

·        optinConsumersByWebservice51Testing软件测试网-Wa;u)C6O

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

G2V L f v h0

·        configurePushEnvironment51Testing软件测试网n~LE}2I&[A

TAG:

 

评分:0

我来说两句

日历

« 2024-06-10  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 47666
  • 日志数: 21
  • 建立时间: 2006-12-22
  • 更新时间: 2011-06-21

RSS订阅

Open Toolbar