自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

測試金字塔實戰(zhàn)

開發(fā) 開發(fā)工具
這篇文章節(jié)選解釋了為什么我們需要測試,以及如何對軟件進行測試的問題。文章提供的信息,無論你在構(gòu)建什么樣的軟件都能適用。

這是一篇非常漫長并且艱深的文章的節(jié)選,它解釋了為什么我們需要測試,以及如何對軟件進行測試的問題。好消息是,這篇文章提供的信息經(jīng)得起時間推敲,無論你在構(gòu)建什么樣的軟件都能適用。不管你是工作在一個微服務項目上,還是 IoT 設備上,抑或是手機應用或者網(wǎng)頁應用,這篇文章提供的觀點應該都有章可尋。

[[245807]]

(測試)自動化的重要性

軟件已經(jīng)成為我們?nèi)粘I钪械囊粋€重要組成部分。早期它僅僅用于提高企業(yè)的效率,但如今它的作用遠不止如此。如今許多公司都想方設法成為一流的數(shù)字化公司。作為用戶,我們每天使用的軟件越來越多。創(chuàng)新的車輪正加速向前滾動。

如果你想跟上時代的步伐,你必須研究如何在不犧牲質(zhì)量的情況下更快地交付你的軟件。持續(xù)交付——一種高度自動化的、確保你可以隨時將軟件發(fā)布到生產(chǎn)環(huán)境中的實踐——正能幫你達到這個目的。它通過構(gòu)建流水線自動測試你的軟件,自動將其部署到測試和生產(chǎn)環(huán)境中。

軟件的數(shù)量正以前所未有的速度增長,手動進行構(gòu)建、測試和部署,很快就會變得不可能——除非你想把所有的時間都用來進行手動重復的工作,而不是用來開發(fā)可工作的軟件。將一切自動化,從構(gòu)建到測試,從部署到基礎(chǔ)架構(gòu),這是你唯一的出路。

(使用構(gòu)建流水線來自動并可靠地將你的軟件部署到生產(chǎn)環(huán)境)

傳統(tǒng)的軟件測試過于依賴手工操作:首先將應用程序部署到測試環(huán)境,然后執(zhí)行一些黑盒測試,例如,通過點擊用戶界面來查看一切是否工作如常。通常這些測試將由文檔指定,以確保測試人員每次測試的內(nèi)容是一致的。

很明顯,手動測試所有更改非常耗時、重復而且繁瑣。重復很無趣,無趣就容易犯錯,這樣子還沒測到這周工作結(jié)束你就會想找下一份工作了。

幸運的是,重復性勞動還是有藥可治的:自動化。

自動化繁瑣重復的測試將給軟件開發(fā)人員的生活帶來重大改變。自動化這些測試后,你就不需要再一味遵循測試文檔點點點以確保軟件是否仍正常工作。自動化這些測試,你可以充滿自信地修改你的代碼。如果你曾試過在沒有適當自動化測試的情況下進行大規(guī)模重構(gòu),那你應該知道這種體驗多么恐怖。你怎么知道你是否意外地破壞了某些功能呢?顯然,你需要將所有的測試用例手動點一遍。不過老實說,你真的享受這個過程嗎?你想象一下,如果你對代碼做了大規(guī)模改動后愜意地喝了一口咖啡,喝完咖啡后就能馬上得知你的改動有沒有破壞原有功能。這樣的開發(fā)體驗是不是聽起來就讓人舒服多了?

測試金字塔

如果你真的想為你的軟件構(gòu)建自動化測試,你必須知道一個關(guān)鍵的概念:測試金字塔。Mike Cohn 在他的著作《Succeeding with Agile》一書中提出了這個概念。這個比喻非常形象,它讓你一眼就知道測試是需要分層的。它還告訴你每一層需要寫多少測試。

測試金字塔

(測試金字塔)

根據(jù) Mike Cohn 的測試金字塔,你的測試組合應該由以下三層組成(自下往上分別是):

  • 單元測試
  • 服務測試
  • 用戶界面測試

不幸的是,如果你仔細思考就會發(fā)現(xiàn),測試金字塔的概念有點太短了。有人認為,Mike Cohn 的測試金字塔里的命名或某些概念不是最理想的。我也同意這一點。從當今的角度來看,測試金字塔似乎過于簡單了,因此可能會產(chǎn)生誤導。

然而,由于其簡潔性,在建立你自己的測試組合時,測試金字塔本身是一條很好的經(jīng)驗法則。你最好記住 Cohn 測試金字塔中提到的兩件事:

  • 編寫不同粒度的測試
  • 層次越高,你寫的測試應該越少

為了維持金字塔形狀,一個健康、快速、可維護的測試組合應該是這樣的:寫許多小而快的單元測試。適當寫一些更粗粒度的測試,寫很少高層次的端到端測試。注意不要讓你的測試變成冰淇淋那樣子,這對維護來說將是一個噩夢,并且跑一遍也需要太多時間。

不要太拘泥于 Cohn 測試金字塔中各層次的名字。事實上,它們可能相當具有誤導性:服務測試是一個難以掌握的術(shù)語(Cohn 本人說他觀察到很多開發(fā)人員完全忽略了這一層)。在單頁應用框架(如 react,angular,ember.js 等)的時代,UI 測試顯然不必位于金字塔的最高層,你完全能夠用這些框架對 UI 進行單元測試。

考慮到原始名稱的缺點,只要在你的代碼庫和團隊討論中達成一致,你完全可以為測試層次提供其他名稱。

結(jié)語

我希望這篇文章能對你有些幫助。有興趣你可以去示例代碼看看,把這里介紹的一些概念納入到你的測試組合中。想擁有一套穩(wěn)固的測試組合確實需要付出努力。但長遠來看,它們是會給你回報的,它們會給作為開發(fā)者的你帶來更多清凈。相信我。

【本文是51CTO專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號:思特沃克,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2022-12-13 15:41:41

測試軟件開發(fā)

2020-04-27 13:45:08

數(shù)據(jù)流沙Filecoin

2021-01-25 06:37:06

Css前端CSS 特效

2022-09-03 08:06:44

測試開發(fā)DevOps

2017-07-26 10:32:51

計算機視覺卷積神經(jīng)網(wǎng)絡FPN

2017-08-02 00:12:50

CVPR 2017論文FPN網(wǎng)絡

2018-01-26 08:54:29

存儲SSDHDD

2025-01-16 12:30:00

2009-11-04 10:51:19

程序員職業(yè)規(guī)劃

2013-03-14 09:46:05

移動創(chuàng)業(yè)諾基亞NEIC大師論道

2022-12-29 16:09:25

2020-04-08 08:00:00

開發(fā)者金字塔模型

2009-10-29 11:21:11

IT運維管理體系

2019-07-04 17:42:57

開發(fā)技能模型

2024-06-26 10:16:41

2012-10-24 11:06:37

無線路由器

2011-07-07 09:27:53

關(guān)鍵業(yè)務IT架構(gòu)服務器

2022-05-24 07:51:05

測試模型測試單元測試

2019-01-29 09:00:44

PyHamcrest單元測試框架
點贊
收藏

51CTO技術(shù)棧公眾號