var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2011年10月24日

    Android 自动化测试用例规范

    分类:

    这是我一个月前完成的规范。
    目的:指导没接触过界面自动化的开发快速上手,不偏离正轨。不是自动化编码规范。

    根据当前XX自动化开发的现状,特制订此规范。

    安装/卸载测试用例

    1. 当安装应用程序测试用例启动时,如果应用程序已被安装,首先执行卸载应用程序
    2. 安装应用程序使用配置文件中设定的程序路径
    3. 验证应用程序被安装,验证应用程序版本号
    4. 验证应用程序被完全卸载,还需要验证主屏无该应用程序快捷方式

    通用测试用例规范

    1. 测试用例名同测试用例的编号。
    2. 每个测试用例粒度必须尽可能小,短小简单的测试用例易于调试。如果测试用例不得不长而复杂,则把它分成两个或更多的私有方法,并单独调用这些方法。尽量把重复任务放入一个方法中,这样它可以被多个测试用例调用。
    3. 所有的测试用例必须作为一个独立的测试用例运行,每个独立的测试用例负责自己的初始化和清理任务:
      • 测试用例在setUp方法中构建该测试用例所需环境即前置条件,在tearDown方法中清理环境即该测试用例的后置条件,以实现测试用例间不相互依赖
    4. 测试用例需要记录操作步骤。
    5. 测试用例执行出错要截图,从日志查看错误能一目了然。
    6. 测试用例要有合适的验证点,符合测试用例的期待结果。验证用是否存在的方法,如文件存在。
    7. 测试用例只要不匹配预设的验证点,即使该测试用例还有未执行完的代码也要中断下面的执行,抛出合适的异常并提供详细的失败信息,然后设置该测试用例运行结果为失败
    8. 测试用例要尽量处理所有的异常以健壮,对已知应用的程序的bug在处理的同时需要在代码注释中附上禅道上的bug库名和号。
    9. 测试用例要支持横屏和竖屏。
    10. 测试用例要能无人值守运行,即用户传递给测试程序若干必要的参数,自动化测试就会开始运行。
    11. 测试用例要调用的文件要保存在文件夹\datafile内,跟自动化程序同目录。
    12. 安装/启动/卸载测试用例失败后,设置其它所有测试用例执行失败并输出到日志。
    13. 除安装/卸载测试用例,每个测试用例要判断SD卡是否存在,如果不存在则需要设置该测试用例执行失败。
  • 2011年03月31日

    java SWT支持 MSAA

    分类:

    前文Swing为例子,用基于Win32Spy工具验证那个应用程序不能识别,所以下了那个莽撞的结论。

     

    我们都知道SWT支持IA2,但white支持SWT,于是下载其3.6.2 Windows版本,在其源码中发现:

    src\org\eclipse\swt\accessibility\Accessible.java中的一条注释

    /*

                   * Even though the IA2 spec says "AT's should not rely on IA inheritance",

                   * some AT's do rely on it, so we need to implement the IAccessible methods here.

                   */

    src\com.cIAccessible进行了原生封装。

     

    所以java SWT支持MSAA,于是也支持UIA,当然Java SWT程序必须得实现易用性

  • 2011年03月26日

    WatiN 界面测试jQuery 中的Ajax调用

    分类:

    Synchronizing WatiN and Ajax with jQuery提出一个新思路以解决网站使用jQuery调用Ajax的测试:在源文件(.js或者主页)中对ajaxStartajaxStop添加一个标志,在全局Ajax调用开始时设置该bool值为false,全局Ajax结束时设置该bool值为true

     

    此文后回复2说此解决方案在服务器上运行失败源于Ajax请求未完成。文jquery::ajaxStop() versus jquery::ajaxComplete()中的最后一个答复说道假设请求B比请求A5秒当网络慢时可能请求B比请求A返回早,此时请求A返回即触发ajaxComplete事件,至此可知失败原因跟前端未能正确使用jQueryAjax Api有关。

     

    How to use WatiN with NUnit in a C# environment with Asp.NET MVC提出让WatiN支持以CSS选择器查找页面元素的方法,目前在WatiN源码Core\Constraints\QuerySelectorConstraint.cs即约束类中实现,在UnitTests\AttributeConstraintTests\FindBySelectorTests.cs中有调用约束示例。对于JavaScript脚本调用在Core\Document.cs public virtual string Eval(string javaScriptCode)中实现。

  • 2011年02月24日

    浏览器对ARIA role的支持

    分类:

    MSIE

    Comparison of ARIA roles exposed via MSAA and UI Automation in IE9

    Comparison of ARIA roles exposed via MSAA and UI Automation in IE8

     

    Apple Safari

    Safari Supported Accessibility Roles

  • 2010年09月16日

    显示IE9 状态栏

    分类:

    IE9 Beta今天正式发布,其新功能演示见Beauty of the Web,从这里下载多语言版本。

     

    安装IE9 Beta之后,第一印象是状态栏不见了,网上提供了手工使其显示的方法,但对界面自动化开发来讲,有时需要借助状态栏以判断网页是否加载完成,于是需要一种编程实现的方法以方便地对IE9进行操控。下面给出C#语言演示代码: