实际桌面和/或Web应用程序的自动GUI测试



这不是一个问题,而是关于在现实世界中使用自动GUI测试的最佳实践的讨论三个按钮和复杂性超出计算两个数字并在TEXBOX中显示结果)。

我搜索了有关现实世界应用程序自动化GUI测试的动手经验。大多数文章都提供了非常有限的示例(即测试简单的计算器式应用程序),这些示例对于在具有100k loc的应用程序上跳到启动自动GUI测试并不有用。

实施自动GUI测试时,我不想犯初学者错误,所以我问您:

  • 进行自动GUI测试时,您的实践是什么?
  • 您使用什么工具,为什么?
  • 您如何处理复杂的执行路径?
  • ...

要变得更具体,让我用更多细节来描述情况:我们有C#编写的100K LOC项目。这是一个Windows应用程序,并与硬件进行交互(通过不同的通信协议各种测量单元)。我们对"一般"功能(库等)进行了单元测试 - 独立的特征,可以隔离进行测试。由于使用真实硬件的局限性,我们无法以自动化的方式测试所有内容(投资太高) - 但是我们至少可以自动化一半的测试人员正在手动做的工作。我想"转换"我们的一些测试人员来管理自动化的UI测试。我们的测试人员的编程技能有限,因此我们案例的最佳工作流程是记录UI测试或使用一些简化的编程方法。UI测试的未来维护应由测试人员进行(与程序员进行维护的单位测试相比)。

  • 该应用程序使用SQLite数据库存储其配置和数据。
  • 必须针对不同的测试数据集进行测试。如何/在哪里存储数据?
  • 在使用下一组测试数据之前,必须使用多组测试数据时,必须实现"安全"状态 - 我们100%确定的状态,应用程序还可以。您是否更喜欢重新启动应用程序或编程性地恢复您的测试所做的更改?一个示例是在每次测试或登录一次的登录中登录 - 连续进行多个测试?
  • 所有测试都应在混合环境(虚拟和物理)中的不同Windows OS平台(Win7/Win8,X86/X64)上进行。
  • 您如何运行组件的UI测试?您是否制作简单的测试程序并使用此程序进行UI测试?也许还有其他?

进行自动GUI测试时您的实践是什么?

  • 记录页面
  • 自动生成方法,因此我可以更新页面轻松

避免尽可能地。我目前正在使用MVC进行单元测试。建立一种轻松更新页面的方法。您使用什么工具,为什么?

  1. SpecFlow-用于工作流程测试
  2. t4-用于从页面生成方法
  3. 硒 - 用于交叉浏览器测试
  4. Cuite-扩展编码的UI测试和录制

您如何处理复杂的执行路径?

  1. 具有MVC等体系结构模式
  2. 模型:UI控件的页面映射
  3. 查看(导航):如何导航到页面并满足预先条件和触发器
  4. 控制器:调用导航和模型的测试方法

后续问题:

  • 您将多久维护这些编码的UI测试?
  • 谁将维护这些测试?
  • 请详细说明"安全状态",类型,线程?
  • 您将如何处理页面加载?
  • 您要进行交叉浏览器测试吗?
  • 您要在多个环境中测试吗?
  • 您要使用多个测试剂进行测试?
  • 您将如何生成测试数据?
  • 您将如何存储测试数据?
  • 您是否有单位测试?
  • 您是在进行手动测试吗?

最新更新