首页 / 知识
用户界面测试
2023-04-14 01:42:00

User Interface Testing我们正在处理一个具有新的或经过修改的GUI功能的大型项目。 过去我们发现,添加新功能时,经常在相关代码中引入新问题。 我们有非技术用户来执行测试,但是他们经常会漏掉零件并让漏洞漏出。
我的问题: 谢谢! 有一些GUI测试工具可以为您单击按钮和其他东西,但是根据我的经验,它们非常脆弱。 最好的办法是使UI层尽可能薄。最佳情况下,事件处理程序类应仅是一两行,以调出其他可测试的类。这样,您可以在单元测试中测试您的业务逻辑,而无需实际单击按钮。 您可以使用White框架自动进行GUI测试。 还可以考虑使用TDD友好的设计,即使用MVP / MVC模式。 我强烈建议您阅读Microsoft模式和实践团队的文档。 特别是看看Composite UI应用程序块和CompositeWPF。 这些项目专门为您提供GUI应用程序开发的最佳实践,包括测试驱动的UI。 保持GUI层尽可能薄。迈克尔·费瑟斯(Michael Feathers)的文章"谦虚对话框"是经典著作。另请参阅马丁·福勒的被动观点。我还听说"自动按钮单击器"非常脆弱,与维护代码相比,花费更多的时间维护测试是容易的。 如果有人发现此功能有用: 在Wikipedia上找到的GUI测试工具列表。 我发现这种快速而肮脏的方法可以在各种浏览器中测试网页布局。它称为browsershots.org。我们的客户目前需要5种浏览器的支持,而完整的回归测试大约需要一周的时间。此服务将提供70多种浏览器和版本的屏幕截图。我将它们打印出来,然后抬起页面。如果他们不排队,那么肯定存在布局问题。 从开放式解决方案(如White)到昂贵的商业解决方案(如HP QuickTest Pro),可以使用许多工具和库来自动化WinForms测试。如果要滚动自己的自动化框架,.NET中也有UIAutomation命名空间。但是,自动化的真正成本在于实施所需的时间和专业技能。可维护性也是自动化测试设计最重要的方面之一。您不想花费过多的资源来使自动化资产与您的应用程序保持同步。还有许多因素会影响自动化决策,这将取决于您的特定应用程序和组织。 最好的选择是对该主题进行更多研究,并查看一些专门的测试站点,例如http://www.sqaforums.com。
本书是对该主题的介绍。 http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby 如何组织UI测试取决于您如何设计测试用例。 在单元测试级别自动执行Windows Forms应用程序可以使用TDD框架,例如NUnit。或使用BDD框架,例如NSpec。 在功能测试级别自动执行Windows Forms应用程序可以使用White,CodedUI,甚至可以直接使用Windows Automation API 3.0(UI Automation和MSAA)。 由于上述所有这些东西都是技术而不是解决方案,因此在开始编写自动化测试之前,最好基于这些技术构建一些基本的测试自动化/脚本框架。 现在可用的新方法是通过称为win32-autogui的Ruby gem使用Ruby。这提供了用于测试Windows GUI应用程序的框架。将它与Ruby工具RSpec和Cucumber结合使用,就可以构成一个功能强大的测试框架。 几年前,我使用了类似于该产品(http://www.tethyssolutions.com/product.htm)和该产品(http://www.mjtnet.com/macro_scheduler.htm)的试用版下载,我对此感到满意结果。这些是非常便宜的解决方案,其中一些宏记录器产品实际上可以用于自动化测试。 我不能真正为组织或最佳实践提供帮助,但是NUnit扩展似乎可用于表单测试NUnitForms。 |
最新内容
相关内容
linux命令创建项目组?
linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文件夹,linux命令中用root用户新建一个user1用户,新建一个group1的组linux命令发现不了?
linux命令发现不了?,软件,系统,发行,工具,名称,不了,命令,地方,代理,信息,linux命令中的makewhatis命令,使用的时候提示未发现命令,怎搞好?_百linux修改为中文命令?
linux修改为中文命令?,系统,设备,工具,电脑,底部,管理,中文,命令,虚拟机,字符集,linux系统怎么改成中文版的改变默认语言设置通常是通过更改系linux修改路由命令?
linux修改路由命令?,产品,网络,管理,系统,技术,经理,环境,数据,培训,设备,linux下如何删除静态路由条目/或者静态路由的文件在哪个目录下面?_linux时间命令修改?
linux时间命令修改?,时间,系统,信息,命令,大陆,国家,终端,时分,时区,日期,linux修改系统时间命令1、首先输入date的时候,系统输出的是linux的当查看修改linux命令?
查看修改linux命令?,时间,系统,信息,名称,命令,指令,文件夹,感叹号,文件大小,文件属性,Linux下如何查看一个目录下的内容并按照修改时间升序?1复制项目的linux命令?
复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功能,在Linux操作系统中复制文件或目录时使用的命令是()。1、在Linuxlinux路由表修改命令?
linux路由表修改命令?,网络,系统,地址,信息,数据,通信,发行,命令,文件,终端,如何理解ip路由和操作linux的路由表【答案】:简:路由表是用来决定如linux修改地址命令?
linux修改地址命令?,地址,系统,代码,网络,服务,信息,密码,命令,管理,基础,linux设置ip地址?打开Linux终端系统,然后在系统中输入如下代码。然后linux命令项目部署?
linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎么把php部署到apache服务器上linux?1、在linux部署php项目的方法:修改主机名命令linux?
修改主机名命令linux?,系统,地址,服务,主机名,网络,情况,名称,查询系统,异常,观察,linux(CentOS7)下如何永久修改主机名1、Centos7修改主机名linux修改账户的命令?
linux修改账户的命令?,密码,系统,状态,名称,信息,用户,命令,位置,软件,管理,Linux修改用户密码的命令是什么?命令:passwd [-k] [-l] [-u [-f]]