谁写自动UI测试?开发人员或测试人员?

Ori*_*rds 12 automated-tests ui-testing regression-testing

我们正处于一个大型项目的初始阶段,并且已经决定某种形式的自动化UI测试可能对我们有用,但还没有确切地说明它是如何工作的......

主要目标是自动执行应用程序的基本安装和运行,因此如果开发人员导致严重破坏(例如:app将无法安装,网络将无法连接,窗口将无法显示等)测试人员不必浪费时间(并且烦恼)安装和配置损坏的构建

第二个目标是在处理重复性任务时帮助测试人员.

我的问题是:谁应该创建这些类型的测试?我们团队中隐含的假设是测试人员会这样做,但我在网上读到的所有内容似乎总是暗示开发人员会创建它们,作为一种"扩展单元测试".

一些想法:

  • 开发人员似乎处于更好的位置,因为他们知道控件ID,类等,并且可以更好地了解应用程序的工作方式

  • 测试人员的优势在于不知道应用程序是如何工作的,因此可以生成可能更有用的测试

  • 我用IronRubyWhite编写了一些初始脚本.这非常有效,并且足够强大,可以完成任何事情,但是你需要能够编写代码来编写UI测试

  • 我们尝试过的所有自动化UI测试工具(TestComplete等)似乎都非常复杂和脆弱,虽然测试人员可以使用它们,但它们需要大约100倍的时间并且它们不断遇到"意外复杂性"由UI测试工具引起的.

  • 我们的测试人员无法编写代码,虽然他们非常聪明,但当我建议测试人员可能编写简单的ruby脚本时,我所得到的都是有趣的(尽管所说的脚本比读取和编写的脚本容易大约100倍.按钮和数据网格似乎是自动UI测试工具的标准).

我非常感谢在开发人员和测试人员团队中尝试过UI自动化的其他人的反馈.谁做了什么,并且做得好吗?提前致谢!

编辑:有问题的应用程序是一个C#WPF"富客户端"应用程序,它使用WCF连接到服务器

Jon*_*Jon 4

理想情况下,最终应该由 QA 来编写测试。使用程序化解决方案的问题是让 QA 人员加快使用该工具所涉及的学习曲线。开发人员当然可以帮助解决这个学习曲线,并通过指导来帮助这个过程,但这仍然需要时间,并且会拖累开发。

另一种方法是使用一个简单的 GUI 工具,它支持一种语言(和数据脚本),并使 QA 能够直观地构建脚本,仅在真正必要时才深入研究该语言的更详细的细节 - 开发也可以参与其中。

我见过的最成功的尝试肯定是后者,但设置它是困难的部分。Selenium 非常适合简单的 Web 应用程序和应用程序中的简单线程。JMeter(用于 Web 服务的脚本化 Web 对话)也运行良好...另一个选择是内部构建的测试工具 - 一个基于脚本语言(Groovy、Python、Ruby)的简单工具,允许 QA通过 GUI 或数据文件将测试数据放入应用程序中。数据文件可以是简单的属性文件,或者在更复杂的情况下是结构化的(例如 YAML 甚至 Excel)数据文件。这样他们就可以构建基本的冒烟测试来开始,然后将其扩展到各种场景驱动的测试中。

最后...我认为以这种方式测试富客户端应用程序要困难得多,但这取决于语言的性质和您可用的工具...