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

Different QTP: 总结2:适应变化和可测试性

上一篇 / 下一篇  2012-09-08 22:14:53 / 个人分类:QTP

总结2:适应变化和可测试

适应变化而不是控制变化

相对于单元测试接口测试等自动化测试对基于GUI的测试面对一个很大的问题是GUI是容易改变的。

对于这种情况,QTP给出了SmartIdentification试图让工具更智能,实践表明大多数时候它只是在帮倒忙。

有些公司出台了一些Policy限制DeveloperGUI元素识别标识符(比如ID)的修改。比如我现在的公司就提出过修改GUI的一些policy结果是不了了之。因为很多Developer根本就记不住那些约束,或者不愿意被约束。另外,有些时候,一些GUI元素是由工具生成的,ID变化不在Developer的控制之中。

所以,在设计GUI元素库的时候,如何应对GUI的变化是需要重点考虑的。我的答案是,不去试图控制变化,而是提高自己适应变化的能力。这就是“所见即所得”识别方式背后的动因。相对于“对象库”方式,“所见即所得”不仅仅带来了快速定位GUI元素的能力,它还让修改变得很简单。当GUI元素修改了,如果你只需要花几分钟就能修改好的你的代码,那么你也不会太在意这种修改。

可测试性与代码重用率

可测试性与代码重用率看似两个不相干的东西,但我发现代码重用率高的软件相对有更好的可测试性。简单来说高质量的软件相对具有更好的可测试性,及时developer在开发的时候并没有专门去思考“可测试性”这回事。

有一本叫“重构”(refactory)的书说,“重复的代码”是代码臭味的一种。当代码具有臭味时,你就需要去重构它。通过重构去掉“重复的代码”其实就是在提高代码的重用率。代码的重用率一定程度上也能反映出代码的整体质量。简单来说,通过copy-paste构建的程序肯定比通过抽象构建的程序代码质量差,因为它导致大量的重复代码。

为什么代码重用率高的程序一定程度上也是可测试性高的程序?GUI元素库对于元素定位的每一种基本方法(包括组合元素定位)是针对某一类型的GUI元素的抽象。一个程序,如果它的GUI部分的代码重用率高,那么就有更多的GUI元素其定位标识是有规律的。那么同样数量的定位方法就能覆盖更多的GUI元素。一个程序如果是通过copy-paste建立起来的,因为paste之后,程序员是可以任意修改代码的,这种修改可能破坏了原有的GUI元素定位规律。所以结果就是,不得不写更多GUI元素定位基本方法(或者组合元素)来覆盖所有的情况。

所以,我发现,使用这个GUI元素库,越是高质量的软件,其测试套件开发起来越轻松。


TAG:

 

评分:0

我来说两句

Open Toolbar