本文章轉(zhuǎn)載于搜狗測試
如何提高測試效率,是一個(gè)很大的話題。
目前我們的測試工作或者測試過程大多應(yīng)該是下圖這樣,所謂瀑布流:
按照上面這個(gè)圖,我們的步驟應(yīng)該是開發(fā)介入寫代碼→提測→測試寫測試用例→介入測試→提交bug→開發(fā)修復(fù)bug→測試回歸→測試完成上線
但是這樣的模型,有兩個(gè)比較嚴(yán)重的弊端:
(1)在項(xiàng)目各個(gè)階段之間極少有反饋。
(2)只有在項(xiàng)目生命周期的后期才能看到結(jié)果。
在敏捷測試的概念里,就非常明確的提出:淡化角色(開發(fā),測試,產(chǎn)品)的概念,強(qiáng)調(diào)團(tuán)隊(duì)人人都為質(zhì)量負(fù)責(zé),這樣更有助于團(tuán)隊(duì)的每一位成員都把質(zhì)量作為非常重要的一部分,而不是依賴于某個(gè)人或者某個(gè)角色。
其實(shí),在整個(gè)項(xiàng)目環(huán)節(jié)里,測試不應(yīng)該只關(guān)注我的用例怎么寫能更好、我需要怎么寫才能更大程度的cover測試點(diǎn),而且在項(xiàng)目開發(fā)完成后,測試馬上著手用例設(shè)計(jì)和用例執(zhí)行,閉門造車。
而是在項(xiàng)目開發(fā)時(shí),測試人員就應(yīng)該和開發(fā)人員溝通:“我們” 如何能實(shí)現(xiàn)測試效率的提高?
思維方式的創(chuàng)新,跳出圈子思考。
在設(shè)計(jì)用例的時(shí)候,考慮是否要先設(shè)計(jì)一個(gè)測試工具,是否需要開發(fā)在代碼里打log方便測試,是否需要開發(fā)寫個(gè)測試頁面,測試環(huán)境是否可以一鍵部署完成等等。
舉個(gè)例子:
在測試輸入法泛靈犀功能,一開始拿到這個(gè)測試任務(wù)時(shí),我們想到的是構(gòu)造一臺(tái)測試服務(wù)器,在服務(wù)器上構(gòu)造數(shù)據(jù),請求返回后測試輸入法客戶端的表現(xiàn)。
然而,客戶端和服務(wù)器端的請求是加密的,而且服務(wù)器體系龐大且復(fù)雜,如果我們想構(gòu)造測試數(shù)據(jù),還需要設(shè)計(jì)準(zhǔn)備一大堆的容錯(cuò)數(shù)據(jù)(XML和json文件),工作量可想而知。
最后的解決方案,是開發(fā)同學(xué)提供的,通過腳本搭一個(gè)假的服務(wù)器,示意圖見下:
通過python的Httpserver就可以實(shí)現(xiàn)。
構(gòu)造數(shù)據(jù)的部分:
啟動(dòng)假服務(wù)的部分:
最后,通過把客戶端的請求攔截,轉(zhuǎn)發(fā)到這個(gè)假的服務(wù)上,我們就可以實(shí)現(xiàn)快速簡單的在腳本里構(gòu)造測試數(shù)據(jù),完成測試工作。