1. 程式人生 > >優秀測試工程師必備技能有哪些?

優秀測試工程師必備技能有哪些?

文章來源:網易易測(微信公眾號:et163yun)

看過很多技術書籍,聽過很多道理,卻依然在測試崗位上懷疑人生?或許,我們都該自測一下:優秀測試工程師該具備的技能,自己是否具備。

優秀測試工程師必備技能

將單純的測試變成專案質量保證工作

持續整合探索和推動和自動化測試技術研究

做好測試相關工具的開發


1.將單純測試轉變為專案質量保證


由單純的測試變成專案質量保證工作測試,從狹義的角度來講,包括如下這些環節:測試計劃和測試用例編寫-測試執行-質量報告書寫

測試人員一般會在開發階段就進行測試計劃和測試用例的編寫和準備工作;在測試階段,我們一般先會做功能測試,等專案功能基本穩定,bug較少了,就開始做相容性測試、效能測試、安全性測試。相容性測試

保證了產品在多瀏覽器、APP在產品在不同機型下的相容性;效能測試保證了產品在海量使用者大流量下的服務能力;安全測試能發現產品可能會被攻擊的各個隱患。做完了這些測試以後,人員釋出質量報告,產品上線。

不過,優秀的測試人員需要向上遊和下游拓展測試的領域,把自己放在“質量保障”的角色上,推動整個專案組一起保證質量,上游的工作包括:

1上游工作

在產品剛立項、進行需求確認的時候,測試人員就會參與進去,仔細地Review需求,看需求是不是完整、有沒有漏洞,這個時候還沒有進入正式開發,修改需求對於專案組來說代價是最少的。在這個環節,測試人員憑藉縝密的推演、發散性的思維,往往能發現很多需求的漏洞,提高了專案的整體效率。

另外,測試人員在完成測試計劃、測試用例以後,會邀請開發、策劃一起來評審測試用例,在這個環節,由於測試人員把每個需求如何細化測試都體現在了用例裡面,就相當於再次把需求分析了個透,往往還能發現很多需求的漏洞。這也是提早發現需求漏洞的有效環節。

2下游工作

在產品完成了測試以後,就是釋出的環節了,測試人員在釋出的環節也能發揮作用,首先,測試人員為了部署測試環境,研究自動化部署的技術,可以把上線部署的環節也自動化,以前需要2個小時的部署環節壓縮到半個小時甚至更少,而且更加準確可靠。

如果有些版本修改比較多,上線的質量風險大,測試人員會跟產品一起制定灰度釋出的方案並在技術上進行實現,讓版本先面向一小部分使用者開放,如果發現Bug了,影響的使用者也比較小,Bug改掉以後,再逐漸擴大使用者範圍。

另外,優秀的測試人員還會發動專案組的其他人一起來保證專案質量,比如推動開發進行程式碼Review;引入冒煙自測流程,讓開發先自測以後再提交給測試做冒煙測試;通過在專案組分析Bug,讓開發提高自測,降低Bug數量等;引入策劃、互動、視覺在測試階段進行走查,等等各種措施。

2.積極探索持續整合和自動化測試技術


業界都在說持續整合,那持續整合究竟是個什麼鬼呢?

持續整合原本的意思是讓開發每提交一次程式碼就自動化測試一次,如果自動化測試發現問題了,測試用例就會失敗,開發就會馬上發現這個失敗,並修改程式碼。

要做到持續整合可有很多工作要做。

第一:首先就是編譯環節,要把所有編譯的環節都自動化起來,開發每次提交程式碼都能進行自動編譯;

第二:編譯完成後,就是靜態程式碼檢查的環節,通過靜態程式碼檢查的工具檢查程式碼的問題,比如,資料庫連線池沒有釋放,引數不匹配等。

第三:靜態程式碼檢查完成後,就是單元測試了,單元測試用例一般是開發人員或者測試人員編寫,或者開發和測試合作編寫,保證的是開發內部函式的正確性。一個健康的自動化測試方案中,單元測試用例的佔比是最高的。

第四:然後就是介面測試,一般保證的是後端開發提供給前端開發的HTTP介面,介面一般也比較穩定,用例比較容易維護,所以,介面測試的自動化佔比也可以做到很高。

第五:在介面測試的上層就是針對使用者介面的UI測試了,就像測試人員手工執行一樣,UI自動化測試能操作頁面的元素,完成自動化。不過,由於使用者介面常常要重構,所以我們常常會控制UI自動化測試的規模,只覆蓋主幹的用例。

優秀的測試人員可以把自己的工作儘量自動化,並用持續整合框架串起來,提高工作效率和質量。

3.做好優秀測試工具的開發

優秀的測試人員會開發其他好用、趁手的工具來提高工作效率,比如資料自動生成、報表自動生成、報bug工具等。

其實歸根結底就是一句話:測試人員最核心的工作就是保障專案的質量,各類測試流程、技術、工具和平臺的發展讓我們可以更好地保證專案的質量。