微軟高級軟體工程師:如何進行自動化測試?

2021-01-12 讀芯術

全文共3201字,預計學習時長9分鐘

圖源:Google

最近,我與微軟的高級軟體工程師KlausHemstitch進行了交談。過去7年裡,Klaus Hemstitch一直在微軟的Office 365團隊工作。每天他的團隊要確保所有的網絡組件能在每個主流瀏覽器上正常工作。我很想知道在構建可擴展且有益的自動化測試時,他們如何解決那些困難的任務。

· 您在微軟工作多久了?以前在哪裡工作?

我從2013年開始在微軟工作,之前在奧多比(Adobe)工作了3年。

· 您目前的工作職責是什麼?

我們的團隊負責Office365中大部分網絡組件的功能自動化測試。

· 在這些工作任務中最大的挑戰是什麼?

最大的挑戰無疑是跨瀏覽器測試。我們要確保一切都是完美無缺的,能在Chrome, Firefox, Safari, Opera, Internet Explorer, Edge和移動瀏覽器上正常工作。

· 你們為什麼還支持IE瀏覽器?它和原來一樣嗎?

我們將於2021年8月17日正式停止支持IE瀏覽器。但這並不意味著我們將停止對它的測試,因為我們應該最先知道它哪裡出了問題。很多企業仍在使用IE瀏覽器,並且會繼續使用很多年。許多遺留系統依賴IE瀏覽器,甚至有些企業不允許員工使用其他瀏覽器。

圖源:Google

· 您如何看待測試用的無頭瀏覽器?

使用無頭瀏覽器無疑是一種糟糕的做法,因為與常規瀏覽器相比,它在某些情況下的運行往往略有不同。我們一直在安裝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的用戶就無法訪問了。準確的定義如下:無障礙可訪問性是指讓儘可能多的人能夠使用你的網站。

圖源:unsplash

· 你們會圍繞更新進行測試嗎?

萬幸我們有足夠的資源,不需要使用這種方法。我們每時每刻都在測試所有的內容。但對於沒有資源可以支持時刻完全復原的團隊來說,圍繞更新進行測試是一個可以接受的技巧。

· 您如何看待測試趨勢?

這取決於是什麼趨勢。我曾見過營銷預算推動下的糟糕趨勢,將缺陷偽裝成良好的實踐,這簡直是噩夢般的東西。

我腦海中最先想到的一個例子是,有一家公司創建了一個用於自動化測試的產品,它的架構非常糟糕,甚至不能同時打開多個瀏覽器標籤。這主要是因為它過於依賴JavaScript。我們都知道,當JavaScript想要打開另一個瀏覽器標籤時,原本的瀏覽器會產生牴觸。

他們掩蓋了這個缺陷,說我們不需要測試一個連結是否真的能在一個新的瀏覽器標籤打開一個頁面,因為這實際上是在測試瀏覽器而不是網站。他們說只需要檢測target=」_blank」的屬性。按照這個扭曲的邏輯,測試時只需要檢測滑鼠點擊這個動作能否完成,不需要進行任何點擊操作。

我還見過另一個工具,它通過在Chrome上測試網站,在每個步驟獲得DOM,並將這些DOM轉儲粘貼到其他瀏覽器中來實施跨瀏覽器測試的想法。我不明白為什麼會有人想出這麼可怕的主意。我希望在不久的將來無障礙可訪問性可以成為趨勢。

· 對於希望改進功能自動化測試的團隊,您有什麼建議嗎?

跨瀏覽器測試很重要,不是每個人都會在蘋果筆記本電腦上使用Chrome。瀏覽器不僅僅是JavaScript的解釋器。無頭瀏覽器的運行可能與常規瀏覽器不同。

Chrome在Linux系統和Windows系統上的運行也可能不同。測試整個工作流程。如果您的網站在執行某個操作時正在發送電子郵件,請檢驗該電子郵件是否正常發送。如果那封郵件有按鈕,點擊並查看所跳轉的頁面是什麼。

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

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 如何成為軟體自動化測試工程師
    由於,崗位需求量大,薪資高的特點,軟體自動化測試工程師已經是當下最熱門的職業之一。如何成為軟體自動化測試工程師呢?只要學習和掌握了相關的技能,就可以成為軟體自動化測試工程師。那麼,具體需要掌握哪些技能呢?不同類型的軟體自動化測試,對於崗位所需的技能要求各不相同。
  • 軟體測試工程師前景分析
    1、高級軟體測試工程師,熟練掌握軟體測試與開發技術,且對所測試軟體對口行業非常了解,能夠對可能出現的問題進行分析評估;   2、中級軟體測試工程師,編寫軟體測試方案、測試文檔,與項目組一起制定軟體測試階段的工作計劃,能夠在項目運行中合理利用測試工具完成測試任務;   3、初級軟體測試工程師,其工作通常都是按照軟體測試方案和流程對產品進行功能測驗,檢察產品是否有缺陷
  • 什麼是軟體測試工程師呢?
    軟體測試工程師是指理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤,決定軟體是否具有穩定性,寫出相應的測試規範和測試用例的專門工作人員。簡單來說,軟體測試工程師在一家軟體企業擔任的是「質量管理」的角色,需要及時糾錯及指正,確保產品的正常運作。
  • 軟體測試工程師的需求量和薪資待遇如何?
    在以往許多軟體公司不太注重產品質量,所以軟體測試工程師的需求量一般,與開發人員的比例大概是1:8---1:4左右,近幾年,根據《中國軟體測試行業
  • 軟體測試工程師書籍列表(必讀)
    微軟的資深測試者審視微軟當前的測試方法,並展望軟體測試的未來發展。Whittaker 測試專家James Whittaker旗幟鮮明地捍衛手工測試,探討如何用探索式測試來應對嚴峻的現實挑戰。作者以隱喻「漫遊」(Touring)為核心,提出了一套有助於探索式測試的測試方法。作者歷任微軟測試架構師和谷歌測試總監,其理念已經在微軟和谷歌的測試產品中逐漸體現。
  • 成為優秀自動化測試工程師的7個步驟
    不要忽視手動測試 雖然我了解公司正在轉向無代碼自動化測試工具,達到專家級別並跟上行業自動化測試工程師的競爭,但最初要關注手動測試概念非常重要。首先,我想強調使用手動和自動測試的事實。有關何時使用手動測試以及何時使用自動化測試的文章可以幫助您了解它們之間的區別。一旦掌握了這些差異,您就會明白自動化測試肯定是手動測試的替代品,但僅限於某種程度。所以,你無法避免編碼。
  • 軟體測試工程師的職業發展
    但是Martin的例子並不能解決「軟體測試本身有哪些發展」這個問題。只是讓我們看到了最美好的結果,讓我們知道這條路是能走通的。那麼軟體測試的職業發展方向有哪些?作為軟體測試工程師, 又該如何為自己制訂職業發展規劃?軟體測試在職業發展上,可以概括分為「管理」和「技術」兩大類。另外,軟體測試還可以在質量領域發展。
  • 得軟體測試的門檻低?工程師有話說
    工程師有話說 啄木鳥學院 發表於 2021-01-07 10:55:08 隨著網際網路產品功能的日漸複雜,企業越來越重視中高級軟體測試工程師在研發團隊中的比重,高需求促使轉行的人也越來越多,可能很多人都覺得軟體測試的門檻很低,很容易進入到這個行業
  • 軟體測試工程師職業規劃
    具有初步的自動化測試能力,完善自動化測試腳本。  具體工作:設計和編寫測試用例,編寫自動測試腳本程序且擔任測試編程初期的領導工作。  學習方向:拓展程式語言、作業系統、網絡與資料庫方面的技能 。  第三階段:(高級測試工程師)程序分析員   自身條件:有3~4年經驗的測試工程師或程式設計師。具有一定的行業業務知識,儲備系統分析員的能力。  具體工作:幫助開發或維護測試或編程標準與過程,分析軟體需求,獲得測試需求。確定測試需求相應的測試方法,獲得測試策略方案。
  • 我從功能測試進階到自動化測試工程師的經驗總結~|Atstudy
    隨著測試行業的發展,「會代碼」越來越成為測試工程師的一個標籤。打開各大招聘網站,測試工程師月薪一萬以上基本都有一個必備技能,那就是自動化測試。那麼自動化測試到底難不難呢?下面我將會將我的經歷講給大家聽,希望聽完後,大家會有自己的一個判斷。  大家好,我是軟體測試汪。不知不覺,入行軟體測試也有小5個年頭。待過創業公司也待過上市公司。
  • 8年軟體測試工程師感悟——寫給還在迷茫中的朋友
    前幾年的軟體測試行業還是一個風口,隨著不斷地轉行人員以及畢業的大學生瘋狂地湧入軟體測試行業,目前軟體測試行業「缺口」已經基本飽和。當然,我說的是最基礎的功能測試的崗位需求已經很少了,而自動化、性能、安全乃至於以後可能出現的大數據測試、AI測試仍存在著非常多的機會。很多測試從業者其實會對自己未來的發展感到迷茫,覺得自己的工作其實就是用「滑鼠點點點」,其實不是這樣的,測試工程師有自己的價值。
  • 軟體測試工程師的自我認識和定位
    …看完這些,希望你能從中獲得一些想要的答案軟體測試工程師(Software Testing Engineer)指理解產品的功能要求,並對其進行測試,檢查軟體有沒有缺陷(Bug),測試軟體是否具有穩定性(Robustness)、安全性、易操作性等性能,寫出相應的測試規範和測試用例的專門工作人員。軟體測試就是使用人工或自動手段,來運行或測試某個系統的過程。
  • 【重磅文章】智能化測試:軟體自動化的先行者
    這個大主題是在軟體工程和人工智慧之間的一個交叉主題,我們去看人工智慧和軟體工程的交叉一個方向是在上面,就是智能軟體工程,軟體工程是連在一塊的,主要是說我們解決的是軟體工程裡面的問題、任務,如何讓我們解決任務
  • 軟體測試工程師職位需求報導分析
    另一方面在薪資水平方面,軟體測試工程師的身價也逐漸被看好。下面分別從這兩個方面來了解一下軟體測試這一職位在職場中的份量。  軟體測試工程師職位需求報導  據中國青年報報導,近日,英特爾、微軟等跨國IT企業及騰訊、攜程、聯想、百度等國內IT企業紛紛開出極具誘惑力的條件,吸引IT人才加盟。其中,軟體測試工程師佔據了需求冠軍位置。
  • 軟體測試工程師薪資怎麼樣?發展路線有哪些?
    近年來軟體bug事件頻發,造成了很多損失,軟體測試的重要性也被更多的人熟知。那麼軟體測試工程師的薪資怎麼樣?發展路線有哪些?今天U妹就來為大家答疑解惑。軟體測試作為IT行業的一份子,軟體測試工程師的薪資自然不會低,幾乎僅次於開發行業。軟體測試分為分為功能測試、接口測試、性能測試、自動化測試幾個方向,每個方向的薪資都不盡相同。如果走技術路線的話,從初級軟體測試工程師再往上的話需要學習自動化測試、性能測試等,才能勝任相關崗位的工作。
  • 測試工程師必須要學會的APP UI 自動化都在這裡了!
    首先想要說明一下,APP自動化測試可能很多公司不用,但也是大部分自動化測試工程師、高級測試工程師崗位招聘信息上要求的,所以為了更好的待遇,我們還是需要花時間去掌握的,畢竟誰也不會跟錢過不去。接下來,一起總結一下APP UI自動化測試的思路吧。通常用於自動化測試的程式語言有:Python、Java、Javascript、Ruby、C#、PHP等。
  • 軟體測試工程師同行工資居然已經達到這個水平了?
    再往上面走,就是我們的自動化/性能測試工程師。3-5年左右的工作經驗可以達到15-25K這樣子的一個範圍。如果有5-8年軟體測試相關技術經驗,那就是25K往上走了,如果能達到測試總監,就是30K以上。其實在我們軟體測試行業中間,更關注的是你的技能(技術)你的技術越高,你對應的一個薪資報酬也會越多。
  • 2019年軟體測試的發展前景怎麼樣?
    百度一下「2019年軟體測試前景」,第一頁的信息大多都是簡單的介紹了一下軟體測試的基本情況。所以,對於很多測試人員,尤其是小白們來說,完全不知道自己進入這個行業的前景如何,又該怎麼規劃,至於職業如何發展更是一片迷茫。那麼2019年軟體測試的前景和發展方向到底在哪裡呢?
  • 帶你探索軟體測試工程師月薪是多少
    1.軟體測試工程師職業介紹軟體測試工程師的職責在於準確理解產品的功能需求,繼而對其進行測試,找尋到產品自身存在的錯誤
  • 十年軟體自動化測試生涯的三點心得(第一篇)
    做黑盒/功能測試的童鞋總想嘗試一下自動化測試或單元測試,或者說,自動化測試或單元測試對於從事軟體測試的童鞋而言具有一種不可名狀的吸引力。多年後,有的童鞋已經成功跨過這道坎進入到自動化測試或單元測試領域,但大多數童鞋仍在觀望著,繼續抱著那種期待和恐懼——期待自動化測試或單元測試的魔力,恐懼於他們對技術上的要求。