其间还涉及一些问题:
对象库
孔明发现,QTP 在记录脚本时要用掉很多本子,仔细一看,这些本子叫“对象库”,他把有关对象的属性都记录到里面去了。比如某个按钮的属性为:
类型:按钮,
名称:发射,
颜色:红色,
密度:3000g/m3,
材料:聚乙烯,
重量:100g,
位置:左边顶部
……
为的是在测试时根据这些属性来确定对象,以便操作。可是要确定对象一般只需特定的两三个属性就够了(像刚才那个按钮只要用“类型:按钮,名称:发射”就足以标识它),其它属性变得多余且占空间。
“QTP 啊,我不是给你指定了几个属性来标识对象吗?你把全部都记下来干嘛?洛阳纸贵啊”
“丞相,我这样做是有好处的,如果根据指定的属性无法确定对象,我还有个特技,我可以用其它属性来进行智能识别。”
“就你那智商还智能识别……”
描述性编程
为了节省资源,孔明令QTP 不要记录对象属性到对象库,改为直接在脚本中描述对象,比如对刚才那个按钮,只需描述类型和名称就可以找到它了。
自动化测试(增强)
有一次孔明出征去了,不在测试现场,QTP 在一炷香后还确定不了要按哪个按钮,就写了一张便条放在孔明办公桌上,其内容是:
“无法找到“锁定目标”按钮所在的控制面板,应如何处理?你有几个选择:
A、别测了,先吃饭去B、我不管,反正你不能停C、你来调戏试D、去掉两
个不推荐的选项E、向现场将士求助。”
然后暂停测试,干等孔明的指示,直到数月后孔明回来。鉴于此事,孔明令QTP 以后一旦遇到无法解决的问题或者完成测试后立刻向他报告,方式可以是用发短信、语音通话、发邮件、即时通讯工具、飞鸽传书等。
需求变更
后来孔明又对此机增加了一个功能:如果放入玉米、地瓜之类的食物,输出来的就是烤熟的了,这样将士们作战时就可以打到哪吃到哪。如果一并测试这个功能应该怎么改脚本?很容易想到:在“放入石头”的参数表中增加食物,在后面检查点中增加相应期望结果即可。改好脚本后QTP 照做,可这一次测试结果却是投石器把玉米抛了过去,给敌人送去了粮食,bug,终于出现了……