软件测试自动化实现的两个难点-功能分解和对象识别

发表于:2007-9-17 13:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Holly zhao    来源:Holly zhao的博客

  1.优点

  1)模块化的设计,避免了重复的脚本,减少建立和维护脚本的成本

  2)在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当软件功能变动时,只需要修改业务功能脚本

  3)由于应用软件的功能被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测试个案

  4)测试输入数据和验证数据与脚本分开,存储在另外的文件中,如纯文字文件或EXCEL文件,测试人员可以更容易的修改和维护

  5)通过判断Action回传值是True或False,可以做错误处理,让脚本更有弹性

  2.缺点

  1)在编写业务功能脚本时,需要精通测试工具脚本语言的工程师

  2)每个Action都有自己的输入输出参数,需要用文档统一维护,控制变更

  3)测试人员除了要维护测试计划之外,还要另外维护数据文件

  4)对测试工具及脚本来说,使用数据文件可能也要注意数据文件的格式

  3.测试自动化实现的两个技术难点

  设计 – 功能分解

  实现 – 对象的识别

  1)测试自动化实现的两个难点 – 功能分解

  - 业务功能分解的原则和方法

  - 清晰画出业务流程图

  - 根据业务流程分解业务功能,可以被复用的功能也要被分解出来

  - 按照路径覆盖的思想,组织测试用例

  2)测试自动化实现的两个难点 – 对象的识别

  对比静态Web对象的识别
                                                                                                                       
序号Web对象推荐识别属性方法
1BrowsercreationTime 
2Pageindex 
3Framename 
4WebTablename 
5WebEditnameSet
6WebButtontextClick
7WebListnameSelect
8LinktextClick
9Imagename 
10WebCheckBoxname 
11WebRadioGroupname 
12WebElementinnertext/html tag 
13Dialogtext 
14WinButtontext 

  示例:

  A.静态Web对象的识别

  Browser(“CreationTime:=0”).Page(“index:=0”).WebEdit(“name:=amount”).Set “200”

  在第一个被创建的IE窗口,查找name属性为amount的输入框,输入数据200

  Browser(“CreationTime:=1”).Page(“index:=0”).WebButton(“text:=保存”).Click

  在第二个被创建的IE窗口,查找按钮,该按钮上显示的文字是保存,点击该按钮

  B.动态Web对象的识别

  GetToProperty、GetRoProperty、GetRoProPerties

  假设在对象库中有一个对象”窗口A”,用于识别对象的属性有两个

  一个属性是”text”,在库中记录的值是”AAAA”

  一个属性是”name”,库中记录的值是”BBBB”

  在实际运行脚本时,属性”text”的值是”CCCC”而不是”AAAA”

  那么:

  Window(“窗口A”).GetToProperty(“text”)的返回值是”AAAA”

  Window(“窗口A”).GetRoProperty(“text”)的返回值是”CCCC”

  Window(“窗口A”).GetToProperties的返回值是用于识别”窗口A”的两个属性和值的集合

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号