DevOps對(duì)測(cè)試員意味著什么?
當(dāng)任一應(yīng)用程序代碼改變了,只有將依賴于它的每樣事物都重新測(cè)試一遍,才能保證是正確的。軟件相關(guān)性通常是極其復(fù)雜的,功能中看起來(lái)毫不相關(guān)的bug很常見(jiàn)。即使是極小的改變也要求將所有代碼重新測(cè)試一遍,如果每一樣都是手動(dòng)測(cè)試的話,這個(gè)過(guò)程需要大量資源和時(shí)間。因此,在短周期(持續(xù)集成的一部分)內(nèi),因?yàn)檐浖屑尤肓烁郊咏M件或功能,軟件的每一部分都需要經(jīng)常性地重新測(cè)試。因?yàn)橥ǔC扛魩滋煲渴鹨淮危圆惶赡苊扛魩滋焓謩?dòng)測(cè)試一遍所有的功能。自動(dòng)化測(cè)試提供了一種理想的解決方案,因?yàn)檫@種編碼測(cè)試可以在短時(shí)間按照要求進(jìn)行多次。只有擁有更多實(shí)質(zhì)性改變的新故事需要手動(dòng)測(cè)試。一個(gè)故事的測(cè)試一完成,同樣故事的自動(dòng)化測(cè)試也創(chuàng)建好了并被添加到一個(gè)中央儲(chǔ)存庫(kù)。于是,盡管測(cè)試的數(shù)目隨著項(xiàng)目增加而增加,但手動(dòng)執(zhí)行的測(cè)試數(shù)目仍保持相對(duì)穩(wěn)定。
如何將一切都自動(dòng)化?
DevOps中,理想情況是將測(cè)試的每個(gè)階段都自動(dòng)化,可以追蹤方式的每一步并可以一次次地實(shí)現(xiàn)可預(yù)測(cè)的結(jié)果。盡管下面的一些做法已經(jīng)存在很久了,但不少團(tuán)隊(duì)沒(méi)能成功利用其優(yōu)勢(shì),因此還需要大幅度調(diào)整改善。
自動(dòng)化單元測(cè)試
自動(dòng)化測(cè)試的基礎(chǔ)應(yīng)該是整個(gè)單元測(cè)試覆蓋。單元測(cè)試將會(huì)測(cè)試獨(dú)立的單元,通常是在一個(gè)不依賴于其他系統(tǒng)的類中。盡管還沒(méi)有變成一個(gè)主流做法,但自動(dòng)化單元測(cè)試已存在了很久,且往往被視作開(kāi)發(fā)團(tuán)隊(duì)的責(zé)任。
自動(dòng)化集成測(cè)試
集成測(cè)試連接不同的單元,還經(jīng)常訪問(wèn)數(shù)據(jù)庫(kù)和其他系統(tǒng)。這些服務(wù)測(cè)試進(jìn)行地比單元測(cè)試更久且應(yīng)該只在構(gòu)建服務(wù)器上啟動(dòng),它通常是由測(cè)試團(tuán)隊(duì)與開(kāi)發(fā)團(tuán)隊(duì)在一個(gè)類灰盒測(cè)試?yán)锖献鲌?zhí)行的。有不少工具如Fitnesse和NUnit,每個(gè)都擁有特定技術(shù)且能基于需求被采用。
服務(wù)測(cè)試
服務(wù)和組件層包含不同的單元。系統(tǒng)的各個(gè)組件被集成,它們的web服務(wù)需要通過(guò)分析對(duì)設(shè)置請(qǐng)求的回應(yīng)來(lái)檢查。這在一個(gè)應(yīng)用程序的敏感部分里執(zhí)行測(cè)試時(shí)尤其重要,比如保險(xiǎn)系統(tǒng)中的保險(xiǎn)金確認(rèn),一些自動(dòng)化web服務(wù)驗(yàn)證工具(比如GreenHat Tester,SOAP UI,SOAP UI Pro等)已經(jīng)存在很久了。
UI測(cè)試
UI測(cè)試是一種黑盒測(cè)試技術(shù),本質(zhì)上是測(cè)試應(yīng)用程序,中間設(shè)備和基礎(chǔ)設(shè)施的。這些GUI測(cè)試是常見(jiàn)的測(cè)試,其編寫和自動(dòng)化很貴。但是對(duì)于有效的交付到生產(chǎn),自動(dòng)進(jìn)行所有系統(tǒng)和回歸測(cè)試極其重要。Devops的關(guān)鍵之一是要了解每一層的執(zhí)行者以及上述測(cè)試周期每一階段預(yù)期的質(zhì)量水平。舉個(gè)例子,仔細(xì)考慮一下下列要求:“當(dāng)點(diǎn)擊提交,數(shù)據(jù)庫(kù)中應(yīng)該建好一個(gè)條目”。事實(shí)上,在UI測(cè)試中測(cè)試這個(gè)是不可能的。然而,我們需要確保有一個(gè)單元測(cè)試能覆蓋這個(gè)場(chǎng)景,在這里任何失敗都可以追溯到上述任一測(cè)試中,且可以追究相應(yīng)執(zhí)行者(如:測(cè)試團(tuán)隊(duì),開(kāi)發(fā)團(tuán)隊(duì)等)的責(zé)任。
其他自動(dòng)化流程
盡管上面展現(xiàn)了不同測(cè)試階段的自動(dòng)化,開(kāi)發(fā)和交付周期的一些其他流程可以自動(dòng)提供靈活的DevOps團(tuán)隊(duì)。
--基于新簽入代碼的自動(dòng)化和按需的構(gòu)建部署。
--從系統(tǒng)到開(kāi)發(fā)者/測(cè)試員回送反饋以確定潛在的性能差錯(cuò)的自動(dòng)化服務(wù)器和性能控制。
--與多個(gè)系統(tǒng)相互連接并基于需求和要求按區(qū)域幫助分配團(tuán)隊(duì)運(yùn)行進(jìn)程的自動(dòng)化報(bào)告和批處理。
--減少對(duì)專業(yè)運(yùn)維人員或巨大資金支出需要的自動(dòng)化基礎(chǔ)設(shè)計(jì)配置和設(shè)置。
結(jié)論
DevOps的目標(biāo)不僅僅是增加變化發(fā)生的速度,還要成功將這些變化部署到生產(chǎn)中,同時(shí)當(dāng)錯(cuò)誤發(fā)生時(shí)快速發(fā)現(xiàn)并改正。要做到這一點(diǎn),需要一個(gè)特定人員或團(tuán)隊(duì)負(fù)責(zé)Quality Gate將大多數(shù)測(cè)試自動(dòng)化。還有,DevOps是一種工作文化,沒(méi)有敏捷、高層管理的鼓勵(lì)和開(kāi)發(fā)與運(yùn)維團(tuán)隊(duì)間的理解無(wú)法發(fā)展壯大。但是如果正確實(shí)施的話,能夠提供長(zhǎng)期商業(yè)利益。
版權(quán)聲明:本文出自 SPASVO澤眾軟件測(cè)試網(wǎng):http://hgh666.cn/news/html/2015528142745.html
原創(chuàng)作品,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明本文原始出處、作者信息和本聲明,否則將追究法律責(zé)任。