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