分层测试系列文章
https://www.cnblogs.com/yuxiuyan/tag/分层测试/
1. 什么是UI测试
UI测试是通过测试产品的视觉元素来验证产品功能和性能的测试技术。
视觉元素的范围很广,包括一切可视化的组件,比如图标、按钮、文本框、颜色、字体、选择框、窗口、菜单等等。
UI测试主要关注产品的功能、可用性、视觉性,也就是用户关心的部分,确保程序成功运行。
注意:当分层测试的其他层次不完备的时候,最好不要考虑使用UI测试,在业务实践来看,准确率很难达标,严重影响开发人员对测试人员信心。
2. UI测试的类型
2.1 手工测试
手工测试由人工测试人员执行,他们根据一组测试用例来评估程序的界面。手工测试十分耗时,而且覆盖率较低。尤其是当涉及到跨设备、跨浏览器、跨环境等测试的时候,很依赖于测试人员的技术素质和业务素质。
2.2 基于录制回放的测试
录制和回放 UI 测试使用自动化软件,通常需要有限的编码技能或不需要编码技能即可实施。该软件首先记录测试人员执行的一组操作,然后将它们保存为测试,可以根据需要重放并与预期结果进行比较。Selenium IDE是业界比较出名的一个记录和回放工具。
2.3 基于模型的测试
这类测试可以将程序运行期间经历的状态通过图结构表示出来。这里是一个工具的例子:基于模型的自动化测试工具:GraphWalker 。
在一个最简单的形式中,需要包含以下步骤:
- 构建该系统模型
- 确认输入
- 了解预期输出
- 执行测试并断言结果
3. UI测试的模型
4. UI测试的挑战
- UI变动频繁:应用程序界面经常被重新设计以提供新的功能。当频繁出现改进时,严格的 UI 测试变得困难。
- 运行环境复杂:现代应用程序包括嵌入式框架、复杂的流程图、地图、信息图表和其他数字组件。它增加了 UI 测试的挑战。
- 运行时间太长: 创建有效的 UI 测试用例并运行它们可能需要很长时间,尤其是在测试人员没有使用正确的 UI 测试工具的情况下。
- 维护成本很高:在短时间内执行许多 UI 测试时,测试人员会花费大量精力创建测试脚本。在这些情况下,解决测试期间的问题变得棘手。
- 投入产出难度量:测试随着用户界面的变化而变化。因此,UI 测试需要更长的时间,从而延迟交付。最终,很难估计持续运行 UI 测试的 ROI。
5. UI测试的最佳实践
开发人员和测试人员可以遵循一些最佳实践做法,来减少UI 测试的问题。
- 限制UI测试用例数量: 使用共享存储库是减少测试维护及其相关成本的一种方法。在第一个测试阶段限制 UI 测试用例的数量也是一个好方法,逐渐增加覆盖范围。
- 采用无代码方案:为了消除重复更改测试代码的麻烦,开发人员和 QA 团队应该采用无代码自动化解决方案。
- 进行团队自动化教育:组织的编码文化会显着影响团队在软件开发周期中如何有效地管理测试挑战。由于整个组织都需要特定的代码审查或更改标准,因此他们还可以专注于对团队进行最佳自动化测试实践的教育。
- 良好的工具选型: 如果没有合适的自动化 UI 测试工具,测试人员将不得不手动测试用户界面,这既费时又费力。因此,选择一个合适的工具就十分重要。