DevOps 未來,測試究竟有什麼樣的可能
Hello 大家好,第一次在TesterHome發帖,這個帖子主要是從DevOps對測試所帶來的變化層面的思考,希望能拋磚引玉,一起探討下未來測試究竟有什麼樣的可能。
測試同學在DevOps裡如何定位?
有人說DevOps其實是DevTestOps的縮寫,那麼測試同學在DevOps裡如何定位呢?實施DevOps,需要極小的交付顆粒度,極快的交付速度。為什麼要這樣做,首先小顆粒度的上線,能最大程度的保證線上系統的穩定性。有研究表明,線上的故障70%以上都是變更引起的,越小的交付顆粒度,變更的程度就越小。
變更小帶來的優點就是容易測試、容易定位問題、容易回滾、影響範圍小、牽涉開發人員的精力小。這麼一來,DevOps裡可能沒有傳統意義上的專職測試人員了,作為測試人員不要悲觀,其實也沒有傳統意義上的專職開發人員和專職運維人員了,所有人都是為了從開發到上線整個過程而負責,甚至要對更為前置的需求假設以及更為後置的價值驗證的過程負責,所有人的角色不在是固守一畝三分地,而是在更廣闊的的空間進行耕耘協同。
每個人都要讓自己的工作變得有價值、有效率、有質量
開發人員不僅僅再只是實現需求,將程式碼交付給測試同學進行部署和測試,而是要保證自己實現的程式碼是有價值的、有效率的、有質量的。開發人員不僅要高效率的程式碼實現,保證程式碼是高質量可交付給使用者的,更要讓自己實現的程式碼在產品層面有價值。無論我們的開發效率多快,質量有多高,實現很多沒有價值的程式碼是沒有任何意義的。
那麼測試同學呢?我們設想一下,在成功實踐DevOps後,交付顆粒度很小,交付速度很快,基本上每次就是幾行程式碼或者一兩個資料庫欄位的變更。但是這樣的變更頻率很快,有的時候甚至是連續釋出。我們很容易感覺到,要達到這樣的模式,不僅需要完備的生產環境交付系統、監控系統,業務系統也要針對基礎架構體系進行調整。但是還有一些必須的工具,我們試想一下,整個研發體系需不需要工具平臺進行支援?研發效率和質量需不需度量?研發過程需不需持續改進?我們千萬不要覺得,研發體系的工具平臺應該是運維或者其他角色來提供,度量和持續改進應該是領導來推動的。這些工作在DevOps其實也屬於測試同學的本職工作一部分。做好這些工作,足以使測試人員在DevOps體系下面有成績斐然的職業生涯和影響力。在DevOps體系裡,所有人都為了讓交付有高價值、高質量、高效率而努力。
任何模式都需要進行迭代和改進
當前的現狀不一定是最優的,任何模式都需要進行迭代和改進,DevOps體系本身就是持續改進的結果,即使當前已經開展了DevOps,仍然需要分析現狀,找到待改進點,制定目標和方向,推動團隊實施改進,我們甚至要思考DevOps的下一代是什麼。
極小的交付顆粒度,極快的交付速度,是手段,不是最終目的,我們的最終目的是要讓交付有高價值、高質量、高效率。所有能有助於到達我們目的得工具或者方法都是研發體系的工具平臺的範疇。為了使交付顆粒度和交付顆粒度達到一定的程度,需求、變更、版本、分支、測試用例、測試環境、部署的產生速度和顆粒度也會變化,所有的過程和產物都應該進行精細的管理,因此,首先應當對這些部分的管理進行系統化的設計和開發。
舉個簡單的例子,隨著業務的開展,應用和域名的數量越來越多,如果沒有一個系統統一的管理,那麼一段時間後這些應用和域名是做什麼的,負責人是誰,都分屬於哪些部門,呼叫數以及流量數都是多少都無從得知,有些業務甚至已經停止了,域名和應用還線上上跑著,當然這些可能適合偏運維角色的開發人員來做這個系統。
同樣的道理,我們發掘一下研發測試過程中的工具,比如測試用例的管理,DevOps體系會怎麼影響我們的測試呢,我們的測試用例應該如何變化呢,我們肯定不希望每次迭代都維護一個龐大的用例結構,因為如果這樣的話牽扯的精力太多,根本無法做到快速交付,但是如果我們不考慮用例的結構化,我們又不希望寫的測試用例是一次性的,寫完就放到用例庫裡吃灰了,一段時間後都自己都不認識自己的測試用例了,我們希望的是測試用例是高價值、高質量、高效率的,能夠盡最大可能的複用、回顧和重構。為了達到這樣的狀態我們就要修改我們的用例管理體系和用例管理工具,例如用例的形式是什麼,由誰寫,由誰審,由誰執行,如何管理都需要進行思考和改進。
以上是很簡單結合對DevOps認知,對於測試未來進行發散思維式的一些思考,只是寫了個開頭,希望拋磚引玉,未來究竟有什麼樣的可能。
相關文章
- 未來的女朋友是什麼樣
- 未來的資料中心是什麼樣的
- 未來缺什麼樣的程式設計師?程式設計師
- DevOps 的未來dev
- 未來的程式語言究竟會變成什麼樣?——來自Ruby之父的預測
- 遊戲將帶我們到什麼樣的未來?遊戲
- 未來的電視旅遊 App 是什麼樣的?APP
- 未來我們需要一輛什麼樣的智慧汽車?
- 未來什麼樣的工作是絕對無法取代的?
- 優秀的Java程式測試是什麼樣的?Java
- 為了未來的使用測試
- DevOps是什麼?DevOps能夠給我們帶來什麼?dev
- 未來中國網際網路什麼樣?——資訊圖
- 沒有 Linus,Linux 的未來是什麼樣子?Linux
- DevOps興起意味著專職測試人員消失?三分鐘測試:什麼是DevOps?dev
- 手機工廠測試是什麼?有著怎樣的測試流程?
- 好的軟體測試人員是什麼樣的?
- 程式設計為什麼不用中文?未來用中文程式設計可能麼?程式設計
- 一個究極版的大富翁應該是什麼樣子?試著分析《地精公司》的魅力所在
- 為什麼我們鍾愛動作類遊戲,它究竟有什麼樣的魅力遊戲
- 介面設計趨勢:猜想未來長什麼樣子
- NuoDB:告訴你未來的資料庫是什麼樣VU資料庫
- AI儲存的需求是什麼?未來趨勢是怎樣的?AI
- 計算的未來是什麼?
- 介面測試要測試什麼?
- 同樣是改需求,高手和菜鳥究竟有什麼不同?
- 為什麼 GraphQL 是 API 的未來API
- 技術有什麼未來?
- 你心目中理想的測試團隊是什麼樣的?
- 優秀的開發和測試人員是什麼樣的?
- PHP未來的一些可能PHP
- 什麼是滲透測試?與安全測試的區別是什麼?
- Java 14 可能帶來什麼新特性?Java
- 軟體測試人員應該具備什麼樣的性格?
- 好的軟體測試人員簡歷是什麼樣子的?
- 軟體測試中的黑盒測試是什麼?
- 你可能沒有細究過的TCP/IPTCP
- 為什麼說 Serverless 是雲的未來?Server