• 0
  • 0
分享
  • 与微软高级软件工程师的对话:如何进行自动化测试?——软件测试圈
  • 曼倩诙谐 2022-11-22 11:16:47 字数 3140 阅读 1243 收藏 0

  有一份51Testing测试行业调查问卷需要您的助力,差不多三分钟的时间即可填完。我们给您准备了一份价值398元的测试课程作为礼品,感谢您的帮忙~链接:http://vote.51testing.com/


  最近,我与微软的高级软件工程师KlausHemstitch进行了交谈。过去7年里,Klaus Hemstitch一直在微软的Office 365团队工作。每天他的团队要确保所有的网络组件能在每个主流浏览器上正常工作。我很想知道在构建可扩展且有益的自动化测试时,他们如何解决那些困难的任务。

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

  我从2013年开始在微软工作,之前在奥多比(Adobe)工作了3年。

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

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

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

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

  · 你们为什么还支持IE浏览器?它和原来一样吗?

  我们将于2021年8月17日正式停止支持IE浏览器。但这并不意味着我们将停止对它的测试,因为我们应该最先知道它哪里出了问题。很多企业仍在使用IE浏览器,并且会继续使用很多年。许多遗留系统依赖IE浏览器,甚至有些企业不允许员工使用其他浏览器。

  · 您如何看待测试用的无头浏览器?

  使用无头浏览器无疑是一种糟糕的做法,因为与常规浏览器相比,它在某些情况下的运行往往略有不同。我们一直在安装Windows和Mac的机器和移动设备上使用真正的浏览器。

  当收到一份关于产品缺陷的报告时,如果回复说“等等,我先手动检查一下,因为我们的脚本使用的是无头版本的Chrome。”那是很尴尬的。

  · 您会使用Selenium还是Playwright?

  都不使用。我们会采取不一样的解决方法。如果你在5年前问我,我可能会选择Selenium,但事物总在不断变化。使用Selenium来构建内部测试框架意味着要重造wheel文件,这会使ROI很糟糕。

  · 可以告诉我们这个解决方法是什么吗?这是机密吗?

  不是机密,我们会使用Endtest。

  · 为什么使用Endtest?

  一年前我们做了一个全面的分析,内容涵盖了易用性、灵活性、协调性、跨浏览器功能、ROI、可靠性等方面。完成POCs并计算完数据之后,我们就很明确应该使用什么。到目前为止一切都很好。这似乎是目前唯一的解决方案,可以自然地进行跨浏览器测试。

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

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

  并不会。这可能是21世纪初的旧测试记录仪导致的错误观念。自动化测试需要变量,if语句,循环以及可重用组件等。这些Endtest都有,它和许多脚本语言一样灵活。选择语言或工具时,灵活性固然很重要,但并不是最重要的。如果这是最重要的,那我们现在可能还在写机器代码。

  · 你们每天进行多少次测试?

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

  · 我们往回聊一聊。你们为什么不使用Playwright呢?

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

  Playwright相当于一个网络程序库,好比它可以给我们提供砖头,但我们仍然要自己建房子。所有这些“创建”都需要时间和资源。我们认为开发人员应该把时间花在开发公司销售的产品上,而不是花在开发内部工具上。而且它的内部测试框架会使ROI非常糟糕。

  · 为什么ROI对自动化测试非常重要?

  投资回报率(ROI)对任何事物来说都很重要。几年前团队自动化测试所使用的工具或网络程序库是由一小部分人决定的。他们不会去计算执行成本之类的东西,只会说“噢,这个看起来很酷,我们就用它吧。”

  这是一个可怕的趋势,它催生了大量科学怪人般的自动化工程师,构建了过于复杂和不可靠的内部测试框架。这些框架总是处于“差不多”的状态,没有太大的价值。有些工程师在工作上戒心很重,他们会扭曲所有的逻辑只为防止项目被抛弃。

  如今这样的情况已经改变了,越来越多的人参与到这些决策中,最佳实践和真正的项目管理已经应用到这些自动化工作中。

  如果这个概念难以理解,那我们来看一个例子:哪种选择更有意义?使用像Zoom这样的视频会议工具,或者使用WebRTC从头开始构建一个内部视频会议工具。

  WebRTC是开源且免费的,但是构建内部视频会议工具需要数月,这会给雇主带来巨额支出。就像我前面说的,重造wheel文件会带来糟糕的ROI。

  · 无障碍可访问性有多重要?

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

  虽然有视觉障碍的用户可以使用该网站,但由于只在Chrome进行测试,使用Firefox、 Safari 或 Edge的用户就无法访问了。准确的定义如下:无障碍可访问性是指让尽可能多的人能够使用你的网站。

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

  万幸我们有足够的资源,不需要使用这种方法。我们每时每刻都在测试所有的内容。但对于没有资源可以支持时刻完全复原的团队来说,围绕更新进行测试是一个可以接受的技巧。

  · 您如何看待测试趋势?

  这取决于是什么趋势。我曾见过营销预算推动下的糟糕趋势,将缺陷伪装成良好的实践,这简直是噩梦般的东西。

  我脑海中最先想到的一个例子是,有一家公司创建了一个用于自动化测试的产品,它的架构非常糟糕,甚至不能同时打开多个浏览器标签。这主要是因为它过于依赖JavaScript。我们都知道,当JavaScript想要打开另一个浏览器标签时,原本的浏览器会产生抵触。

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

  我还见过另一个工具,它通过在Chrome上测试网站,在每个步骤获得DOM,并将这些DOM转储粘贴到其他浏览器中来实施跨浏览器测试的想法。我不明白为什么会有人想出这么可怕的主意。我希望在不久的将来无障碍可访问性可以成为趋势。

  · 对于希望改进功能自动化测试的团队,您有什么建议吗?

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

  Chrome在Linux系统和Windows系统上的运行也可能不同。测试整个工作流程。如果您的网站在执行某个操作时正在发送电子邮件,请检验该电子邮件是否正常发送。如果那封邮件有按钮,点击并查看所跳转的页面是什么。

  用最新的工具,傻瓜才会去重造wheel文件。



作者:小码哥说测试    

来源:http://www.51testing.com/html/89/n-4479389.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   在讲述软件测试的多种可能性之前,先来了解现在所知的开发模式中,软件测试行业还会继续存在吗?很多做测试的朋友问过这样一个问题:“现在敏捷开发模式中,自动化测试那么流行,而且连开发人员都开始做测试了,是不是以后就没有测试人员了?”  其实测试工作并不会消失,而且敏捷开发模式带给我们新的机遇和挑战,那对于测试人员来说,职业发展的方向又有哪些呢?  测试人员的职业选择  首先我们需要明确一个想法,如果想通过软件测试作为跳板,去做开发类或者管理类工作,不在我们的探讨范围内。  很多测试人员在选择软件测试作为职业的时候,其实更优先选择的是软件开发的职位,可能由于种种原因而与开发职位失之交臂,只好选择了...
            0 0 1001
            分享
          • 1、 安装、卸载测试应用程序应能正确安装到设备驱动程序上;能够在安装设备驱动程序上找到应用程序的相应图标;安装路径应能指定;软件安装向导的UI测试;应用是否可以在android不同系统版本上安装(有的系统版本过低,应用不能适配);没有用户的允许, 应用程序不能预先设定自动启动;对于需要通过网络验证之类的安装,在断网情况下尝试一下;安装时空间不足的情况下是否会导致系统崩溃;软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理;安装过程被中断(比如来电、短信等)后是否能够继续安装或者导致系统卡顿、崩溃;软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电);卸载是否安全,...
            12 12 2287
            分享
          •   据 Display Supply Chain Consultants 称,苹果即将推出的iPad Pro机型将采用"迄今为止市场上最好的 OLED 平板面板"。定于 5 月 7 日发布的OLED iPad Pro机型将采用 LTPO(一种更省电的 OLED)、120Hz ProMotion 刷新率、串联堆叠和玻璃减薄技术,从而带来"超薄、超轻显示屏",支持高亮度、更长的电池续航时间和更长的使用寿命。  与之前的传言一样,今天的报道显示 iPad Pro 机型将有 12.9 英寸和 11.1 英寸两种尺寸可供选择,两种选择都将采用纤薄边框和更薄的设计。...
            0 0 728
            分享
          • 应用介绍:APP性能测试工具是一个简单易上手的Android性能监测工具,该工具是由emmagee开源项目二次开发而来,主要用于监测单个App的CPU、内存、流量、电量、电流、帧数以及整体性能状态,同时支持自定义的监控频率以及性能数据的实时显示,应用集成了自动monkey,能更方便的对应用进行性能测试。功能特点:检测当前时间被测应用占用的CPU使用率以及总体CPU使用量;检测当前时间被测应用占用的内存量,以及占用的总体内存百分比,剩余内存量;检测应用从启动开始到当前时间消耗的流量数;测试数据写入到CSV文件中,同时存储在手机中;用户自定义采集性能数据频率;检测单个应用;可以设置邮箱地址,测试完...
            0 0 1186
            分享
          •   测试工作中,新人对于测试流程、测试方法都有可以直接拿来用的教材,但是对于回归测试中的bug处理的细节,往往需要我们更多的经历才能更好的完成自己的工作,下面我们来谈一谈回归测试bug的处理中需要关注的点:  一、什么是回归测试?  回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,对软件的任何新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再现,并确认曾经通过的功能不会出现问题。  二、回归测试做多少次?  很多资料都有具体指定回归的次数,在我看来,回归测试不能确却的给出一个项目具体做多少轮回归测试,因为,版本不可控的因素太多了,需求的更改、人员的...
            0 0 1078
            分享
      • 51testing软件测试圈微信