51Testing软件测试论坛

标题: robot功能测试设计例子 [打印本页]

作者: ilovejolly    时间: 2005-9-3 14:42
标题: robot功能测试设计例子
robot功能测试设计例子

以学生管理系统的添加一个学生信息为例子

页面对象:editbox(姓名),button(添加)

数据要求:
1 姓名不能为空
2 姓名不能重复

程序结构
1 点button,弹出对话框“姓名不能为空”
2 输入姓名,点button,弹出对话框“添加成功”
3 姓名重复,点button,弹出对话框“姓名不能重复”

伪代码实现:
       
        buttonaddclick
        result=SqaGetProperty("弹出对话框","text",str)
           if str为“姓名不能为空”
                click ok
                else 失败
        end if

        editboxname input "a"
        buttonaddclick
        result=SqaGetProperty("弹出对话框","text",str)
        if str为“姓名不能重复”
                click ok
          goto label1
                else if str为“添加成功”
                click ok
                else 失败
        end if
label1: editboxname input "b"

代码回放说明:
1 第一次回放,首先进页面,点添加,弹出对话框“姓名不能为空”,点ok,在姓名里输入“a”,点添加,弹出对话框“添加成功”,脚本回放结束。
2 第二次回放,到了点ok,再输入“a”时,弹出对话框“姓名不能重复”,点ok,跳到label1,输入b,(此时姓名里面的内容为“ab”),点添加,弹出对话框“添加成功”,脚本回放结束。
3 第n次回放,同2

代码说明:
1 整个代码结构侧重系统弹出正确提示的验证,比如直接点添加,弹出对话框不是“姓名不能为空”,那么脚本就回放失败。
2 功能测试设计非常灵活,在这里我并没有判断SqaGetProperty的返回值。如果系统没有对话框弹出,脚本也会回放失败。当然这里也可以加上,当SqaGetProperty的值为 0 时,我们才继续判断str,否则就直接“失败”。
3 脚本里有两个失败,表示弹出对话框都不是我们预期的。在这里可以写日志,也可以什么都不做。写日志会方便我们分析回放结果。
4 开发设计,都是跟着需求走。需要你做到什么样,你就做到什么样。这里还可以对功能测试继续深入,比如,弹出对话框“添加成功”时,数据库里是不是多了一条我们刚添加的数据?弹出对话框“姓名不能重复”时,数据库里是否真的已经存在一条这样的记录?这些都是可以在脚本里控制的。
5 脚本设计,首先要把正确的情况都考虑周全。比如,上面去掉对对话框“姓名不能重复”的判断,那么第一次回放,脚本是可以成功的(前提是数据库以前也没有“a”这个名字),但是第二次,系统会弹出对话框“姓名不能重复”,其实这个时候程序是没有问题的,但是由于设计的疏忽,脚本里没有对这个对象的判断,脚本还是会回放失败。
6 对刚接触编程的人来说,这个脚本的重点,在于条件判断的设计!
7 SqaGetProperty的功能非常强大,是学习的重点。
8 待测程序和脚本我已经尽量简化。希望抛砖引玉。如有疑问,欢迎讨论!

[ Last edited by ilovejolly on 2005-9-3 at 14:45 ]
作者: sincky    时间: 2005-9-10 00:28
好例子!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2