Hi, 如果有任何想法与我沟通, 请用: lifr_nj 在 msn.com

Different QTP: 两个抽象之一:产品业务逻辑抽象

上一篇 / 下一篇  2012-08-26 21:19:28 / 个人分类:QTP

两个抽象之一:产品业务逻辑抽象

 第一个抽象层是关于对产品业务逻辑的封装。它的目标是,在设计testcase script时,要求做到“testcase scripttestcase的描述有简单而直接的对应”。也就是说在阅读一个testcase script的时候,加上少量的注释,就像在阅读这个testcase的人类语言描述。

例子

我们来看一个testcase的描述。它关注于对测试逻辑的描述,它的语句表达了业务层面上有意义的步骤,不会/很少涉及到很具体的GUI的操作,比如下面的例子。这是一个测试创建新用户的testcase描述。

Preconditions:

Login as Administrator

Steps:

1. goto admin->user management

2. create a new user with

1) name: ABC

2) password: 123

3. logout administrator

4. login as ABC with initial password 123 and change password to 234

5. Logout ABC

6. Login as ABC and with password 234

Checkpoints

·        step2, ABC is created

·        step6, ABC can login

 

一个testcasescript应该像下面的样子

'precondition

BIZ_LoginAsAdmin

 

'create user ABC

BIZ_CreateUser "name=ABC;password=123"

AssertTrue BIZ_UserExist "ABC", "user ABC not created"

BIZ_Logout

 

'login as ABC and change pswd

BIZ_LoginWithInitPswd "ABC", "123", "234"

BIZ_Logout

 

'login as ABC again

loginFlag = BIZ_Login "ABC", "234"

AssertTrue loginFlag, "ABC failed to login with pswd 234"

 

如你所见,一个testcase script的开发人与,在编写testcase script的时候,同样也只关注测试逻辑,他用framework提供的API来把人类语言的测试逻辑“翻译”为VBS语言。这就是第一个抽象/封装所要达到的目标。

优点与缺点

这种方法的最大优点就是。testcase script的开发效率更高,同时维护成本更低。

首先是项目代码更能适应变化了,因为他对两个变化源彻底的分离,无论是产品功能的变化,或者测试逻辑的变化,其影响范围都限制在了最小。

testcase script的简单易读使得后期维护更容易。设想你去维护一个别人开发的QTP project当你打开一个失败的testcase时,你能够通过读代码就能明了其测试逻辑,马上开始调试工作。。。

Testcas script的开发效率更高。在对产品功能有一个全面而系统的封装的天体下,Testcase开发的要求降低了,无论是复杂度还是代码量都会少很多。 但是,这需要更多的时间来开发framwork所以总时间并不一定会少。但我能确定后期维护时间会少很多。

这样做的缺点也有,就是对framework开发人员要求更高,除了会使用QTP必须具有良好分析和抽象的能力,我认为至少要有一年的通用的面向对象语言开发经验(Java/C#/C++)。公司需要更高的价格才能在市场上雇佣到这样的人。

在实践的过程中,我发现对于framework的开发者的要求,首先要非常熟悉业务,第二就是具有良好的分析和抽象的能力。即使你满足了这两个要求,还需要时刻把下面一个原则记在心里。


TAG:

450683057的个人空间 引用 删除 450683057   /   2012-08-30 16:42:05
5
 

评分:0

我来说两句

Open Toolbar