軟件測試是軟件開(kāi)發(fā)生命周期中的一個(gè)重要環(huán)節,其目的在于發(fā)現軟件中的錯誤,確保軟件的質(zhì)量。隨著(zhù)近幾年移動(dòng)通信新業(yè)務(wù)的不斷推出及3G的正式商用,移動(dòng)通信的業(yè)務(wù)關(guān)聯(lián)度越來(lái)越高,業(yè)務(wù)支撐系統內部結構也變得越來(lái)越復雜。在業(yè)務(wù)支撐系統的每次新業(yè)務(wù)上線(xiàn)測試中,新業(yè)務(wù)對老業(yè)務(wù)的影響程度越來(lái)越難以預估,這給測試工作帶來(lái)了許多不確定的因素。
全覆蓋的回歸測試必不可少
在實(shí)際的軟件上線(xiàn)中,常常會(huì )出現新業(yè)務(wù)上線(xiàn)后功能正常、但一些老業(yè)務(wù)功能卻變得不正常的情況。究其原因,在于新業(yè)務(wù)在開(kāi)發(fā)過(guò)程中,修改了一些與老業(yè)務(wù)共用的模塊或內部接口,由于對系統關(guān)聯(lián)度認知與把控不夠,造成了一些相關(guān)聯(lián)的老業(yè)務(wù)沒(méi)有測試或是測試不充分,最終導致了新業(yè)務(wù)上線(xiàn)后老業(yè)務(wù)功能異常的情況。我們通常將對老業(yè)務(wù)的測試稱(chēng)為“回歸測試”,回歸測試的正確性對軟件質(zhì)量有著(zhù)舉足輕重的作用。
在可預見(jiàn)的未來(lái)幾年內,移動(dòng)通信的業(yè)務(wù)種類(lèi)將會(huì )越來(lái)越多,各業(yè)務(wù)間的關(guān)聯(lián)度會(huì )越來(lái)越高。為防止新老業(yè)務(wù)相互影響的情況發(fā)生,應加強業(yè)務(wù)支撐系統內部軟件結構的梳理與規劃,在編寫(xiě)測試用例時(shí)充分考慮到業(yè)務(wù)的關(guān)聯(lián)性,但這主要還是依賴(lài)于人為的判斷。俗話(huà)說(shuō):“智者千慮,必有一失!闭l(shuí)也不能保證在每次的新業(yè)務(wù)測試中,都能準確地判斷出與之相關(guān)聯(lián)的老業(yè)務(wù)做到回歸測試的百分之百覆蓋。在這種情況下,進(jìn)行全系統的地毯式全覆蓋測試,就成為回歸測試的一個(gè)重要解決方案。
業(yè)務(wù)支撐系統是一個(gè)非常龐大的計算機軟件系統,功能繁多,進(jìn)行全系統的地毯式全覆蓋測試,將會(huì )出現成千上萬(wàn)甚至是幾十萬(wàn)個(gè)測試用例,這并非靠手工測試所能完成,于是我們需要引入自動(dòng)化測試的方法。自動(dòng)化測試是指通過(guò)計算機軟件編程,由計算機來(lái)自動(dòng)完成測試工作的一種測試方法,與手工測試一樣,包括數據準備、測試執行、結果校驗等環(huán)節。自動(dòng)化測試系統本身就是一個(gè)計算機軟件系統,在CRM(Client Relation Management,客戶(hù)關(guān)系管理)領(lǐng)域,目前較成熟的產(chǎn)品有QTP(Quick Test Professional)、WinRunner等等。
如何建設自動(dòng)化測試系統
建設自動(dòng)化測試系統,首先必須建立起完備的測試用例庫。在CRM測試中,需要記錄每個(gè)業(yè)務(wù)測試的預置條件、測試步驟、結果驗證標準等信息,但這些信息還僅僅只能應用于手工測試。在自動(dòng)化測試中,測試用例庫中還必須詳細地記錄預置條件相關(guān)界面中各個(gè)界面元素的名稱(chēng)、需要輸入的數值、測試執行的按鈕或鏈接、結果驗證相關(guān)界面中各個(gè)界面元素的名稱(chēng)及其對應的數值。
完成測試用例庫的編寫(xiě)后,就可以進(jìn)行自動(dòng)化腳本的編寫(xiě)開(kāi)發(fā)工作。以QTP為例,采用的是VB Script,開(kāi)發(fā)者需具備一定的VB編程基礎。自動(dòng)化測試與手工測試一樣,包括數據錄入、測試執行、結果驗證等部分,將原先通過(guò)手工逐步操作的內容以腳本的形式記錄下來(lái),包括文本框的數據輸入、下拉框的數據選擇、執行按鈕的點(diǎn)擊等等。與軟件編程一樣,自動(dòng)化腳本的編寫(xiě)也是一項艱苦的軟件開(kāi)發(fā)工作。自動(dòng)化腳本編寫(xiě)完成后,就可以由電腦來(lái)進(jìn)行自動(dòng)化測試了。
自動(dòng)化測試的執行效率非常高,一個(gè)復雜的測試項目,從錄入數據、測試執行到結果驗證一般只需幾秒鐘就可以完成,遠遠高于手工測試的速度。全系統的自動(dòng)化回歸測試一般只需要幾個(gè)小時(shí)到十幾個(gè)小時(shí)就能完成,這就使得在每次新版本上線(xiàn)前,都能進(jìn)行一次全系統的回歸測試,有效地確保了軟件的質(zhì)量。新上線(xiàn)業(yè)務(wù)對一些相關(guān)聯(lián)業(yè)務(wù)的影響有時(shí)難以準確判斷,通過(guò)全系統的自動(dòng)化測試,能夠在測試階段及時(shí)發(fā)現,從而杜絕了在上線(xiàn)后出現故障。
自動(dòng)化測試系統的建設是一個(gè)工作量巨大的工程,不僅在測試用例庫的編寫(xiě)上比手工測試更為復雜、嚴格,而且自動(dòng)化腳本的編寫(xiě)也是一項相當耗時(shí)耗力的工作,絕不亞于被測試軟件的開(kāi)發(fā)過(guò)程,因此自動(dòng)化測試系統建設的成本是非常高的。
適宜關(guān)鍵且不經(jīng)常變化部分
自動(dòng)化測試比較適用于在系統中處于比較關(guān)鍵的位置但又不經(jīng)常變化的部分,例如CRM中的用戶(hù)開(kāi)銷(xiāo)戶(hù)、用戶(hù)套餐申請與取消、用戶(hù)停復機等模塊。對于會(huì )經(jīng)常變化的部分,則不宜采用自動(dòng)化測試的方法,剛剛花費大量時(shí)間精力編寫(xiě)的自動(dòng)化腳本,可能在下一個(gè)的軟件版本測試中又發(fā)生了變化,新編寫(xiě)的自動(dòng)化腳本可能一次都還沒(méi)有使用又要重新進(jìn)行修改,那將是時(shí)間與人力成本的巨大浪費。
自動(dòng)化測試是軟件回歸測試的一種重要的方法,但不能完全用于替代軟件測試工作。計算機軟件只能用于替代人的機械重復動(dòng)作,而不具有對各種特殊情況的應變能力。因此,在日常測試中,采用手工測試與自動(dòng)化測試相結合的方法,可以互相取長(cháng)補短,基本實(shí)現全覆蓋的測試,以確保軟件上線(xiàn)的質(zhì)量。
除了CRM領(lǐng)域外,計費賬務(wù)領(lǐng)域也是業(yè)務(wù)支撐系統的一個(gè)重要組成部分。兩者不同的是,CRM主要面向營(yíng)業(yè)網(wǎng)點(diǎn),采用界面操作的方式運作,而計費賬務(wù)領(lǐng)域以后臺程序運作為主。目前在計費賬務(wù)領(lǐng)域還沒(méi)有成熟的自動(dòng)化測試工具,但只要我們遵循自動(dòng)化測試的方法與思路,就可以自行開(kāi)發(fā)這方面的軟件,為業(yè)務(wù)支撐系統量身定做一款合適的自動(dòng)化測試系統,這將大大提高測試的效率與效果。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/