【摘要】測(cè)試是軟件開發(fā)的一個(gè)重要環(huán)節(jié)。本文論述了軟件測(cè)試自動(dòng)化測(cè)試的實(shí)施。從自動(dòng)測(cè)試的好處、影響軟件測(cè)試自動(dòng)化實(shí)施的因素產(chǎn)生原因等幾個(gè)方面出發(fā),總結(jié)軟件自動(dòng)化測(cè)試的實(shí)施思路,并提供某軟件公司實(shí)施軟件測(cè)試自動(dòng)化案例,供各位同行參考。
【關(guān)鍵詞】軟件測(cè)試自動(dòng)化引入條件風(fēng)險(xiǎn)分析
1概述
軟件測(cè)試自動(dòng)化,從計(jì)算機(jī)這一龐大學(xué)科發(fā)展至今,最根本的意義是解決手工勞動(dòng)的復(fù)雜性,成為替代某些重復(fù)性行為模式的最佳工具。
2實(shí)施軟件測(cè)試自動(dòng)化的理由
(1)提高測(cè)試效率和降低測(cè)試成本。
(2)將重復(fù)性強(qiáng)的測(cè)試由手工轉(zhuǎn)為可以獨(dú)立開來自動(dòng)實(shí)現(xiàn)的。
(3)實(shí)現(xiàn)快速的回歸測(cè)試,提高新版本發(fā)布的速度和質(zhì)量,尤其是不能適應(yīng)目前流行的迭代開發(fā),回歸測(cè)試頻度高、工作量大,人工的測(cè)試很難對(duì)新的迭代版本作出快速評(píng)估。
(4)自動(dòng)測(cè)試可以避免人工測(cè)試容易犯的錯(cuò)誤:錯(cuò)誤測(cè)試、漏測(cè)試、多測(cè)試和重復(fù)測(cè)試等。
(5)典型的應(yīng)用,例如多用戶并發(fā)注冊(cè)、并發(fā)交易請(qǐng)求和并發(fā)交易應(yīng)答,這種情況用人工測(cè)試幾乎是辦不到的,而自動(dòng)測(cè)試卻很容易。
(6)對(duì)于很常用的功能性邊界測(cè)試測(cè)試,人工測(cè)試非常耗費(fèi)時(shí)間,而自動(dòng)測(cè)試很快且準(zhǔn)確。
可以說,實(shí)施測(cè)試自動(dòng)化是軟件行業(yè)一個(gè)不可逆轉(zhuǎn)的趨勢(shì),如果在這個(gè)領(lǐng)域走在了前列,無論從企業(yè)的核心競(jìng)爭(zhēng)力還是個(gè)人的工作技能來說,都有巨大的優(yōu)越性。
3軟件測(cè)試自動(dòng)化的引入條件
自動(dòng)化測(cè)試能大大降低手工測(cè)試工作,但決不能完全取代手工測(cè)試。完全的自動(dòng)化測(cè)試只是一個(gè)理論上的目標(biāo),實(shí)際上想要達(dá)到100%的自動(dòng)化測(cè)試,不僅代價(jià)相當(dāng)昂貴,而且操作上也是幾乎不可能實(shí)現(xiàn)。一般來說,一個(gè)40-60%的利用自動(dòng)化的程度已經(jīng)是非常好的了,達(dá)到這個(gè)級(jí)別以上將過大的增加測(cè)試相關(guān)的維護(hù)成本。
測(cè)試自動(dòng)化的引入有一定的標(biāo)準(zhǔn),要經(jīng)過綜合的評(píng)估,絕對(duì)不能理解成測(cè)試工具簡(jiǎn)單的錄制與回放過程。實(shí)際上,從實(shí)現(xiàn)成熟度來說,自動(dòng)化測(cè)試分五個(gè)級(jí)別,如表1所示。
自動(dòng)化測(cè)試能提高測(cè)試效率,快速定位測(cè)試軟件各版本中的功能與性能缺陷,但不會(huì)創(chuàng)造性的發(fā)現(xiàn)測(cè)試腳本里沒有設(shè)計(jì)的缺陷。測(cè)試工具不是人腦,要求測(cè)試設(shè)計(jì)者將測(cè)試中各種分支路徑的校驗(yàn)點(diǎn)進(jìn)行定制,沒有定制完整,即便事實(shí)上出錯(cuò)的地方,測(cè)試工具也不會(huì)發(fā)覺。因此,制訂全面、系統(tǒng)的測(cè)試設(shè)計(jì)工作是相當(dāng)重要的。
自動(dòng)化測(cè)試能提高測(cè)試效率,但對(duì)于周期短、時(shí)間緊迫的項(xiàng)目不宜采用自動(dòng)化測(cè)試。推行自動(dòng)化測(cè)試的前期工作相當(dāng)龐大,將企業(yè)級(jí)自動(dòng)化測(cè)試框架應(yīng)用到一個(gè)項(xiàng)目中也要評(píng)估其合適性,因此決不能盲目的的應(yīng)用到任何一個(gè)測(cè)試項(xiàng)目中,尤其不適合周期短的項(xiàng)目,因?yàn)楹芸赡苄枰罅康臏y(cè)試框架的準(zhǔn)備和實(shí)施而會(huì)被拖跨。
實(shí)施測(cè)試自動(dòng)化必須進(jìn)行多方面的培訓(xùn),包括測(cè)試流程、缺陷管理、人員安排、測(cè)試工具使用等。如果測(cè)試過程是不合理的,引入自動(dòng)化測(cè)試只會(huì)給項(xiàng)目團(tuán)隊(duì)帶來更大的混亂。
那么應(yīng)該具備什么樣的條件才可以引入自動(dòng)化測(cè)試呢,才可以最大可能的減少引入風(fēng)險(xiǎn),并能夠可持續(xù)性的開展下去呢?
(1)從項(xiàng)目規(guī)模上來說,沒有嚴(yán)格限制。無論項(xiàng)目大小,都需要提高測(cè)試效率,希望測(cè)試工作標(biāo)準(zhǔn)化,測(cè)試流程正規(guī)化,測(cè)試代碼重用化。所以第一要做到的,就是從公司高層開始,直到測(cè)試部門的任何一個(gè)普通工程師,都要樹立實(shí)施自動(dòng)化測(cè)試的堅(jiān)定決心,不能抱著試試看的態(tài)度。一般來說,一個(gè)這樣的軟件開發(fā)團(tuán)隊(duì)可以優(yōu)先開展自動(dòng)化測(cè)試工作:測(cè)試與開發(fā)人員比例合適,比如1:3到1:5,開發(fā)團(tuán)隊(duì)總?cè)藬?shù)不少于10個(gè)。
(2)從公司的產(chǎn)品特征來說,一般開發(fā)產(chǎn)品的項(xiàng)目實(shí)施自動(dòng)化測(cè)試要比純項(xiàng)目開發(fā)要優(yōu)越些。但決不是說做純項(xiàng)目開發(fā)不能實(shí)施自動(dòng)化測(cè)試,只要軟件的開發(fā)流程、測(cè)試流程、缺陷管理流程規(guī)范了,自動(dòng)化測(cè)試自然水到渠成。
(3)從測(cè)試人員個(gè)人素質(zhì)和角色分配來說,除了有高層重視外,還應(yīng)該有個(gè)具有良好自動(dòng)化測(cè)試背景和豐富自動(dòng)化測(cè)試經(jīng)驗(yàn)的測(cè)試主管,不僅在技術(shù)方面,更重要的是在今后的自動(dòng)化測(cè)試管理位置起著領(lǐng)導(dǎo)的作用。還要有幾個(gè)出色的開發(fā)經(jīng)驗(yàn)良好的測(cè)試人員,當(dāng)然也可以是開發(fā)工程師,負(fù)責(zé)編寫測(cè)試腳本、開發(fā)測(cè)試框架,還有一些測(cè)試執(zhí)行者,他們要對(duì)軟件產(chǎn)品業(yè)務(wù)邏輯相當(dāng)熟練,配合測(cè)試設(shè)計(jì)者完成設(shè)計(jì)工作,并在執(zhí)行自動(dòng)測(cè)試時(shí),敏銳的分析和判斷軟件缺陷。
綜合分析上述三個(gè)條件,就可以決定是否推行自動(dòng)化測(cè)試;但是為了減少實(shí)施風(fēng)險(xiǎn),還要預(yù)測(cè)到其他潛在的風(fēng)險(xiǎn),做好事先解決問題規(guī)避風(fēng)險(xiǎn)的思路。
4對(duì)實(shí)施自動(dòng)化測(cè)試的風(fēng)險(xiǎn)分析
資金風(fēng)險(xiǎn),雖然有些項(xiàng)目具備實(shí)施自動(dòng)化測(cè)試的條件,但還是要引入自動(dòng)化測(cè)試后組織結(jié)構(gòu)調(diào)整等方面的成本估算是很必要的。
自動(dòng)化測(cè)試對(duì)軟件功能類型的切入點(diǎn)的風(fēng)險(xiǎn),開發(fā)的產(chǎn)品業(yè)務(wù)和功能是否需要自動(dòng)化測(cè)試?包括白盒自動(dòng)化測(cè)試、功能自動(dòng)化測(cè)試和性能自動(dòng)化測(cè)試。
軟件自動(dòng)化測(cè)試切入方式的風(fēng)險(xiǎn),一定要將自動(dòng)化測(cè)試與手工測(cè)試結(jié)合起來使用,不合理的規(guī)劃會(huì)造成工作事倍功半。首先,對(duì)于自動(dòng)化測(cè)試率的目標(biāo)開始是20/80(20%的自動(dòng)化測(cè)試和80%的手工測(cè)試),當(dāng)這些目標(biāo)都實(shí)現(xiàn)了,再將自動(dòng)化測(cè)試率提高。
時(shí)間估算,在評(píng)估完前面幾項(xiàng)指標(biāo)后,需要估算實(shí)施測(cè)試自動(dòng)化的時(shí)間周期,以防止浪費(fèi)不必要的時(shí)間,減少在人員、資金、資源投入上的無端消耗。雖然到測(cè)試自動(dòng)化步入正軌以后,會(huì)起到事半功倍的效果,但前期的投入巨大,要全面考慮各種因素,明確實(shí)施計(jì)劃并按計(jì)劃嚴(yán)格執(zhí)行,才能最大限度降低風(fēng)險(xiǎn)。
工作流程變更風(fēng)險(xiǎn),測(cè)試團(tuán)隊(duì)乃至整個(gè)開發(fā)組織實(shí)施測(cè)試自動(dòng)化,或多或少會(huì)因?yàn)檫m應(yīng)測(cè)試工具的工作流程,帶來團(tuán)隊(duì)的測(cè)試流程、開發(fā)流程的相應(yīng)變更,而且,如果變更不善,會(huì)引起團(tuán)隊(duì)成員的諸多抱怨情緒;所以應(yīng)該盡量減少這種變更,并克服變更中可能存在的困難。
5什么條件下使用自動(dòng)化測(cè)試
一般在這樣的條件下使用自動(dòng)化測(cè)試:
(1)具有良好定義的測(cè)試策略和測(cè)試計(jì)劃(知道要測(cè)試什么,知道什么時(shí)候測(cè)試)。
(2)對(duì)于自動(dòng)化測(cè)試你擁有一個(gè)能夠被識(shí)別的測(cè)試框架和候選者。
(3)能夠確保多個(gè)測(cè)試運(yùn)行的構(gòu)建策略。
(4)多平臺(tái)環(huán)境需要被測(cè)試。
(5)擁有運(yùn)行測(cè)試的硬件。
(6)擁有關(guān)注在自動(dòng)化過程上的資源。
如下條件下是宜采用手工測(cè)試:
(1)沒有標(biāo)準(zhǔn)的測(cè)試過程。
(2)沒有一個(gè)測(cè)試什么、什么時(shí)候測(cè)試的清晰的藍(lán)圖。
(3)在一個(gè)項(xiàng)目中,測(cè)試責(zé)任人是一個(gè)新人,并且還不是完全的理解方案的功能性和或者設(shè)計(jì)。
(4)整個(gè)項(xiàng)目在時(shí)間的壓力下。
(5)在團(tuán)隊(duì)中沒有資源或者具有自動(dòng)化測(cè)試技能的人。
6某軟件公司實(shí)施軟件測(cè)試自動(dòng)化情況
某軟件公司在ITS、GIMIS、HPC等項(xiàng)目中實(shí)施了自動(dòng)化測(cè)試,自動(dòng)化測(cè)試比例較高(如ITS自動(dòng)化測(cè)試占65%,手工測(cè)試占35%),經(jīng)過多年來自動(dòng)化測(cè)試的實(shí)施,收效較好的原因主要有:
(1)在測(cè)試工作本身流程上、組織結(jié)構(gòu)上根據(jù)實(shí)際情況進(jìn)行了多次有效的調(diào)整與改進(jìn),甚至也包括需求、設(shè)計(jì)、開發(fā)、維護(hù)及配置管理等其他方面的進(jìn)行了有機(jī)的配合。
(2)軟件開發(fā)團(tuán)隊(duì)工作尤其注重以人為本,項(xiàng)目團(tuán)隊(duì)一開始的組建就非常重視人員之間的配合、測(cè)試組織結(jié)構(gòu)的設(shè)置,每個(gè)角色都要將自己的責(zé)任完全擔(dān)負(fù)起來,減少和解決設(shè)計(jì)、開發(fā)和測(cè)試之間的矛盾。
(3)項(xiàng)目管理部門對(duì)開展自動(dòng)化測(cè)試的監(jiān)督和評(píng)估起到了積極的作用,也包括對(duì)項(xiàng)目測(cè)試的檢查和人員的考核。將自動(dòng)化測(cè)試全面深入地貫徹到測(cè)試工作中。
該軟件公司自動(dòng)化測(cè)試實(shí)施相對(duì)比較成功,但或多或少還有些問題需要繼續(xù)完善和改進(jìn),比如工具選擇問題,培訓(xùn)到位問題,文檔完備問題,人員合理分配問題,腳本可維護(hù)度等等,如表2所示。
表1自動(dòng)化測(cè)試分五個(gè)級(jí)別
表2某軟件公司測(cè)試自動(dòng)化案例匯總表