根據(jù)我的觀察剪况,優(yōu)秀的測試人員可以做的事情可以包括如下3點:
由單純的測試變成項目質量保證工作
持續(xù)集成探索和推動和自動化測試技術研究
測試相關工具的開發(fā)
1教沾、我們先來講第一點,由單純的測試變成項目質量保證工作
測試译断,從狹義的角度來講授翻,包括如下這些環(huán)節(jié):
測試計劃和測試用例編寫-測試執(zhí)行-質量報告書寫
測試人員一般會在開發(fā)階段就進行測試計劃和測試用例的編寫和準備工作;在測試階段,我們一般先會做功能測試堪唐,等項目功能基本穩(wěn)定巡语,bug較少了,就開始做兼容性測試淮菠、性能測試男公、安全性測試。兼容性測試保證了產品在多瀏覽器合陵、APP在產品在不同機型下的兼容性枢赔;性能測試保證了產品在海量用戶大流量下的服務能力;安全測試能發(fā)現(xiàn)產品可能會被攻擊的各個隱患拥知。做完了這些測試以后踏拜,人員發(fā)布質量報告,產品上線举庶。
不過执隧,優(yōu)秀的測試人員需要向上游和下游拓展測試的領域揩抡,把自己放在“質量保障”的角色上户侥,推動整個項目組一起保證質量,上游的工作包括:
在產品剛立項峦嗤、進行需求確認的時候蕊唐,測試人員就會參與進去,仔細地Review需求烁设,看需求是不是完整替梨、有沒有漏洞,這個時候還沒有進入正式開發(fā)装黑,修改需求對于項目組來說代價是最少的副瀑。在這個環(huán)節(jié),測試人員憑借縝密的推演恋谭、發(fā)散性的思維糠睡,往往能發(fā)現(xiàn)很多需求的漏洞,提高了項目的整體效率疚颊。
另外狈孔,測試人員在完成測試計劃、測試用例以后材义,會邀請開發(fā)均抽、策劃一起來評審測試用例,在這個環(huán)節(jié)其掂,由于測試人員把每個需求如何細化測試都體現(xiàn)在了用例里面油挥,就相當于再次把需求分析了個透,往往還能發(fā)現(xiàn)很多需求的漏洞。這也是提早發(fā)現(xiàn)需求漏洞的有效環(huán)節(jié)喘漏。
我們知道护蝶,代碼的質量歸根結底是由開發(fā)保證的,測試做的工作翩迈,只是發(fā)現(xiàn)Bug讓開發(fā)修復持灰。如果一個花瓶,一開始就是很完美的负饲;另一花瓶經過了各種修補堤魁,看起來比較完美,大家覺得哪個花瓶比較好返十?當然是第一個花瓶妥泉。所以,測試人員應該站在質量保障的立場洞坑,想辦法跟項目組溝通盲链、給開發(fā)提供工具,讓開發(fā)自己把質量保障工作做好迟杂。比較可行的一些方式是:提供一些手工用例讓開發(fā)自測刽沾;給一些自動化的接口和UI測試代碼讓開發(fā)自測;部署靜態(tài)代碼檢查工具排拷,并推動開發(fā)分析和修改發(fā)現(xiàn)的問題侧漓;有一些做得好的項目已經實現(xiàn)了持續(xù)集成,也可以嘗試监氢。
下游的工作包括:
在產品完成了測試以后布蔗,就是發(fā)布的環(huán)節(jié)了,測試人員在發(fā)布的環(huán)節(jié)也能發(fā)揮作用浪腐,首先纵揍,測試人員為了部署測試環(huán)境,研究自動化部署的技術议街,可以把上線部署的環(huán)節(jié)也自動化泽谨,以前需要2個小時的部署環(huán)節(jié)壓縮到半個小時甚至更少,而且更加準確可靠傍睹。
如果有些版本修改比較多隔盛,上線的質量風險大,測試人員會跟產品一起制定灰度發(fā)布的方案并在技術上進行實現(xiàn)拾稳,讓版本先面向一小部分用戶開放吮炕,如果發(fā)現(xiàn)Bug了,影響的用戶也比較小访得,Bug改掉以后龙亲,再逐漸擴大用戶范圍陕凹。
另外,優(yōu)秀的測試人員還會發(fā)動項目組的其他人一起來保證項目質量鳄炉,比如推動開發(fā)進行代碼Review杜耙;引入冒煙自測流程,讓開發(fā)先自測以后再提交給測試做冒煙測試拂盯;通過在項目組分析Bug佑女,讓開發(fā)提高自測,降低Bug數(shù)量等谈竿;引入策劃团驱、交互、視覺在測試階段進行走查空凸,等等各種措施嚎花。
2、持續(xù)集成探索和自動化測試技術研究
業(yè)界都在說持續(xù)集成呀洲,那持續(xù)集成究竟是個什么鬼呢紊选?
持續(xù)集成原本的意思是讓開發(fā)每提交一次代碼就自動化測試一次,如果自動化測試發(fā)現(xiàn)問題了道逗,測試用例就會失敗兵罢,開發(fā)就會馬上發(fā)現(xiàn)這個失敗,并修改代碼憔辫。
要做到持續(xù)集成可有很多工作要做趣些。
首先就是編譯環(huán)節(jié)仿荆,要把所有編譯的環(huán)節(jié)都自動化起來贰您,開發(fā)每次提交代碼都能進行自動編譯;
編譯完成后拢操,就是靜態(tài)代碼檢查的環(huán)節(jié)锦亦,通過靜態(tài)代碼檢查的工具檢查代碼的問題,比如令境,數(shù)據(jù)庫連接池沒有釋放杠园,參數(shù)不匹配等。
靜態(tài)代碼檢查完成后舔庶,就是單元測試了抛蚁,單元測試用例一般是開發(fā)人員或者測試人員編寫,或者開發(fā)和測試合作編寫惕橙,保證的是開發(fā)內部函數(shù)的正確性瞧甩。一個健康的自動化測試方案中,單元測試用例的占比是最高的弥鹦。
然后就是接口測試肚逸,一般保證的是后端開發(fā)提供給前端開發(fā)的HTTP接口爷辙,接口一般也比較穩(wěn)定,用例比較容易維護朦促,所以膝晾,接口測試的自動化占比也可以做到很高。
在接口測試的上層就是針對用戶界面的UI測試了务冕,就像測試人員手工執(zhí)行一樣血当,UI自動化測試能操作頁面的元素,完成自動化禀忆。不過歹颓,由于用戶界面常常要重構,所以我們常常會控制UI自動化測試的規(guī)模油湖,只覆蓋主干的用例巍扛。
優(yōu)秀的測試人員可以把自己的工作盡量自動化,并用持續(xù)集成框架串起來乏德,提高工作效率和質量撤奸。
3、測試相關工具的開發(fā)
優(yōu)秀的測試人員會開發(fā)其他好用喊括、趁手的工具來提高工作效率胧瓜,比如數(shù)據(jù)自動生成、報表自動生成郑什、報bug工具等府喳。
其實歸根結底就是一句話:測試人員最核心的工作就是保障項目的質量,各類測試流程蘑拯、技術钝满、工具和平臺的發(fā)展讓我們可以更好地保證項目的質量。