将有限自动状态机应用到基于WATIR的前端测试中

来源:互联网 发布:不用网络的汽车游戏 编辑:程序博客网 时间:2024/05/17 22:41

        好久没有更新了,收到了很多搞测试朋友的QQ添加请求,由于我在巴黎,所以网不太好,有的时候您发送的添加请求我可能收不到,所以如果您有任何关于测试方面的问题,不仅限于WATIR,也可以是任何开发方面的问题,都可以发到我的邮箱里,即使我不会,咱们可以一起研究和讨论,那我的邮箱是:robin9257#hotmail.com(将#换成@即可)


        今天和大家分享的是测试工具开发过程中的算方问题。在测试的理论中,白盒测试在语句覆盖方面有很多种方法,但很少有tester将这些理论方法引用于前端测试,因为前端测试并不是很受重视,或者说很少有公司会进行前端测试。本文将和大家分享如何将有限自动机应用于前端测试中。


        举一个简单的例子,(a|b)*,在正则表达式中,这个statement可以翻译为任意a或b的组合或空,因此,在前端测试中,我们是否可以将其理解为用户此时是(<点击确定>or<点击取消>的组合)or<没有进行操作>呢?因此,根据我的理解,我们可以将对一个页面内的所有操作或者一个连续性操作设置成有限自动状态机。

        即: I = open this page and loading everything

                T= close this page or forward other pages

                Q={当前页面用户点击的所有状态,或某一连贯动作的某一状态}

                A={当前页面用户所能使用的所有动作,或某一连贯动作的各个动作}

                RELATION={用户在状态n时利用动作Ax,转换到状态m}

       这样就定义了一个页面或一个页面中连续动作的有限状态机。


        回到测试的理论中,当今前端自动化测试面临的最大问题就是必须预先设定用户操作步骤,而不能真实模拟用户在第一次使用或在不熟悉的情况下使用的情形,即不可以随机测试。

        定义1:随机测试即自动化随机测试,测试过程中不需要成型的测试流程,而只需要该页面用户可执行的操作或一系列动作中可执行的动作集合A,测试过程中产生随机顺序(前提是必须有一个动作入口,例如“打开该网页”),该动作序列的结尾动作必须属于任意或指定的有限状态自动机T集合(T集合即terminal集合)。

       注意:定义1是作者本人的定义,任何人在引用该定义前(即使进行修改),都应该向作者发送书面请求。


       根据定义1可知,对于任意一个前端测试case来说,为了实现随机自动测试,首要任务是区分出用户在一个页面中有什么样的操作!


        现在是北京时间的4:57AM,巴黎时间的22:57,就写到这里啦,下一篇我将利用百度image的页面对这个理论的可操作性进行验证!最后,上一张我在巴黎的照片!哈哈~~


       

原创粉丝点击