silktest q&a[转]

上一篇 / 下一篇  2008-11-04 18:21:04 / 个人分类:SilkTest

Q1: silktest是什么
A1:silktest
是一个segue公司的一个自动化测试工具。
 
Q2:Segue
的测试方法论是什么?
A2:Segue
的测试方法论是一个包括六个阶段的测试流程:
1.
计划。决定测试策略并且定义测试需求。
2.
捕捉。将你的应用程序中的GUI对象对象化,并且建立一个运行测试的框架。
3.
创建测试。创建自动的,可重用的测试。利用录制和编程手段建立用Segue4Test语言编写的测试脚本。
4.
运行测试。选择某些测试并且针对需要测试的软件执行它们。
5.
报告。分析测试结果并且生成缺陷报告。
6.
追踪。在待测软件中追踪缺陷并且执行回归测试。
 
Q3:silktest host
是什么?
A3:Silktest host
是一个用来管理和执行测试脚本的组件。Silktest host通常运行在和待测软件不同的机器上。
 
Q4:silktest agent
是什么?
A4:Silktest agent
是从silktest host接收测试指令,并且和待测软件交互的组件。它通常和待测软件运行在同一机器上。
 
 
Q5: 4Test
是什么
A5:4Test
silktest用来组成测试脚本执行自动测试的一种测试脚本语言。4Test是面向对象的第四代语言,它由三部分组成:
一个可以使testcase可以和GUI对象交互的强壮的面向对象的类库。
一组用来创建记录testcase的结构和逻辑的申明,操作符和数据类型。
一个用来支持普通支持任务的内建函数库。
 
Q6:DOM
浏览器扩展是什么?
A6:
文档对象模型(DOM)浏览器扩展是为了测试Web程序的一个silktest附加组件。DOM浏览器扩展直接和Wed浏览器联系来识别,分类处理Web页面上的对象。该组件并非是使用可视化模式识别技术来进行这些对象的识别,而是通过处理实际的HTML代码来实现的。
 
Q7:VO
浏览器扩展是什么?
A7:
虚拟对象(VO)浏览器扩展是一个为了测试Web程序的silktest附加组件。VO浏览器扩展使用模式识别技术来识别浏览器中呈现出来的对象。VO扩展以页面呈现出来的样子来看待页面而不是通过识别html标记。而且VO扩展以页面中的对象例如:链接,表格,图片和附加在它们上的操作来看待它们,而不考虑它们背后所用的技术。
 
Q8:6.0
版本的脚本运用到6.5甚至更高版本的系统上会出现问题么?
A8:
从低版本到高版本的迁移不会导致问题,不过这只是一个一般性的声明,而并非适合于所有的情况。我曾经遇到6.5版本的脚本无法在7.0版本上运行的情况,原因是一些识别模式已经被改变了。而且在一些情况下,最后处于不同路径下的脚本竟然执行了基于版本的相同的操作。
Ps
:从6.06.5倒没有遇到任何问题。
 
Q8.:
近我在使用silktest V3v的是否遇到一个问题,当我记录选择菜单项时,比如:Product.File.Exit.Pick()但是当我回放时,它能够选择File菜单,但是无法选择Exit项。File菜单没有被下拉显示出来,仅仅是高亮了。这个应用是用vc开发并且运行在NT4的系统上的。
虽然我可以使用菜单的快捷键绕过这个问题,但是在某些testcase里面我更希望能模拟鼠标进行上面的操作,有什么好的办法么?
A8:
我也曾经遇到这样的问题,这是由于焦点问题而产生的。首先,我们需要理解QAP/Silktest选择菜单项的原理。它并不是真正的使用鼠标,而是用键盘来高亮菜单栏,然后使用箭头选择想要操作的菜单项。试试下面这个方法:首先将你的应用置于菜单被选中之前的状态,然后手工点击F10键或者Alt键看是否菜单被高亮了并且允许你使用箭头选择菜单项。我猜可能是由于某个childwin或者dialogbox真正拥有了焦点,从而没有把键盘事件传递给mainwin。如果是这种情况,你需要向开发人员说明他们必须解决这个问题,这样你才能够进行自动测试。一个小的技巧是设置一个YourProduct.Click()函数,强制将焦点交给mainwin,然后再进行菜单的选择。
 
Q9:silktest project
是什么?
A9:
一个silktest project是一个包含测试项目信息的文件集合。
 
Q10
如何建立一个新的silktest项目?
A10:
运行
silktest
选择基本工作流栏

点击打开项目。
选择新建项目。
在新建项目对话框中双击建立项目的图标。
在新建项目对话框中输入你的项目名字和你的项目描述。
点击OK
Silktest
将会在silktest项目目录下面新建一个子目录,然后在该子目录下存储新项目相关的所有文件。

Q11:silktest中有没有计算web页面上单词数量的函数?
A11
:你可以使用Clipboard函数。使用Ctrl+aCtrl+c,然后解析stringlist.

Q12:silktesttestplan是什么?
A12:silktest
testplan是一个提供软件测试过程框架的大纲,它为组织和管理你的测试需求提供了控制的重点。一个testplan由两个不同的部分组成:一个是大纲,它是测试需求的格式化描述,另一个是声明,被用来连接silktesttestplan脚本和实现测试需求的testcase

Q13:创建新的test脚本的最佳途径是什么?
A13:
在自动测试中,建立测试脚本包括最基本的两个步骤:
1
.为所有的testcase创建测试数据。
2
.为自动测试编写脚本。
第一步是分析了你的testcase需要哪些数据后的结果,这些数据被收集,脚本编写出来以后,测试数据才算准备完全了。
第二步是测试用例自动执行的基本步骤。


Q14
:如何得到buttoncaption?
A14:
答案1:使用GetCaption ()方法。
答案2:还可以使用sCaption属性。


Q14:
如何关闭不需要的窗口?
A14:
你是否意味着那些原窗口(定购状态)以外的一个或者多个浏览器窗口(定购请求)?
Answer1:
如果定购请求窗口是弹出式窗口,下面的代码将会关闭一个弹出式的激活状态的窗口。
[-] !(if Browser.ComboBox("#1").exists())
[ ] Browser.SetActive()
[ ] Browser.typekeys("")
Answer2:
如果订购请求窗口是一个非弹出式浏览器窗口,你可以使用下面的代码关闭不需要的的浏览器。
Order_Status.SetActive()
Browser.CloseOthers()

Q15:testplan文件里面的文本行有哪些类型?
A15:
一个testplan文件包括一些文本行,在其中有5种不同的文本行。
1.
注释-绿色标识,提供注释信息。
2.
组描述-黑色标识,提供一组测试的描述。Testplan里面的测试可以被组成多个级别的组。
3.
测试描述-蓝色标识,提供单个测试的描述
4.
测试计划语句-暗红色标识,提供到testcase,test data,下级testplan或者引用文件的相关链接。
5.
打开下级testplan文件的标记-洋红色表示,提供一个到下级testplan的相关链接。


Q16:testplan
的属性是什么?
A16
Testplan的属性是用户定义属性,它和测试组的描述相关联,或者和某个测试的描述相关联。你可以通过不同的属性值来搜索,标识和报告testcase


Q17:
默认的testplan的属性是什么?
A17:silktest
提供3种预定义的默认属性:
1.
种类: testcase或者testcase组的类型。例如,你可以使用这个属性将你的testcase组分为boudary value testsnavagation tests等种类。
2.
组件:被测试的应用的模块名。
3.
开发者:开发testcase或者testcase组的QA工程师的名字。

Q:如何维护恢复系统?
A
:在你的TestCaseExit()函数里面,你可以使用如下的代码:
If condition == 1
do this
If condition == 2
do that


Q18:
如何定义一个新的testplan属性?
A18:
1.
确定你的测试项目是打开的。
2.
点击Testplan/Define Attributes菜单,定义属性的对话框会被打开,你将看到3个预先定义好的默认属性Category, Component,Developer.
3.
点击新建按钮,新属性对话框将被打开。
4.
输入你的新属性,例如:Level,用来表示testcase的复杂程度。
5.
选择属性的类型:Normal, Edit,或者Set.
6.
点击确定。

 Q19:disabletextfield中得到文本。Silktest不能够识别disable的对象,我如何能解决这个问题。我有一个基于web的应用,在一个页面中有一个radio button。选择这个radio button可以打开一个applet窗口。现在如果我希望得到该窗口的定义,它一样会失败。Silktest被正确地配置成可识别基于javac\s结构应用。如何解决这个问题呢?
A19:
如果你希望从一个disabled textfield上得到数据,你首先需要disable Agent选项"OPT_VERIFY_ENABLED"然后你可以使用GetText。其步骤是:
Agent.SetOptions("OPT_VERIFY_ENABLED", false)
Print(TextField.GetText())
然后来回答你的下一个问题,答案是同样的,disable你的Agent选项,步骤如下:

1.
在选项菜单中,点击Agent菜单项。
2.
Agent窗口,点击Verification标签。
3.
取消所有的选项,保留最后一项,(verification of application ready)
4.
点击确定。

Q20.当调用java应用后(silktest可以启动我的java应用),然后将出现登录屏木,但是silktest报一个JavaMainWin无法找到的错误。为什么?现在我无法正确启动该程序调用然后执行另外一段代码,例如输入用户名和密码登录进应用。
A20:
答案1:
在调用一个应用之后,silktest将一直等待找到这个应用。在这样情况下,应用是你的java窗口。有时会出现在调用之后,silktest无法识别出,但是如果你手动调用,它却能够正常工作。
解决方法:
声明一个窗口变量使用start方法。这时你可以使用下面的代码:
JavaAppWindow.Invoke ()替换为
Window MyJavaApp
MyJavaApp.Start ("path of exe or batch file to invoke the application")
sleep (x) (x -->
合适的值)

答案2
window MainWin MyWin //
声明一个全局变量
main ()
try ()
testcase try () appstate none
MyWin.Start(sPath)

答案3
当你用start命令作为JavaMainWin的一部分时,保证你的类路径是独立运行的-silktest以外,这样它将会正常工作。

Q21:如何给testcase的属性赋值?
A21

1.
确定你的testplan处于打开状态。
2.
点击你准备赋属性值的testcase
3.
点击TestPlan/detail菜单,testplan详细对话框会出现。
4.
点击test attribute标签。
5.
点击组件域,下拉列表会出现所有组件的可选值。
6.
选择下拉列表中的值。
7.
点击确定。

Q22:关于关闭孩子窗口
A22:
答案1
1.
识别进程句柄
2.
关闭它的第一个孩子然后关闭MainWindow

答案2
Integer HWnd=Browser.GetHandle() ///
在孩子窗口弹出之前
....
下面是你的窗口
While Browser2.Exists()
{
If Browser.GetHandle()!=HWnd
Browser.Close()
Else
Browser2.SetActive()
}
你也可以在上面的代码中使用窗口的catpion

答案3
我想用来识别双亲和孩子的tag不唯一,这正是为什么双亲会被关闭的原因。可以试着使window ID唯一然后关闭页面。第一个激活孩子,然后关闭应该可以管用。

Q23:如何建立一个test frame
A23:
1.
确定你的浏览器被激活并且打开了你的web应用的首页。不要最小话web页窗口。
2.
确定你的测试项目处于打开状态。
3.
点击File/New菜单,一个新的对话框将会出现。
4.

TAG: SilkTest

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 11665
  • 日志数: 25
  • 图片数: 1
  • 书签数: 1
  • 建立时间: 2007-07-05
  • 更新时间: 2011-05-20

RSS订阅

Open Toolbar