功能測試自動化的投入和產(chǎn)出

字號:

測試自動化,對于系統(tǒng)性能測試、負(fù)載測試等效果是明顯的,而且我們也不得不為之。我們知道,沒有測試工具進(jìn)行負(fù)載模擬,要通過手工測試完成系統(tǒng)測試任務(wù),幾乎是不可能的。但在功能測試中,情況就大不一樣了。
    手工測試在功能測試中的優(yōu)勢還是比較大的,我在“測試方法的辯證統(tǒng)一(之二)”已做了討論,工具本身并沒有想象力和靈活性,而人對界面美觀性、邏輯合理性,容易作出判斷。所以功能測試自動化主要的應(yīng)用在回歸測試中,而且產(chǎn)品的界面(UI)和功能變化較大,自動化的腳本(Script)維護(hù)成本較大,投入和產(chǎn)出往往變成我們最關(guān)心的問題,在功能測試中實(shí)現(xiàn)測試自動化究竟是否合算?
    舉個(gè)例子:假如一個(gè)功能測試用例,手工運(yùn)行需要10分鐘,而為此測試用例開發(fā)腳本需要4個(gè)小時(shí),即240分鐘,那么意味著這個(gè)測試腳本要被運(yùn)行24次收回成本,如果在加上測試腳本的維護(hù)工作量(10%),需要重復(fù)運(yùn)行40-50次,才收回成本。如果在產(chǎn)品的一個(gè)版本中要進(jìn)行2-3輪測試(一般是需要的),這個(gè)產(chǎn)品需要發(fā)布15-20個(gè)版本才收回成本。所以業(yè)界常說,產(chǎn)品發(fā)布7個(gè)版本才收回成本。
    如何降低成本、可以相對增加產(chǎn)出或者說更快地收回成本?關(guān)鍵是提高腳本開發(fā)速度、提高腳本運(yùn)行的穩(wěn)定性和降低維護(hù)腳本的工作量,主要方法有:
    - 選擇較好的、更適合的測試工具
    - 選擇適宜自動化的模塊
    - 盡量將腳本寫成數(shù)據(jù)驅(qū)動的腳本,這一點(diǎn)很重要。
    - 多錄制腳本,然后結(jié)構(gòu)化腳本。我們知道,不是所有的模塊都可以變?yōu)閿?shù)據(jù)驅(qū)動方式,這時(shí)就要抽象出腳本的結(jié)構(gòu),進(jìn)行有效的組合,包括分層,形成有效的層次性。
    - 測試和腳本開發(fā)合二為一,效率更明顯
    下表也部分說明了這個(gè)問題。也希望得到您更好的想法