譯自:The test automation basics every software developer should know
沒有必要告訴您畜埋,測試自動化將會提高您的軟件質(zhì)量,拯救您的軟件開發(fā)組織溃卡,避免在手動回歸測試中花費不必要的時間和費用咕宿。 這種論調(diào)您應該聽說過一百萬次币绩。
你需要知道的是如何到達那里。
您不需要在開發(fā)周期結(jié)束時花費數(shù)周時間以上進行硬性編碼階段府阀,而是只需要運用一小部分時間的來進行自動化測試缆镣,并在每次構(gòu)建中運行回歸測試。 不幸的是试浙,許多組織從用戶界面層開始董瞻,投資回報最小。 這就是Mike Cohn的測試自動化金字塔概念可以幫助你的地方田巴。 當您開始測試自動化時钠糊,請遵循本指南,以獲得最大的收益壹哺。
使用測試自動化金字塔
不要剛開始的時候就去聘用臨時工去做用戶界面級自動化抄伍。相反,花點時間熟悉測試自動化金字塔管宵。然后逝慧,準備好后昔脯,創(chuàng)建一個可以優(yōu)化投資回報率的測試自動化策略。
Cohn首次在敏捷成功學中引入測試自動化金字塔笛臣,顯示了如何最大化自動化云稚,從金字塔最底層的單元測試開始,并進入服務層級的測試沈堡。用戶界面測試位于最上方静陈。單元測試快速可靠。服務層允許在API或Service級別測試業(yè)務邏輯诞丽,而您不受用戶界面(UI)的限制鲸拥。層級水平越高,測試越慢越脆弱僧免。最后刑赶,雖然應該進行一些UI測試自動化,但是這樣的測試比較慢懂衩,更難維護撞叨,更容易破解。把它們保持在最低限度浊洞。
底層:單元測試自動化
單元測試是編寫高質(zhì)量代碼的重要組成部分牵敷。當軟件組織的人員講測試自動化時,他們傾向于考慮諸如統(tǒng)一功能測試(UFT)或Selenium等工具法希,提供測試自動化框架枷餐。然而,開發(fā)人員應該在單元測試級別寫大多數(shù)自動化測試苫亦。
開發(fā)人員可以使用單元測試框架毛肋,例如xUnit或Microsoft的Visual Studio單元測試框架來創(chuàng)建小單元代碼的自動測試。一些敏捷團隊使用測試驅(qū)動開發(fā)屋剑,一種在代碼之前編寫單元測試以幫助驅(qū)動代碼設計的技術村生。但您不需要編寫自動化單元測試。一些開發(fā)人員首先編寫代碼饼丘,但是在開發(fā)相關的自動化單元測試之前,不要考慮代碼的完成辽话。您可以評估每個代碼路徑是否已經(jīng)通過測試覆蓋工具(如DotCover)進行測試肄鸽。
自動化單元測試執(zhí)行速度非常快油啤,您將在每次構(gòu)建后運行它們典徘。當您的代碼基礎繼續(xù)增長和發(fā)展時,這種方法將使您的團隊在回歸發(fā)生時立即獲得反饋益咬。由于測試非常小巧且具體逮诲,因此在出現(xiàn)故障時很容易進行故障排除。通過這些測試,您的開發(fā)團隊可以放心地自信地重構(gòu)梅鹦,安全的知道他們會快速檢測到任何導致回歸的新代碼裆甩。
中間層:你所有的服務
Cohn指的是金字塔的中間層作為服務層,但它也被稱為自動API測試齐唆,自動化組件測試或驗收測試的層嗤栓。您可以使用此自動化層來測試業(yè)務邏輯,而不涉及用戶界面(UI)箍邮。通過在UI之外測試茉帅,您可以測試API或服務的輸入和輸出,而無需UI引入的所有復雜性锭弊。
在這個級別的測試可讓您的測試人員選擇設置數(shù)據(jù)堪澎,并通過您在單獨的電子表格或文件中定義的輸入和預期輸出進行一系列測試。這可以讓您的團隊針對邊界條件味滞,邊緣情況或錯誤條件創(chuàng)建自動測試樱蛤,而不涉及UI。這些測試比單元測試更慢桃犬,更復雜刹悴,因為它們可能需要訪問數(shù)據(jù)庫或其他組件。然而攒暇,您應該絕對使用它們土匀,因為它們比UI測試更快更可靠。
頂層:UI層
恭喜:現(xiàn)在形用,您的大部分代碼和業(yè)務邏輯都已經(jīng)過測試就轧,大多數(shù)用戶界面測試已被消除。您現(xiàn)在在UI層面的重點只是確保UI本身正常工作田度。 UI測試非常脆弱妒御,所以將這些測試保持在最低限度。這些自動化測試在UI改變的任何時候都需要維護镇饺,并且由于在運行模擬屏幕上的點擊(如網(wǎng)絡速度)的測試時乎莉,有如此多的因素會發(fā)揮作用,因此這種測試可能導致錯誤的測試失敗奸笤。您不能忽視這些測試失敗惋啃,但是您不想花費更多的時間來排除故障并維護UI測試,而不是花費查找實際的代碼缺陷监右。
通過強大的自動化測試設計边灭,自動化UI測試將很好地整合您的自動化測試套件。如果您需要更多幫助健盒,我建議Chris McMahon的文章“自動化測試”:功能設計的七個提示绒瘦。在其中称簿,McMahon提供技術建議,用于創(chuàng)建功能強大且可維護的UI自動化測試惰帽。
拿起測試自動化金字塔圖并將其放在墻上憨降。它應該提醒大多數(shù)自動化測試應該在單元測試級別,然后是可以在API或Service級別執(zhí)行的測試級別善茎。最后券册,通過強大的測試設計,您可以編寫一套最小的自動UI測試來完成自動化測試套件垂涯。一旦你有了這套可靠的自動化測試烁焙,回歸測試就會變得輕而易舉。
CC先生的小黑板
目前業(yè)界比較流行的自動化框架就RobotFramework
如果你喜歡的是Python語言耕赘,可以使用以下的方式:
單元測試工具可以使用Pyunit骄蝇;
Service測試工具可以使用SOAPUI等,Python的Requests庫也覺得是一個利器操骡;
UI測試工具可以使用Selenium(最新版為3.0九火,穩(wěn)定一點就用2好了)。
對自動化方面感興趣的小伙伴們也可以一起來討論呀册招。