ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

停止项目的GUI测试自动化的错误

2021-11-25 14:35:04  阅读:84  来源: 互联网

标签:Web GUI 手动 应用程序 测试 自动化


进行非原子测试

原子测试只检查一个函数。下面的示例使用 UI 来验证用户是否可以成功签出:

这个测试只有一个断言,所以它很可能是原子的。另一方面,下面的测试不是原子的。

可以看出它正在测试页面的负载,某些字段存在,用户可以登录,用户可以注销。多重断言也是一个非常致命的赠品。

离原子测试越远,从实际 GUI 自动化中获得的稳定性、效率和确定性就越低。(确定性系统是一种在系统未来状态的发展中不涉及随机性的系统。) 

每个 Web UI 交互都是出错的机会。无效的元素定位器、不正确的同步点或新页面更新只是可能导致失败的一些 Web 交互。因此,测试中的这些交互越多,测试就越不稳定。 

因此,自动化测试将变得效率低下,因为必须花费更多的时间来调试误报。考虑一个在 20 分钟内执行的自动化测试,而不是 20 秒。如果第一个测试在第 19 分钟失败,那么必须等待 19 分钟才能调试失败。如果失败比定位器更难,可以花一个小时找出失败的原因。

尝试将手动测试转换为自动化

任何尝试将手动测试套件转换为自动化测试套件的项目都会失败。这个想法和过程从根本上是有缺陷的。首先,不会以与执行手动测试相同的方式编写测试自动化代码。其次,并非所有手动测试都应该自动化,尤其是在GUI级别。

30 分钟的手动端到端流测试可能会发现应用程序中的大量不同错误,因为测试人员可以直观地发现不一致的行为。

另一方面,除了代码告诉自动化执行的验证之外,自动化从来没有,目前也无法找到任何错误。整个网页可能不会呈现,但如果 UI 自动化检查 URL 是否显示正确的字符串,那么该自动化将继续通过。

但是,解决方案不是将所有验证添加到单个测试中(参见上面的错误2)。解决方案是正确应用模拟和状态管理,使应用程序进入所需的配置。然后,验证 GUI 应用程序是否按预期运行。 

在此示例中,第26 行的SetCartState()将 JavaScript 注入 Web 应用程序,以便可以设置应用程序的所需状态,并将用户和一些项目注入购物车。最终,这允许验证用户是否可以通过 GUI 正确执行结帐流程。

尝试通过 Web UI 执行更多操作将无法进行原子测试,并会导致错误2中提到的所有问题。因此,编码测试自动化与执行手动测试用例是一个根本不同的过程。

标签:Web,GUI,手动,应用程序,测试,自动化
来源: https://blog.csdn.net/spasvo_dr/article/details/121536838

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有