自动化AW的特征有哪些?

上一篇 / 下一篇  2016-05-13 21:46:31 / 个人分类:测试自动化

编程领域,有关API的设计,有很多优秀书籍来表述。有的时候,优秀的API甚者决定着语言的活力。c++有stl,java有j2ee、j2se,vs有mfc等等。

AW是第三代自动化测试方法,应用非常广泛。广义上来讲,AW就是一种API,面向测试人员的API,在某些自动化框架中,AW就是直接以语言形式出现的,比如testNG。因此,优秀API所具备的特征,对于AW也是适用的,而且,也是应该具备的。AW是否具备这些特征,直接决定着AW的应用程度。


基于问题域建模

开发AW的目的是解决特定的问题或者完成具体的任务,是跟具体的产品相关的。AW应该首先为问题提供一个清晰的解决方案,同事能对实际的问题域进行准确的建模。也就是,AW是基于业务的建模或抽象。对非自动化人员,她应当能够理解其含义并且很快知道如何使用。

举例:测试一个购书网站,可能的AW设计为:

  1. 1、登陆书站
  2. 2、搜索书籍
  3. 3、选择书籍
  4. 4、提交订单


隐藏实现细节

创建AW的主要原因是要解决自动化测试,用例有的时候非常多,一旦AW设计有问题,要修改的,要不影响到用例的自动化测试步骤的修改。AW是要隐藏所有的实现细节。

AW不暴露底层实现的细节,比如访问web的自动化,如果使用windows的power shell来封装实现,在AW层面就不应该暴露power shell的东西,因为竟来可能发现selenium2替换AW的底层实现会更好的话,大量的自动化用例是不需要更改的,测试人员毫无感知。


最小完备性

优秀的AW设计应该是最小完备的,它应该尽量简洁。AW的功能不要过于复杂,在程序设计领域里,如果一个函数的参数超过4个可能会比较难用。一个配置界面,如果参数有几十个,体验是不会好的。AW的参数要尽可能的少,参数可以进行分组。不要提供一个大而全的东西,那会很难用。


易用性

优秀的AW设计应该使测试更简单,使人一目了然,不需要给测试人员增加学习负担。

可发现性:AW名称取名,要深思熟虑,要具备望文生义,并且能够业务关联起来。发送请求、接收请求、修改文件等都不是好的名称。改成:发送HTTP请求、接收HTTP请求、修改业务配置,可能会更好一些,描述面比较窄一些,跟业务相关。

限制少:设计AW的目的是为了测试服务,需要构造很多异常输入。参数输入,不要作过多的限制,要把异常值能够传递到被测系统上,而不是被AW屏蔽掉了。这个是测试特有的,与编程领域的API设计不同。

一致性:测试的目的,就是验证与需求的一致性。AW的一致性也非常重要。比如命名约定、参数顺序,保持一致性,更易于使用。

正交:正交的AW意味着没有副作用。AW正交易于被保持其独立性,互相影响要小。


松耦合

优秀的AW应该是松耦合、高内聚的。对于测试人员来说,AW要从一处获取。比如在win系统下开发的AW,可能会用到很多win的dll,这些dll不要依赖测试人员的系统,aw层面就要解决dll的获取,不同版本的差异等,过多繁琐的操作步骤,可能就吓坏测试人员。


TAG: AW 易用性 自动化

 

评分:0

我来说两句

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 41675
  • 日志数: 10
  • 建立时间: 2015-08-24
  • 更新时间: 2016-06-21

RSS订阅

Open Toolbar