BEA WebLogic Platform應(yīng)用程序通常作為復(fù)雜生產(chǎn)系統(tǒng)的一部分進(jìn)行部署。當(dāng)交付以WebLogic Platform為基礎(chǔ)的應(yīng)用程序時(shí),對(duì)應(yīng)用程序進(jìn)行正式測(cè)試需要恰當(dāng)控制的測(cè)試條件,而提供這些條件本身是一項(xiàng)復(fù)雜的任務(wù)。如果沒(méi)有準(zhǔn)備好恰當(dāng)?shù)沫h(huán)境并成功地進(jìn)行應(yīng)用程序部署,無(wú)法執(zhí)行正式測(cè)試,從而影響交付,而交付時(shí)間安排上一點(diǎn)點(diǎn)的松懈都將導(dǎo)致整個(gè)項(xiàng)目的推遲。
構(gòu)建測(cè)試環(huán)境流程的自動(dòng)化將有助于防止這種延誤的發(fā)生。在本文中,我將展示對(duì)一個(gè)測(cè)試環(huán)境進(jìn)行自動(dòng)部署的工作如何重用于其他測(cè)試環(huán)境。
“發(fā)布我吧”
“發(fā)布我吧,讓我去,
我的 bug已經(jīng)不再是重要的了……”
這些話不是我寫(xiě)的,而是在Web上看到的,但它特別切合我們的主題。您可以在Web上查看完整版本,更多內(nèi)容請(qǐng)參見(jiàn) Filks站點(diǎn)。
那么,您的開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)構(gòu)建了應(yīng)用程序套件,成功將它部署在WebLogic域中,并通過(guò)自動(dòng)測(cè)試腳本對(duì)應(yīng)用程序進(jìn)行了徹底的測(cè)試。開(kāi)發(fā)人員可能已經(jīng)閱讀并實(shí)現(xiàn)了Michael Meiner在 使用WLST和BEA Workshop在集群環(huán)境中開(kāi)發(fā)Web應(yīng)用程序(Dev2Dev,2006) 一文中的建議,在集群中測(cè)試了套件(使用Web服務(wù)作為集群的前端),見(jiàn)到它在集群中運(yùn)行,并證明了故障轉(zhuǎn)移能正常工作。
團(tuán)隊(duì)準(zhǔn)備好了發(fā)行說(shuō)明和所有的歸檔文件。那么現(xiàn)在已經(jīng)萬(wàn)事具備,只等用戶(hù)驗(yàn)收測(cè)試了,祈禱用戶(hù)會(huì)喜歡它吧,您可以為這次成功交付舉杯慶祝了。
醒醒吧!現(xiàn)實(shí)是生產(chǎn)套件的萬(wàn)里長(zhǎng)征才剛剛邁出了第一步。成功的交付需要跨越無(wú)數(shù)的障礙,需要開(kāi)發(fā)人員的多次嘗試。于是測(cè)試開(kāi)始了,將使用各種測(cè)試器或測(cè)試工具,將涉及套件和開(kāi)發(fā)人員無(wú)權(quán)訪問(wèn)的機(jī)器,這些測(cè)試將找到錯(cuò)誤,至少有幾個(gè)錯(cuò)誤是需要修復(fù)的,整個(gè)過(guò)程需要重復(fù)進(jìn)行多次。
獲得推進(jìn)
測(cè)試通常在一組明確指定的環(huán)境中進(jìn)行。現(xiàn)在討論這些受控環(huán)境包括哪些,以及將一個(gè)應(yīng)用程序從一個(gè)測(cè)試環(huán)境推進(jìn)到下一個(gè)測(cè)試環(huán)境需要哪些條件。
受控環(huán)境
我使用術(shù)語(yǔ)“受控環(huán)境”表示訪問(wèn)受到某個(gè)策略限制的環(huán)境。生產(chǎn)環(huán)境是一個(gè)受控環(huán)境,分段測(cè)試環(huán)境也是一個(gè)受控環(huán)境。這兩個(gè)環(huán)境的訪問(wèn)控制測(cè)試類(lèi)似,但分段測(cè)試環(huán)境的限制性訪問(wèn)策略的可能更少一些。簡(jiǎn)單地說(shuō),“受控測(cè)試環(huán)境”是一個(gè)用來(lái)測(cè)試應(yīng)用程序(套件)的、受控制的(即訪問(wèn)受策略限制)環(huán)境。
在受控環(huán)境下進(jìn)行測(cè)試的目的是獲得可重復(fù)的測(cè)試結(jié)果:在相同的環(huán)境下對(duì)相同的軟件進(jìn)行測(cè)試,應(yīng)該獲得相同的結(jié)果。“相同的條件”要求準(zhǔn)備的測(cè)試環(huán)境是一致的并且是可重復(fù)的。自動(dòng)環(huán)境構(gòu)建應(yīng)該確保環(huán)境初位于可重復(fù)的環(huán)境中,但還需要更多的條件以確保測(cè)試發(fā)生在可重復(fù)環(huán)境下。應(yīng)該進(jìn)行訪問(wèn)控制,以限制環(huán)境構(gòu)建后能夠更改該環(huán)境的人以及所允許的更改。如果在測(cè)試前應(yīng)用了運(yùn)行時(shí)更改,那么應(yīng)該在測(cè)試日志中記錄這些更改(這一點(diǎn)很重要),這樣才能重新創(chuàng)建完全一樣的測(cè)試環(huán)境,即重復(fù)構(gòu)建時(shí)也要重新應(yīng)用運(yùn)行時(shí)更改。
可以正式或非正式(或者兩者結(jié)合)的形式應(yīng)用訪問(wèn)控制。如果您的項(xiàng)目使用正式訪問(wèn)控制,則通常通過(guò)可以保護(hù)策略規(guī)則的軟件或硬件設(shè)備實(shí)現(xiàn)。如果您的項(xiàng)目不需要太過(guò)正式,那么可能會(huì)非正式的(即根據(jù)公認(rèn)的實(shí)踐經(jīng)驗(yàn))應(yīng)用部分或全部訪問(wèn)控制。很明顯,非正式控制很容易遭到破壞,有時(shí)甚至無(wú)意中破壞了,這種環(huán)境需要安裝審計(jì)軟件,用于根據(jù)期望的設(shè)置檢查環(huán)境配置,并在出現(xiàn)不可接受的變化時(shí)發(fā)出警告。
受控測(cè)試環(huán)境的例子有:性能測(cè)試環(huán)境、壓力測(cè)試環(huán)境、用戶(hù)驗(yàn)收測(cè)試環(huán)境等。在受控測(cè)試環(huán)境中,開(kāi)發(fā)人員通常可以查看測(cè)試結(jié)果、調(diào)查問(wèn)題或錯(cuò)誤,但是不允許管理或修改環(huán)境配置或者參與測(cè)試執(zhí)行過(guò)程。