Prasad Ramanujam現在印度金奈的高知特信息技術有限公司擔任高級項目經理。作為一名有12年IT業經驗的前輩及敏捷方法上的公認,他經常在關于成功在組織里實施敏捷測試技術這一話題的業界會議上演講。他通過為質量保證建立結構嚴謹、有戰略意義的方法,支持了各行各業的許多跨國客戶,使他們變成了高績效的企業。
引言
曾為多個客戶分析過一些項目的DevOps做法,根據經驗我們發現要讓測試社區接受DevOps做法還是有點勉強。這可以歸結于幾點原因:主要的是因為測試員基本都不知道DevOps會如何影響他們的常規測試工作。但是既然DevOps被定為成“going agile”的下一步,那么測試團隊必須克服不安并接受DevOps做法。這一點只有從測試員的角度正確地了解DevOps才能實現,這也正是本文的目標。
DevOps是什么?
“DevOps”一詞一般指:推動開發團隊間合作關系的上升運動,在這里團隊不僅僅指開發者還包括所有參與開發(包括測試員,業務員,PM,Scrum大師等)和運維(包括DB管理員,支持分析師和網絡技術人員)生命周期的人員。DevOps是一個讓項目團隊以可預見的方法提供更快的結果的過程,它是開發和運維的縮寫。它給生產帶來了計劃工作的快速流程。它背后的概念是:讓開發者和運維者團隊緊密合作,終讓企業受益,在速度大化的同時保持質量。
為什么會出現DevOps?
當代碼開發出來后卻沒有立即放到生產中時,IT運維要面對一堆的部署,客戶得不到很多價值,部署常常一團糟,沒有按本應該的那樣組織。敏捷做法使得開發團隊可以更輕易更快地做出改變,但是手動程序以及各種流程和工具間的不規則已造成大量錯誤,以至運維團隊不能自信安全地部署生產他們開發的每個改變。他們努力不斷部署時要面對的一些問題包括:
部署中昂貴易錯的手動流程常常導致重新執行和重新發布。
開發和測試環境的部署過慢使得項目團隊沒有收益。
測試團隊無法跟上所做變化的步伐,而且算他們能,生命周期后面階段也會不斷地發現缺陷。
組織常常無法將業務需求和市場趨勢相匹配,以至于無法滿足客戶需求。
測試和開發過程中自動化的低效使用造成了大筆手動流程開銷。
DevOps中在進行著什么?
DevOps包含一套流程,使得一旦開發團隊完成代碼,隨時可以投入生產,然后從生產中將反饋發回應用程序生命周期。
理論上,一旦開發團隊完成一個有完善功能的小功能,盡可能快地通過運維團隊投入生產。這包含一段不斷發展不斷集成的代碼。但是如果沒有平行不斷的測試,這些不斷集成和交付的過程沒有任何意義,這提出了下面的問題。