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

2021-01-13 讀芯術

全文共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學習與發展的乾貨

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

相關焦點

  • 得軟體測試的門檻低?工程師有話說
    工程師有話說 啄木鳥學院 發表於 2021-01-07 10:55:08 隨著網際網路產品功能的日漸複雜,企業越來越重視中高級軟體測試工程師在研發團隊中的比重,高需求促使轉行的人也越來越多,可能很多人都覺得軟體測試的門檻很低,很容易進入到這個行業
  • javascript在自動化測試項目中的應用「軟體測試開發入門教程」
    有朋友反映最近我寫的東西太難了,太高級了。比如說我今天分享的主題是javascript在自動化測試中的應用有些朋友說我之前講的自動化測試的東西,需要消化很久,有一定的難度,意思就是說我動不動就講測試框架,測試開發是不是會有這樣的感覺?比如今天分享的javascript,大家做軟體測試有沒有用過?
  • ...招聘高級區塊鏈開發工程師;微軟翻譯軟體「中譯英」比「英譯中...
    (來源:雷鋒網)錘子科技入局區塊鏈,公開招聘高級區塊鏈開發工程師錘子科技昨日在某平臺上線了一個新職位,公開招聘高級區塊鏈開發工程師。招聘信息顯示,錘子科技此次招聘的高級區塊鏈開發工程師,將主要負責根據開發計劃,獨立完成區塊鏈相關應用模塊的設計與開發。需要能夠自覺主動學習新技術,且能夠承受一定的壓力。但並沒有透露該區塊鏈項目的具體信息。(來源:鎂客網)大眾中國將從 4 月 30 日開始召回部分進口途銳汽車今年的 315 晚會上,部分進口途銳汽車被曝存在發動機進水問題。
  • 軟體測試必讀的經典書籍
    該書信息密度不低,第一章以一個小測試作為引子,第二章闡述全書的核心思想,後面各章就討論了詳細的方式方法。所謂詳細也是相對而言,能打下進一步學習的基礎就足夠了。實例很少,偏向於原則、理論、概念。如果想應聘測試工程師,也可以作為惡補書籍,也是就該書小而全。
  • 軟體測試工程師需要掌握哪些技能
    軟體測試工程師需要掌握哪些技能大家都知道功能測試是測試工程師的基本功,今天就來和大家說說功能測試需要掌握哪些技能...熟練使用SQL1.常用的sql語句一定會寫。比如說增刪改之類。3.了解並可以進行資料庫的備份、遷移、還原、鏡像等操作。4.對sql語句進行調優,並對可以對運行的語句監控查看性能。5.了解資料庫集群等操作。LINUXLinux是測試人員的基本功,不需要掌握太難或者很不常見的Linux命令,正常能做到查看日誌,定位問題就可以了。
  • 中科院首批高級軟體工程師獲資格證書
    12月16日,中國科學院計算與通信工程學院與香港理工大學電子計算系聯合認證的首批高級軟體工程師頒證儀式在研究生院舉行,75名計算與通信工程學院畢業生獲此證書。首批高級軟體工程師職業資格證書獲得者是從150多名計算與通信工程學院軟體工程碩士和軟體科技理學碩士畢業生中,經過綜合測評和嚴格推薦程序,評選出的高級軟體工程技術與工程管理人才。
  • 高級軟體工程師需要具備的專業技能
    隨著我國信息化的不斷發展,網際網路方面人才需求量越來越大,如今很多企業需要掌握Java技術的軟體開發人員,並且只有掌握高級技術的開發程式設計師才能擁有立足之地。那麼學習Java應該掌握哪些高級技術呢?一名高級軟體工程師需要具備哪些能力?
  • 軟體測試工具有哪些?10款常見的軟體測試工具推薦
    軟體測試工具分為自動化軟體測試工具和測試管理工具。自動化軟體測試工具存在的價值是為了提高測試效率,用軟體來代替一些人工輸入。測試管理工具是為了復用測試用例,提高軟體測試的價值。一個好的軟體測試工具和測試管理工具結合起來使用將會使軟體測試效率大大的提高。那麼軟體測試工具有哪些呢?
  • 耒陽縣ACCP軟體工程師_科泰計算機學校
    耒陽縣ACCP軟體工程師,科泰計算機學校,這裡不僅是大學生深造、學一技之長,進入IT行業的平臺,更是讓許許多多的高考生成為了國家緊缺的IT人才,實現了自己的夢想。耒陽縣ACCP軟體工程師, liangyongfei 您好!7版本WeX5,appLoader我沒有用,回頭試一下。
  • 畢業做軟體工程之測試工程師怎麼樣?
    由於好多同學在拿到offer後,得到的職位雖然是軟體開發方向,但定的崗位卻是測試工程師。談到這個測試,有人在知乎把它稱作最基層的碼農崗,其實它很少編代碼,即便很多軟體工程師並不是碼農,但測試還是被踩到了最底層。
  • 思博倫最新發布的PT TestBench軟體將實現GNSS/GPS測試的大幅簡化與自動化
    PT TestBench全新自動化軟體測試套件基於雲技術,提供分析和報告能力,實現更快、更精確的GPS/GNSS接收機驗證思博倫通信宣布
  • 淺談電子工程師和軟體工程師差距
    硬體工程師主要負責電路分析、設計;並以電腦軟體為工具進行PCB設計,待工廠PCB製作完畢並且焊接好電子元件之後進行測試、調試。其中硬體工程師需要有良好的手動操作能力,能熟練讀圖,會使用各種電子測量、生產工具。 軟體工程師主要負責單片機、DSP、ARM、FPGA等嵌入式程序的編寫及調試。FPGA程序有時屬硬體工程師工作範疇。
  • 解決IT企業「高端人才用工荒」 傳智播客著力培養高級軟體工程師
    中國青年網北京7月12日電(記者 崔寧寧)7月11日,IT教育機構傳智播客舉行了主題為「生而顛覆,9為就業」的2020夏季課程發布會,正式對外發布聚焦培養高級軟體工程師的課程,其課程容量和項目深度均提升50%以上,課程時長率先在行業內由原來的6個月延長至9個月。
  • 傳智播客夏季課程發布會:推出高級軟體工程師課程標準
    來源:藍鯨財經藍鯨教育7月12日訊,昨日晚間,IT教育機構傳智播客舉行了主題為「生而顛覆,9為就業」的2020夏季課程發布會,正式對外發布培養高級軟體工程師的課程。數據顯示,發布會當天B站直播埠有超10萬人同時在線觀看。
  • 基於NI TestStand 的超高頻電子標籤清點功能自動化測試序列軟體的...
    本文從功能測試中測試項最為複雜、測試項數目最多的清點功能驗證角度著手,基於 NI RFID 測試儀和 TestStand 管理軟體,設計和開發了一套超高頻電子標籤清點功能自動化測試序列軟體,目標是高效完成清點功能驗證。
  • 軟體測試架構師工作職責是什麼呢?如何成為一個合格的架構師呢?
    軟體測試架構師是軟體測試工程師發展的一個重要方向。但是我們可能對軟體測試架構師在產品測試活動中具體會做哪些事情、關注哪些方面理解的還不夠全面。對於產品測試來說,不管是傳統的產品開發模式,還是迭代、敏捷,測試活動都可以總結為測試需求分析、測試分析和設計、測試執行和測試質量評估。
  • 軟體工程師除了寫代碼,還能做什麼工作?
    、「如何準備技術面試?」、「你們招人嗎?」 但是當時有一個問題我一直無法給出很好的答案,那就是,「如果我不想當個開發人員去編寫軟體,那麼該何去何從呢?」 最近,我一直在思考這個問題。在帶過近十年的產品和工程團隊後,我意識到自己已經做好了迎接新挑戰的準備,於是今年夏天,我開始進行自由的技術寫作。
  • 重新定義軟體開發模式,飛算以「自動化」逐個擊破行業痛點
    作為新一代的開發平臺和研發管理平臺,飛算全自動軟體工程平臺實現了「你輸入流程圖,我實現自動開發,自動測試,自動運維」,助力企業實現「降低項目成本、提升開發效率、保證代碼質量、簡化團隊管理」,讓軟體工程行業的作業方式從「人治」變成「法治」。陳定瑋將軟體開發比作蓋房子,代碼就是其中的一塊塊磚。
  • 看看軟體測試足壇巨星都多少歲
    起初,微軟工程師為了測試公司新的臉部辨識系統只要登錄網站,拍張自拍照,通過人工智慧的技術,系統可以立刻說出你的年齡和性別。今天我們就來看看現在足壇的那些大腕們,看起來都像多大歲數的呢?阿扎爾真實年齡:24歲(看來在切爾西比摧殘的不輕啊)人民網北京5月5日電(楊磊)今天,在網際網路上一個名叫「我看起來幾歲」(How Old Do I Look)的網頁小軟體已經被網友們玩瘋了。這個小軟體的製作商微軟公司當初並非真的刻意對外公布這項工具。起初,微軟工程師為了測試公司新的臉部辨識系統只要登錄網站,拍張自拍照,通過人工智慧的技術,系統可以立刻說出你的年齡和性別。
  • 圖解:數據科學家、數據工程師和軟體工程師之間的區別
    對於新手,也可以通過這張圖來看典型的「數據科學家」、「數據工程師」和「軟體工程師」都要掌握哪些工具。Jake Stein:隨著數據的爆炸式增長,對數據處理的專家技能需求也隨之井噴。這帶來的結果之一,是更精細的分工。對於數據管理工作的核心角色:數據科學家、數據工程師和軟體工程師,過去幾年見證了他們越來越清晰的定位。