发布信息

Google·您在微软的Office365团队工作多久了?

作者:软荐小编      2023-11-27 09:05:48     121

全文共3201字,预计学习时间9分钟。

软件自动化测试_自动化软件测试工具_软件测试之自动化测试

来源:谷歌

最近,我采访了微软的高级软件工程师 Klaus Hemstitch。 Klaus Hemstitch 过去七年一直在 Microsoft Office 365 团队工作。 他的团队每天都会确保所有 Web 组件在每个主要浏览器中都能正常工作。 我很想知道他们在构建可扩展且有益的自动化测试时如何解决这些困难的任务。

· 您在微软工作多久了? 你以前在哪里工作?

我从 2013 年开始在 Microsoft 工作软件自动化测试,之前在 Adob​​e 工作了 3 年。

· 您目前的工作职责是什么?

我们的团队负责Office365中大部分网络组件的功能自动化测试。

· 这些任务中最大的挑战是什么?

最大的挑战无疑是跨浏览器测试。 我们确保一切完美无缺,并在 Chrome、Firefox、Safari、Opera、Internet Explorer、Edge 和移动浏览器上正常运行。

· 为什么还支持IE浏览器? 和以前一样吗?

我们将于 2021 年 8 月 17 日正式停止支持 IE 浏览器。但这并不意味着我们会停止对其进行测试,因为我们应该是第一个知道它出了什么问题的人。 许多企业仍在使用 Internet Explorer,并将继续使用多年。 许多遗留系统依赖于Internet Explorer,有些公司甚至不允许员工使用其他浏览器。

自动化软件测试工具_软件测试之自动化测试_软件自动化测试

来源:谷歌

· 您对用于测试的无头浏览器有何看法?

使用无头浏览器绝对是一种不好的做法软件自动化测试,因为与常规浏览器相比,它在某些情况下的行为往往略有不同。 我们一直在 Windows 和 Mac 机器以及移动设备上使用真正的浏览器。

收到有关产品缺陷的报告并得到回复说“等一下,我会先手动检查一下,因为我们的脚本使用无头版本的 Chrome”,这会很尴尬。

· 您会使用 Selenium 还是 Playwright?

两者都不使用。 我们将采取不同的解决方案。 如果你 5 年前问我,我可能会选择 Selenium,但情况在不断变化。 使用 Selenium 构建内部测试框架意味着重新创建wheel文件,这会导致投资回报率很低。

· 您能告诉我们解决方案是什么吗? 这是保密的吗?

毫无秘密,我们将使用 Endtest。

· 为什么使用Endtest?

一年前我们进行了全面的分析,涵盖了易用性、灵活性、协调性、跨浏览器功能、ROI、可靠性等方面。完成POC并计算数据后,我们清楚地知道什么使用。 到目前为止,一切都很好。 这似乎是目前唯一允许自然进行跨浏览器测试的解决方案。

我们可以直接创建测试并在所有浏览器上运行它们,而不需要像 Selenium 这样的额外调整。 我喜欢它的另一个原因是它可以用来测试电子邮件、短信、PDF 文件和 API 请求。

· Endtest 是一个无代码工具,这不会降低灵活性吗?

并不真地。 这可能是 2000 年代初的旧测试记录仪造成的误解。 自动化测试需要变量、if 语句、循环、可重用组件等。Endtest 拥有这些,并且与许多脚本语言一样灵活。 灵活性很重要,但在选择语言或工具时并不是最重要的。 如果这才是最重要的,我们现在可能仍在编写机器代码。

自动化软件测试工具_软件测试之自动化测试_软件自动化测试

微软公司总部

· 您每天进行多少次测试?

这里我只统计功能测试。 这取决于几个因素以及我们有多少提交,可能每天至少几千次。

· 让我们回顾一下。 为什么不用剧作家?

我知道你为什么问我这个问题,因为Playwright是微软开发的。 有几个原因。

剧作家就像一个网络图书馆,它可以为我们提供砖块,但我们仍然要建造自己的房子。 所有这些“创造”都需要时间和资源。 我们认为开发人员应该把时间花在开发公司销售的产品上,而不是开发内部工具。 而且它的内部测试框架会让投资回报率非常糟糕。

· 为什么投资回报率对于自动化测试很重要?

投资回报率 (ROI) 在任何事情上都很重要。 几年前,团队用于自动化测试的工具或网络库是由一小群人决定的。 他们不计算执行成本或类似的东西,他们只是说,“哦,这看起来很酷,让我们使用它吧。”

这是一个可怕的趋势,催生了一支像弗兰肯斯坦一样的自动化工程师大军,他们构建了过于复杂且不可靠的内部测试框架。 这些框架始终处于“差不多”的状态,没有太大的价值。 一些工程师对他们的工作非常防御,以至于他们会扭曲所有逻辑,只是为了防止项目被放弃。

随着越来越多的人参与这些决策,并且最佳实践和真正的项目管理已应用于这些自动化工作,情况已经发生了变化。

如果这个概念很难理解,让我们看一个例子:哪个选项更有意义? 使用 Zoom 等视频会议工具,或使用 WebRTC 从头开始​​构建内部视频会议工具。

WebRTC 是开源且免费的,但构建内部视频会议工具需要数月时间,这给雇主带来了巨额费用。 就像我之前说过的,重建wheel文件会带来很差的投资回报率。

· 可访问性有多重要?

我们一直觉得这很重要,但我觉得很多公司并没有认真对待它。 这种情况应该会在不久的将来发生改变,我希望类似于 GDPR 的无障碍立法能够得到广泛应用。 开发人员需要理解它的含义。 将 title 属性添加到元素可以使您的网站与屏幕阅读器兼容,但如果不在所有主要浏览器上进行测试,您网站的可访问性分数将会被破坏。

虽然有视觉障碍的用户可以访问该网站,但使用 Firefox、Safari 或 Edge 的用户将无法访问该网站,因为该网站仅在 Chrome 中进行测试。 准确的定义如下:可访问性是指让尽可能多的人可以使用您的网站。

软件自动化测试_软件测试之自动化测试_自动化软件测试工具

图片来源:unsplash

· 您会围绕更新进行测试吗?

幸运的是我们有足够的资源,不需要使用这种方法。 我们一直在测试一切。 但对于没有资源始终支持完全恢复的团队来说,围绕更新进行测试是一种可以接受的技术。

· 您对测试趋势有何看法?

这取决于趋势是什么。 我见过由营销预算驱动的不良趋势,它们将缺陷伪装成良好实践,这简直就是噩梦。

首先想到的一个例子是一家公司,该公司创建了一款用于自动化测试的产品,该产品的架构非常糟糕,甚至无法同时打开多个浏览器选项卡。 这主要是因为它过于依赖Javascript。 我们都知道,当Javascript想要打开另一个浏览器选项卡时,原来的浏览器会抵制。

他们掩盖了这个缺陷,说我们不需要测试链接是否真的在新的浏览器选项卡中打开页面,因为这实际上是在测试浏览器而不是网站。 他们说只需要检测target=“_blank”的属性。 按照这个扭曲的逻辑,测试只需要检测鼠标点击动作是否能够完成,而不需要任何点击操作。

我还看到了另一个工具,它通过在 Chrome 上测试网站、在每一步获取 DOM,并将这些 DOM 转储粘贴到其他浏览器中来实现跨浏览器测试的想法。 我不明白为什么有人会想出这么糟糕的主意。 我希望可访问性能够在不久的将来成为一种趋势。

· 您对寻求改进功能自动化测试的团队有什么建议吗?

跨浏览器测试很重要,并不是每个人都会在苹果笔记本电脑上使用 Chrome。 浏览器不仅仅是一个 Javascript 解释器。 无头浏览器的操作方式可能与常规浏览器不同。

Chrome 在 Linux 系统和 Windows 系统上的运行方式也可能有所不同。 测试整个工作流程。 如果您的网站在执行操作时正在发送电子邮件,请验证电子邮件是否正常发送。 如果该电子邮件有一个按钮,请单击它并查看它重定向到哪个页面。

只有傻瓜才会使用最新的工具重新创建轮子文件。

软件自动化测试_软件测试之自动化测试_自动化软件测试工具

相关内容 查看全部