DevOps自动化测试的原则和实践
DevOps是為了在保證高質(zhì)量的前提下縮短系統(tǒng)變更從提交到部署至生產(chǎn)環(huán)境的時間。在對系統(tǒng)進(jìn)行變更時,質(zhì)量很重要。高質(zhì)量才能讓業(yè)務(wù)價(jià)值傳遞到系統(tǒng)干系人。『自動化測試既是提高質(zhì)量的一種重要手段,也是實(shí)施持續(xù)測試必需的能力,因此它是DevOps持續(xù)交付流水線中必不可少的環(huán)節(jié)』。本文簡單闡述一下在DevOps持續(xù)交付流水線中自動化測試的原則和實(shí)踐。
1、自動化測試的原則
DevOps實(shí)施自動化測試主要有以下原則:全員參與、更早的介入、指標(biāo)量化和收益至上。
-
全員參與
在DevOps團(tuán)隊(duì)中一般不會有專職的測試人員。DevOps參與的人是系統(tǒng)的干系人,運(yùn)維、客戶、產(chǎn)品經(jīng)理是首要受眾群體,其實(shí)是設(shè)計(jì)師、架構(gòu)師,最后才是技術(shù)團(tuán)隊(duì)。
-
更早的介入
DevOps測試工作貫穿整個軟件交付生命周期,在需求階段即進(jìn)行業(yè)務(wù)級的測試設(shè)計(jì),在需求特性開發(fā)、交付整個過程中同步進(jìn)行并完成測試任務(wù)。
-
指標(biāo)量化
所有的測試指標(biāo)應(yīng)該量化,且是全團(tuán)隊(duì)共同的職責(zé)。所有的指標(biāo)要有閥值,比如代碼復(fù)雜度要小于<多少,單元測試率要>多少,技術(shù)債務(wù)中驗(yàn)證類問題不能高于多少。只有通過量化的指標(biāo)才能進(jìn)行流水的下一個節(jié)點(diǎn)
-
收益至上
DevOps尤重收益。在自動化技術(shù)選型上優(yōu)先收益率最高是單元測試,其次接口服務(wù)測試、最后才界面測試。
2、自動化測試的實(shí)踐?
自動化測試實(shí)踐除了依賴自動化的測試服務(wù)外,還有其他三個要素即人、過程和方法。
-
對平臺的自動化的測試服務(wù)要求
測試服務(wù)對象包含一切,“軟件定義一切”。『一切即可測試』,包括文檔、配置、環(huán)境、發(fā)布包、腳本、基礎(chǔ)設(shè)施。
測試服務(wù)功能涵蓋多種類型,包括代碼掃描、功能測試、性能測試、安全測試、兼容性測試、乃至驗(yàn)收測試和用戶體驗(yàn)性測試。
測試服務(wù)自動觸發(fā),通過持續(xù)交付流水線節(jié)點(diǎn)觸發(fā)自動化測試服務(wù)。DevOps持續(xù)交付流水線原則上要求5分鐘內(nèi)結(jié)束。這不僅需要分布式的測試執(zhí)行技術(shù),還要求應(yīng)用架構(gòu)能夠定義測試優(yōu)先級以及相配套的快速部署技術(shù)。
測試服務(wù)基礎(chǔ)資源即開即用,借助容器、彈性擴(kuò)縮等技術(shù)讓自動化測試能力服務(wù)化。
自動化測試服務(wù)能力進(jìn)行分層,自動化測試平臺提供基礎(chǔ)測試服務(wù)和組件接入能力。項(xiàng)目個性化的技術(shù)要求和跨系統(tǒng)公用組件由項(xiàng)目組自行建設(shè),測試平臺負(fù)責(zé)接入。
-
人
團(tuán)隊(duì)技能要求提升,即是全棧開發(fā)團(tuán)隊(duì)也是全棧測試團(tuán)隊(duì),要求具備各層級測試的能力。團(tuán)隊(duì)不再需求基礎(chǔ)手工測試人員。但在團(tuán)隊(duì)中需要有測試架構(gòu)師進(jìn)行整體測試方案設(shè)計(jì),負(fù)責(zé)和平臺進(jìn)行對接事宜。需要有測試領(lǐng)域技術(shù)專家按照測試場景進(jìn)行技術(shù)分析和選型,并提供業(yè)務(wù)和技術(shù)組件。需要測試專家能夠指導(dǎo)開發(fā)工程師進(jìn)行測試組件和用例的開發(fā)。
-
過程
要實(shí)現(xiàn)測試工作前移,必然要修改原來需求、開發(fā)、測試、運(yùn)維串聯(lián)的過程,采用協(xié)同并行工作模式。團(tuán)隊(duì)要采用敏捷的開發(fā)模式,團(tuán)隊(duì)成員數(shù)量盡量少、支撐的的業(yè)務(wù)系統(tǒng)盡量的集中,這樣確保每個團(tuán)隊(duì)的成員對用戶場景有統(tǒng)一認(rèn)識。
在開發(fā)迭代中,做故事澄清、原型設(shè)計(jì)、數(shù)據(jù)模型設(shè)計(jì)時,可以并行進(jìn)行測試對象分析、測試點(diǎn)分析、測試數(shù)據(jù)、測試組件等設(shè)計(jì)。越早的發(fā)現(xiàn)問題,修復(fù)的成本越低。
同一個故事的開發(fā)任務(wù)和測試任務(wù)安排給同一個人,測試驅(qū)動開發(fā)的另外一個好處是通過用例,讓開發(fā)從用戶的角度去審視自己的設(shè)計(jì)從而提升質(zhì)量。
-
實(shí)施方法
用例管理要堅(jiān)持“三易”,?用例執(zhí)行要支持“三更”
用例管理的「三易」
1.易管理:
“比遺留代碼更可怕的是遺留的測試代碼”,測試代碼管理復(fù)雜度遠(yuǎn)高于代碼本身。一定要建立統(tǒng)一的管理規(guī)范。團(tuán)隊(duì)的測試規(guī)范包括用例規(guī)范、組件規(guī)范、過程規(guī)范、環(huán)境管理規(guī)范必須事前先建立。要建立用例的評估把控機(jī)制,做到事前評審事后抽查。
2.易維護(hù):
采用分層設(shè)計(jì),用例和組件分離,用例本身只關(guān)注業(yè)務(wù)邏輯。區(qū)分變化與不變、資源文件、環(huán)境信息與用例代碼分離。
3.易定位:
測試用例不相互依賴,要求明確的斷言信息。
?
用例執(zhí)行的「三更」
1.更多:
采用各種各樣的自動化測試方式來解決業(yè)務(wù)測試的問題,而不是單一技術(shù)手段。
2.更早:
盡早測試,尤其是已知的風(fēng)險(xiǎn)因素,確保在交付生命周期的后期發(fā)現(xiàn)的問題更少。
3.更頻繁:
不斷的重復(fù)進(jìn)行測試,向開發(fā)團(tuán)隊(duì)提供代碼質(zhì)量的迭代式反饋。
3、總結(jié)
實(shí)施自動化測試也要重視收益。測試工作應(yīng)該貫穿整個軟件交付生命周期,越早的發(fā)現(xiàn)問題,修復(fù)的成本越低。在實(shí)施自動化測試的過程中,不一定減少測試人員的個數(shù),但能逐步提升測試人員素質(zhì)。
好的自化測試實(shí)踐,不僅僅是依賴自動化測試服務(wù)。還依賴與團(tuán)隊(duì)、任務(wù)的協(xié)作方式,以及自動化測試建設(shè)過程中的一些小技巧。
綿薄之力
最后感謝每一個認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走
這些資料,對于想進(jìn)階【自動化測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。希望對大家有所幫助....
總結(jié)
以上是生活随笔為你收集整理的DevOps自动化测试的原则和实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android MVVM框架搭建(八)高
- 下一篇: 安装瑞星全功能安全软件2009