自從事測試工作八年多以來,經歷過三個部門多條業務線,也經歷過測試轉型再回到測試,在此過程中對測試工作和角色的認知也逐步有些思考,想把這些思考分享給大家,希望為業務測試同學提供一些有價值的思路。
同時,在這我準備了一份軟件測試視頻教程(含接口、自動化、性能等),需要的可以直接在下方觀看,或者直接關注VX公眾號:互聯網雜貨鋪,這份測試文檔資料也打包在里面啦,免費領取!
軟件測試視頻教程觀看處:
軟件測試工程師大忌!盲目自學軟件測試真的會毀終生,能救一個是一個......
一、質量保障的本質是什么
質量保障有很多工作,如發布前對業務需求的功能測試、性能測試、a/b test等,如發布后對線上的功能回歸、冒煙巡檢、異常監控等,我們做這些工作都圍繞著“缺陷發現”,盡可能去發現系統潛在的bug,這似乎就是質量保障的所有內容和目的,但是可以跳出這些具體的工作內容,質量保障的本質到底是什么?
我認為質量保障的本質:
-
是一個盡力窮盡各種手段,不斷去“證偽”的過程;
-
是一個在有限條件和時間內,盡力將線上發生問題/故障的概率降低到最小的過程;
-
是一個站在風險控制的角色上,盡力提前發現/披露所有質量隱患的過程,并將出現質量問題的損失降低到最小的過程;
總結:質量保障的追求不是發現所有的bug、解決所有的風險,而是確保即使觸發了bug也不會帶來惡劣的影響,在此基礎上力求去發現盡可能多的bug ?-> bug 觸發概率降到盡可能低 -> 觸發bug后帶來的損失降到盡可能小。
二、測試過程的本質是什么
一線業務測試人員的大部分工作都在支撐業務的交付,從理解prd和技術方案,到給出測試方案,執行測試方案、發現bug、驗證bug再到發布后的回歸驗證,這是一個業務測試人員的大部分工作模式和流程,那么這個過程的本質是什么?我的理解是這一個詞“ROI”。
測試過程的本質是努力尋找質量缺陷發現與資源投入的平衡點,這里的資源投入不單指測試的資源投入,而是指業務交付上所有參與者的資源投入,所以在一定程度上是可以或者說是需要犧牲長尾缺陷的,我們的追求也應該是不斷去提高這個ROI,同時做好線上風險防控。
三、測試角色的價值
回答這個問題之前,我們需要先理清以下幾個問題:
1)測試角色的價值由什么決定?受什么影響?
-
取決于業務特性對質量的需求:不同的業務特性對質量的訴求不同,這取決于業務的用戶群體和規模、業務的金融風險、業務迭代導致出問題的概率和影響面等因素。
-
取決于業務發展狀態、技術架構成熟度:一般來說,當一個業務處于剛起步、高速發展時,技術由于需要快速滿足業務的需求,架構設計亂、基礎建設差,此時質量問題較多,也就強依賴測試角色來做強力保障,而后隨著業務穩定、技術基建完善、線上保障手段豐富,會在一定程度上減少對測試角色的依賴。
2)測試這一工作是否可以轉移/測試角色是否可以省略?可/需轉移的決定因素是什么?
首先答案是肯定的,可以轉移或者省略,雖然不一定是好的選擇~
-
業務對質量的訴求:業務的特性或者發展到一定程度,減弱對質量保障活動的需求。
-
線上風險的可控性:業務和技術成熟穩定,有比較可靠的線上風險控制能力。
-
質量活動的成本:在業務能夠承受一定質量風險的前提下,質量保障活動的成本需要降低,并且轉移的成本比維持現狀要低。
3)如何體現測試角色的價值?
反向思考:今天這個業務如果沒有測試角色,會怎么樣?業務會跑得更快更好嗎?
我們站在測試角色上,可以反思:
-
測試能力:
-
對所負責業務是否足夠熟悉,是否能站在獨特視角【區別于產研】來提出質量風險?
-
是否擁有一定的技術壁壘和門檻,是否可以被高級外包/研發替代?
-
測試應盡之責是否做到位并且獲得良好反饋,測試的職責范圍是否有擴展到“測試過程”之外的領域?
-
交付效率:
-
在業務需求繁重且緊迫情況下,測試是在起正向作用還是負向作用?
-
交付遇到阻塞問題或者困難時,測試起到什么作用?
綜上所述,測試角色的價值:
a.業務發展需要測試角色,進行質量保障活動來降低質量風險?【客觀】
b.組織在成本范圍內,可以組建并維持測試角色?【客觀】
c.測試角色可以用高ROI完成質量保障活動,并具備較高成本的不可替代性?【主觀】
因此我們只能通過以下兩個方向來提升測試價值的傳輸與外化:
-
提升ROI:以極致高的效率來發現缺陷,用高效的手段來證偽
-
在成本控制前提下,對質量貢獻是正向的;
-
在交付周期內,對效率提升是正向的;
-
提升可替代的成本:不斷變革先進生產力,努力轉化生產關系
-
努力將測試的職責擴大;
-
不斷研發新技術、新手段,提高技術壁壘;
-
與業務發展強綁定,力爭成為業務不可或缺的生產力;
以上三個問題是對測試工作的一些思考,那么對于我們一線業務測試人員應該具備哪些能力,才能夠去提升我們角色的價值?以下是我對三個層次測試人員的理解,可以分別從業務熟練度、測試方案與風險控制能力、合作協調能力、技術能力這四個維度去對照:
一個合格的業務測試人員應該具備哪些能力 【熟練度 完成度】
a.對所負責的業務線,產品業務邏輯和技術實現細節非常熟悉;
b.對日常測試流程及方案,熟悉并能順利完成,能夠主動解決卡點問題;
c.有一定的風險把控意識;
d.能與各方合作協調,順利推動需求交付;
一個優秀的業務測試人員應該具備哪些能力 【owner意識 合作共贏】
a.具備業務owner視角和意識,能提出質量風險并給出建議;
b.能承擔較復雜項目的測試一號位角色,能制定合理的質量保障方案;
c.能從全鏈路視野去提前預警風險;
d.能與各方協調合作良好,通過技術手段有效解決和減少交付過程中的卡點問題;
一個卓越的業務測試人員應該具備哪些能力【把控力 創新力 影響力】
a.打破思維局限和業務壁壘,能對業務所涉及的全鏈路通盤熟悉、風險把控;
b.能根據業務特性和質量風險短板,制定并落地合理化的質量保障體系化方案;
c.能更多承擔除“測試過程”以外的質量保障工作,如大促穩定性保障、線上問題發現與處理等;
d.能跨團隊、跨部門高效協作,有更多的“利他”思維,能通過創新型手段解決全鏈路題,并建立技術影響力;
以上是我對測試工作和角色的一些思考沉淀,希望對大家有所幫助,并能夠驅動大家在工作中不斷思考:
1.我當前負責的業務,對我的依賴程度有多大?具體是在哪些方面依賴我?
2.我測了10個、100個、1000個業務需求的差異是什么,對業務及對我自身的提升是什么?
3.我作為業務測試角色的核心競爭力是什么、有多大?
四、寫在最后
PS:這里分享一套軟件測試的自學教程合集。對于在測試行業發展的小伙伴們來說應該會很有幫助。除了基礎入門的資源,博主也收集不少進階自動化的資源,從理論到實戰,知行合一才能真正的掌握。全套內容已經打包到網盤,內容總量接近500個G。如需要軟件測試學習資料,關注公眾號(互聯網雜貨鋪),后臺回復1,整理不易,給個關注點個贊吧,謝謝各位大佬!
這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。