【譯】人人都該知道的測試自動化基礎知識

譯自:The test automation basics every software developer should know

沒有必要告訴您畜埋,測試自動化將會提高您的軟件質(zhì)量,拯救您的軟件開發(fā)組織溃卡,避免在手動回歸測試中花費不必要的時間和費用咕宿。 這種論調(diào)您應該聽說過一百萬次币绩。

你需要知道的是如何到達那里。

pyramid.png

您不需要在開發(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好了)。

對自動化方面感興趣的小伙伴們也可以一起來討論呀册招。

nekousenesi.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岔激,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子是掰,更是在濱河造成了極大的恐慌虑鼎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件键痛,死亡現(xiàn)場離奇詭異炫彩,居然都是意外死亡,警方通過查閱死者的電腦和手機絮短,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門江兢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丁频,你說我怎么就攤上這事杉允。” “怎么了席里?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵叔磷,是天一觀的道長。 經(jīng)常有香客問我胁勺,道長,這世上最難降的妖魔是什么独旷? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任署穗,我火速辦了婚禮寥裂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘案疲。我一直安慰自己封恰,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布褐啡。 她就那樣靜靜地躺著诺舔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪备畦。 梳的紋絲不亂的頭發(fā)上低飒,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音懂盐,去河邊找鬼褥赊。 笑死,一個胖子當著我的面吹牛莉恼,可吹牛的內(nèi)容都是我干的拌喉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼俐银,長吁一口氣:“原來是場噩夢啊……” “哼尿背!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捶惜,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤田藐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后售躁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坞淮,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年陪捷,在試婚紗的時候發(fā)現(xiàn)自己被綠了回窘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡市袖,死狀恐怖啡直,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苍碟,我是刑警寧澤酒觅,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站微峰,受9級特大地震影響舷丹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜓肆,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一颜凯、第九天 我趴在偏房一處隱蔽的房頂上張望谋币。 院中可真熱鬧,春花似錦症概、人聲如沸蕾额。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诅蝶。三九已至,卻和暖如春募壕,著一層夾襖步出監(jiān)牢的瞬間调炬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工司抱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筐眷,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓习柠,卻偏偏與公主長得像匀谣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子资溃,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理武翎,服務發(fā)現(xiàn),斷路器溶锭,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 前言 如果有測試大佬發(fā)現(xiàn)內(nèi)容不對宝恶,歡迎指正,我會及時修改趴捅。 大多數(shù)的iOS App(沒有持續(xù)集成)迭代流程是這樣的...
    默默_David閱讀 1,655評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,787評論 25 707
  • 軟件測試分類 單元測試:單元測試(或模塊測試)是對程序中的單個子程序或具有獨立功能的代碼段進行測試的過程垫毙。 集成測...
    hopevow閱讀 4,942評論 6 62
  • 一個人若是漫不經(jīng)心地變老, 而未能看到自己將身體力量與美發(fā)展到極致之后可能成為的樣子拱绑, 那是一種恥辱综芥。 ——蘇格拉底
    羽宙兒閱讀 192評論 0 0