阿里二面,原來我對自動化測試的理解太淺了

如何使用Python實現自動化測試

如果你入職一家新的公司,領導讓你開展自動化測試,作爲一個新人,你肯定會手忙腳亂,你會如何落地自動化測試呢?資深測試架構師沉醉將告訴你如何落地自動kan化測試,本次話題主要分爲如下幾部分內容:

1、什麼是自動化?

2、分層自動化又是什麼?

3、如何使用Python實現自動化測試?

4、RobotFramework自動化是不是適合你的境遇?

5、自動化落地成功,怎樣日常維護?

  1. 什麼是自動化?

有很多人做了很長時間的自動化但卻連自動化的概念都不清楚,這樣的人也是很悲哀,做這樣的職業,卻連最基本的概念都不清楚。我給大家列舉出來如下(引自《軟件評測師第69頁》):

自動化測試的定義:

自動化測試就是通過測試工具或者其他手段,按照測試工程師的預定計劃對軟件產品進行的自動的測試,它是軟件測試的一個重要組成部分,它能夠完成許多手工無法完成或者難以實現的一些測試工作。正確、合理地實施自動化測試,能夠快速、全面地對軟件進行測試,從而提高軟件質量,節省經費,縮短產品發佈週期。

如上就是自動化測試標準概念,概括而言,無非就是使用自動化的手段代替人工,但是不是完全代替人工,在這裏我不得不指出一個誤區,有的人不瞭解自動化的含義,尤其是一些領導層,認爲自動化是萬能的,只要自動化做出來,功能測試就可以完全解放了,即使自動化腳本寫的再智能,也不可能完全代替手工,並且自動化所耗費的人力也是對於整個項目組很大的開支。所以自動化測試不是萬能。

自動化測試的概念引出後,咱們也要介紹一下自動化所包含的種類,在市面上最流行的自動化包括如下種類。

1、UI自動化

2、接口自動化

3、app 自動化

4、單元自動化

5、自動化測試工具(測試開發輔助工具)

種類很多,是不是所有的自動化種類都要在項目開展,這就引出我們新的觀點,什麼是分層自動化?

  1. 分層自動化又是什麼?

先上張圖

先來談談我在工作中看到的自動化測試的誤區:

1、自動化測試腳本在完成後因爲產品更新導致大量測試用例失效,由於團隊忙於新功能開發,當失效的用例積累越來越多時,這些測試用例就慢慢失去維護。如果開發這些用例同學在的時候可能還好辦。

2、大量的自動化測試腳本沒有發現問題,上線後仍然問題不斷。在測試中我們主要針對正常流程進行測試,但是在線上出故障的都是非正常流程。

3、代碼質量問題嚴重。很多人寫的單元測試只是構造一個輸入然後檢查返回值,結果是測試通過了但是問題卻遺漏了。

4、重複輪子製造。大量的團隊都在開發自己的自動化測試框架,實際上只是對各種開源框架進行裁剪完善。

分層測試包含如下幾個層次:

1、單元測試:開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行爲。

2、集成測試:也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖〕組裝成爲子系統或系統,進行集成測試。在這裏我們可以認爲就是接口測試。

3、系統測試:將需測試的軟件,作爲整個基於計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他系統元素及環境結合在一起測試。在這裏我們就可以理解爲是UI測試。另外還要個綜合規律發現得越早修復成本越低。

  1. 如何使用Python實現自動化測試?

就語言而言Python實現自動化無非就是調用對應封裝好API。

在衆多自動化測試框架中,針對語言都有對應的封裝 。但是林林總總,自動化測試無非就要是分爲這幾大類型,我分別指出對應的自動化測試框架。

1、UI自動化

web自動化:selenium

GUI自動化:autoit

2、接口自動化

urllib2

requests

3、app 自動化

appium

4、單元自動化

和語言有關

看到如上框架,大家肯定會感覺學習自動化,你不僅要熟悉基本的框架內容知識也要對語言有相當的瞭解,才能真正的實現自動化測試。所以就引出今天要介紹的自動化測試框架RobotFramework。

  1. RobotFramework自動化是不是適合你的境遇?自動化測試開發面臨的問題

版本迭代的速度很快,迭代的時間很短,自動化測試開發是時間太短。自動化測試開發框架開發代價太大。尤其是針對初創團隊,開發框架人力成本太高。

實際的項目,特別是大型項目,功能通常都是非常複雜的,對構建自動化測試用例也是一種挑戰。

綜上而論,針對部門規模也是有一定界限的,真正實現自動化測試方式和方法。

對於大型測試部門,有較強的開發能力可以考慮做一套自動化測試框架,但是針對小的團隊,還是要選擇輕量級的成熟的自動化測試框架。

RF特點

1、易於使用,採用表格式語法,統一測試用例格式。

2、可以使用關鍵字驅動(keyword-driven)、數據驅動(data- driven)和行爲驅動開發 (BDD) 完成。

3、重用性好,可以利用現有關鍵字來組合新關鍵字;結果報告和日誌

採集HTML格式,易於閱讀。平臺和應用性關聯性。

4、易於集成,提供了命令行接口和基於XML的輸出文件。

5、易於與版本管理集成。

6、關鍵字單詞化,容易理解。

RF實現的架構圖:

RF代碼示例:

自動化測試只要用RF一個框架都能夠解決

RF自動化測試框架是一個融合關鍵字驅動和數據驅動的自動化測試框架,本身在自動化角度上這種融合化自動化測試框架,是當前自動化框架發現的整體趨勢。尤其是在工作當中簡簡單單使用一種框架,不能夠滿足工作遇到的需求。

  1. 自動化如何落地,怎樣日常維護?

在實際的工作中自動化測試如何落地這個問題也是很大的痛點,往往自動化做了一大堆,卻解決不了在工作中實際問題,自動化存在的價值無非就是兩個方面,一是輔助功能做測試數據,二是做冒煙測試和迴歸測試,如果這兩點都沒有做到,自動化測試是不可能實現真正意義上應用,也談不了節省人工。在實際工作過程中。還有一點也是很重要的一個問題,自動化剛開始做的時候,很重要的一點就是打地基,如果地基打不好,整個框架到後期會發現很多問題暴露出來,往往到最後就會捨棄這個框架。框架的選擇和框架的開發很重要的,要求短期內自動化測試一定要做出來,可想而知自動化是不可能短期內做出來,架構設計不好,到後期返工可能性會更大。所以這也就決定了自動化前期不是盲目性的,要做好地基。

同樣這樣也引出咱們今天的重點,RobotFramework 自動化測試框架,一個成熟的自動化測試框架,而且這個框架背後有Python語言作爲擴展,所有Python能夠實現的東西,在這個框架都可以實現。框架很多,在選擇的角度上而言,找一個成熟的框架,把工作的重心放到管理測試用例上,這個纔是做自動化的最高層次。也是最貼切工作的價值和意義。一切推崇高技術含量的東西沒有一點貼近工作的框架都是浪費時間。

技術行業,一定要提升技術功底,豐富自動化項目實戰經驗,這對於你未來幾年職業規劃,以及測試技術掌握的深度非常有幫助。

金九銀十面試季,跳槽季,整理面試題已經成了我多年的習慣!下面有我近幾年的收集和整理,整體是圍繞着【軟件測試】來進行整理的,主體內容包含:python自動化測試專屬視頻、Python自動化詳細資料、全套面試題等知識內容。

對於軟件測試的的朋友來說應該是最全面最完整的面試備戰倉庫,爲了更好地整理每個模塊,我也參考了很多網上的優質博文和項目,力求不漏掉每一個知識點,很多朋友靠着這些內容進行復習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟件測試的學習者,希望也能幫助到你!

願你我相遇,皆有所獲! 歡迎關注微信公衆號:【傷心的辣條】 免費領取一份216頁軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章