這裏不談哲學,也不是無的放矢,而是有感而生。這要回到兩個月前,看到兩篇文章:微信
做者都是一線的資深軟件研發人員,瞭解測試的過去,但更受目前測試現狀的煎熬:框架
面對這些被測對象,大家的質量理念是什麼?運維
不知道後來人會怎麼評價這一段歷史,從質量技術人的角度看,理論與應用不但停滯不前、還在不斷後退「追求形,忽略神,當心技術革命的坑」工具
測試用例,一個熟悉而又陌生的名詞性能
大部分人對於測試生涯、測試價值、測試發展、測試方向都有一種悲觀的預感。單元測試
咱們都是不敢正視這些問題的,由於咱們會被完全戰勝學習
有沒有去思考測試自己的核心定位,測試自己的經驗教訓究竟是什麼?測試
測試的目的和初心究竟是什麼?大數據
咱們還能找回初心嗎?優化
還能靜下心來思考咱們真的是正確的作測試嗎?
真的只有這樣的一條路嗎?咱們還能有其餘的路嗎?
......
纔有瞭如文章標題那樣的演講。
軟件開發模式、技術和環境進步很快,但軟件測試則感受進步較慢、****比較被動,這其中的緣由可能不少,軟件測試的從業人員少,研究軟件測試的人更少、在軟件測試上的投入也比較低。
1. 今天的軟件測試如何呢?
積極的一面:
重視持續集成(CI)建設、關注DevOps
很是關注自動化測試(TA)
多數公司建成(TA)測試平臺
開始大量使用開源測試工具
代碼靜態分析有較大提高
大數據、雲平臺的測試初有成效
軟件測試社區活躍
…..
負面(主要問題):
公司的質量基建年久失修
內建質量文化沒有造成,缺陷預防作得較差
熱衷於招測試開發、重複造輪子,但TA成效低
熱衷技術,而缺少對測試自身的思考
面對軟件開發新模式缺少應對策略,如敏捷測試是形似而神不似
介入研發深度不夠,測試效率偏低
許多困惑依舊困擾很多測試人員
……
大多數測試人員還有下列困惑:
測試與開發有沒有界限?
誰來作測試更好?
如何更好地開展測試活動?
如何快速反饋質量?
測試效果的度量?
測試有沒有發展前途?
……
再舉一個例子,自動化測試是你們最爲關心的、最願意投入的部分,但成效很低。例如:國際上調查報告顯示:
根據國內今年的調查結果,顯示國內TA情況更糟糕:
若是在深刻TA的投入產出(RoI),可能就更糟糕。在TA上投入很大,而收益很低,特別是在需求不穩定、變動頻繁的狀況下,收益更不明顯。
2. 從新找回測試的初心
——按時交付用戶滿意的產品
(許多測試人員不瞭解 軟件質量模型 ,這是很可怕的)
如何找回初心?就是要多思考思考測試自身的問題——測試的質量(充分性)和測試的效率,從下列這些方法不斷思考如何作好軟件測試:
如何作好軟件測試的策劃、分析、設計、執行、評估、管理?
如何從被測對象——產品自身來提升其可測試性?
如何在組織中營造良好的質量文化?
如何制定有效的測試策略?
如何運用好測試方法、技術、工具?
如何創建穩定的、和開發環境集成的基礎設施?
.....
測試是不能窮盡的,無論採用什麼技術和工具,測試老是有風險的,咱們就要去思考如何下降測試風險,包括測試輸入、操做和上下文(應用場景)、業務規則組合、環境的多樣性、Test Oracle的啓發性等:
提及測試金字塔,十有八九會提到這個:
這裏實際是展現了自動化測試(投入)策略,但測試不僅有一座金字塔,還有兩座更爲重要的金字塔:
由於常常感覺到很多測試人員忽視測試需求分析、缺少測試分析和設計的思路,甚至本末倒置,一上來就討論功能及其測試用例,忽視業務、忽視用戶行爲、應用場景的分析,而產品最終是須要知足業務需求、知足用戶的需求,能適應不一樣的應用場景。測試設計的確重要,須要依賴所設計的測試用例(測試腳本)來執行測試,測試的覆蓋率體如今測試用例的覆蓋上,但沒有測試分析做爲基礎,測試設計會忽視某些測試區域、測試風險等。若是按照右邊金字塔這樣的分析設計之路去探索、逐步細化、逐步擴展,測試的充分性就有良好的保證。
當咱們迴歸初心,在今天快速發展、激烈競爭的環境下,還會遇到一些新的挑戰:
極速測試
高度的自動化
開發者自測(賦能、責任心)
大規模系統的複雜性
新技術
……
如何應對這些挑戰呢?
(這裏省去一萬字,如文化與流程重構、技術提高、開發與測試的融合 ... )
1) 契約驅動測試(CDT)
下降服務集成的難度,將其分解爲單元測試和接口測試
團隊能以一種離線的方式完成驗證, 並將聯調的成本幾乎降到零
基於契約讓接口的變動有跡可循
經常使用的CDT框架 Janus、Pact、Pacto和Spring Cloud Contract
自動化程度低
模糊的需求
有限的測試覆蓋率
測試數據瓶頸
某些組件沒法正常工做
ATDD/BDD、需求可執行
全SDLC
Harness/高度集成
跨平臺
可測試性保障
支持CD、DevOps
image
4)AI助力測試
智能的單元測試
智能的UI/API測試
AI驅動的腳本生成
優化或補充測試用例
質量風險評估的自我調整
缺陷診斷機器人(DDB)
測試環境的智能運維
……
5)總結:測試發展趨勢
ATDD/BDD/RBE,需求即測試~完全左移
CI/DevOps: 測試與開發、運維更加融合
分層測試、API/契約驅動測試
ET + TA: 更有效的測試策略
藉助MBT+AI,高度、智能的自動化測試
高度的可視化、集成化的過程監控、在線測試與實時反饋
測試人幹更具創造性、綜合性分析建模的工做
結語:
跟你們推薦一個學習資料分享羣:718897738,裏面大牛已經爲咱們整理好了許多的學習資料,有自動化,接口,性能等等的學習資料!人生是一個逆水行舟的過程,不進則退,我們一塊兒加油吧!本文轉載自微信公衆號,若有侵權,請聯繫刪除!