天天看點

[ 測試思考 ] 效率提升測試工具開發的思考 - 鍋邊糊

[ 測試思考 ] 效率提升測試工具開發的思考

  本文針對測試部效率提升測試工具開發、管理、維護暴露出來的問題的一些思考以及一些個人改進觀點。

寫在前面

  本文提到的效率提升測試工具不是指的部門中固有的自動化測試工具,這裡提到的測試工具統一指測試人員在工作之餘自主開發用于期望替代重複、繁瑣、耗時的手工操作的測試工具,開發的目的是希望提升測試工作效率。不是針對專業工具開發部門團隊的測試工具。

測試工具管理暴露的問題

  總體來說,測試内部釋出的用于效率提升的測試工具整體品質不高,工具功能、性能、易用性、可維護性品質都不高。大部分測試工具通常都是誰開發的誰用的比較順手,工具推廣度不高。并沒有真正讓部門其他測試人員效率得到提升。針對這些問題簡單調研了一下身邊的同僚原因,主要以下幾個問題。

  1、工具不知道從哪裡可以擷取。這是測試部工具管理的問題。沒有統一的釋出路徑、測試人員不知道目前測試部都有哪些測試工具可以用,不知道從哪裡可以擷取到。

  2、工具不會用。測試人員拿到工具不知道怎麼使用。對一些相對複雜功能的測試工具沒有使用指導書、沒有聯機幫助。甚至有一些工具開發的菜單、标簽、工具名稱起的都很含糊。不知道這個工具是要幹嘛的。這些通常都是測試人員在開發工具時不考慮工具的易用性問題導緻其他測試人員很難上手使用。舉個例子,測試工具開發人員用 Python開發了一個windows平台工具但是并沒有編譯成可執行的.exe程式釋出,其他人很難用,首先可能要下載下傳python程式、其他要下載下傳程式依賴的各種類庫。用個工具這麼麻煩很多人就不想用了。。

  3、工具不好用、經常出現問題。測試工具開發在實作工具時可能隻針對某一個具體的場景、某一個具體的業務版本進行開發導緻工具并不具備推廣性。另外,一些工具互動太多甚至使用時有一些依賴外部條件需要設定程式才能正常執行等等都是導緻不好用、沒人用的原因。

  4、工具很難維護(可維護性問題)。工具開發人員技能不一、能力高低有差別、對編碼規範的遵循程度也不一樣。實作工具開發的語言多樣化,主流的開發語言Python、Java等還好,如果是AutoIt、vbs等這些比較少用的語言開發的工具後期維護就很麻煩甚至就沒人維護了。另外,測試人員畢竟沒有對編碼規範有很好的了解,代碼怎麼寫的都有、幾千行代碼注釋幾乎為0,也沒有開發文檔說明,維護起來特别困難。

  5、工具需求開發随意、釋出路徑不統一、工具釋出格式不規範。這也是管理的問題。工具沒有統一的管理就會衍生出很多額外的問題。比如前文提到的不知道從哪裡擷取工具、工具沒有指導書,我沒有編碼能力但是我識别出了工作中的短闆需要開發工具可以把需求送出給誰。。等等。。這裡,不是一定要強制某些工具不能開發,某些工具可以開發。從測試部整體角度來說,将工作量聚焦測試部topN效率短闆提升的工具開發肯定是必要的。。

工具開發改進幾點意見

  上面暴露的問題在我呆過的很多産品都遇到過,并不是個例。針對這些問題的解決方法,談一下個人觀點。

  1、工具統一管理。測試部内部釋出工具開發規範、統一工具釋出路徑、工具釋出格式(工具名稱+版本号、工具主要功能、工具作者、工具維護曆史、工具開發IDE等)。建議使用主流程式設計語言開發(Python、Java等),内部強調程式設計規範等。

 2、工具開發提高易用性。一是減少互動而是友善互動。減少互動主要是指沒有必要的輸入或者可以固化的輸入就內建到軟體中,需要依賴的步驟也可以直接在工具中實作。友善互動主要是指在windows系統使用時盡量提供界面化形式的互動視窗。windows上使用的程式培養的習慣是這樣。對于linux下,指令行互動沒有問題,但是每一步的輸入提示描述盡量簡單清晰。盡量可以達到傻瓜式的使用。實作的時候就從這個角度考慮。你不期望你給别人工具還要教他怎麼用吧。。

 3、提高工具可用性。這是功能的問題。通常這些效率提升工具都是個人在工作之餘花時間實作的,要求面面俱到也是很困難,但是盡量還是要保證主場景在絕大多數情況下運作正常,可以正常輸出預期結果。不能換一個測試版本工具就出問題就好了,别人可能就不想用了。對于工具的完善可以在下一次疊代優化。這是每一個工具開發人員都是應該思考的問題。。你也不期望自己釋出的工具别人一用就出問題。。對自己的形象也不好。。是吧

 4、提高工具可維護性。要求不高,就是多加一些注釋,代碼自己覺得可讀性還可以。函數/類盡量劃分的合理。至少保證自己過半年一年再回來看自己的代碼還能快速讀懂修改就差不多了。。

 5、工具定期宣傳。定期挑選一些好用的、具有一定普遍性的工具進行推廣。酒香也怕巷子深,每個工具開發作者也希望自己的勞動成果可以真正的讓其他人受益,讓自己的付出得到别人的認可。

  6、編碼技能交流。測試人員整體編碼技能還是相對較弱,工具的開發主要還是集中在一小部分人身上。可以将這部分人員統一集中起來多交流、探讨。也可以在測試内部推一些編碼基礎教育訓練課程或者是一些基礎文章,可以幫助有興趣提升編碼能力的測試人員。

小結

   工具開發管理維護使用暴露出的問題挺多的,其實沒有啥。畢竟都是測試人員在業餘時間開發的。做出來了總比沒做出來好,做出來的東西隻要稍加引導就可以不斷疊代優化改進。不可取的是沒有改進意識,容忍低效、重複、繁瑣的手工執行工作,這樣對自己沒有什麼好處。。

   限于時間,匆匆寫完,有些觀點可能表達不到位,針對這些問題,有興趣可以交流。。