軟件測試行業悲觀走冷,“讓天下沒有難做的工程效能”是否一支強心劑
隨著互聯網的電商、金融等公司蓬勃發展,這些公司的技術團隊的規模也快速增長到了數百人,應用規模快速擴大,測試環境日益復雜,測試力量依然薄弱,應用驗證成本不斷提升。與此同時,由于充分的市場化競爭,產品的開發速度依然要求像過去十幾人的小團隊那樣快速迭代,同時還要保證更高的質量要求。傳統的項目集成及交付軟件已經不能滿足需求,工程的效能提升和質量保證上迫切需要平臺來支撐技術和業務的快速發展。
針對目前現狀,我們邀請章屹老師、阿里巴巴高級技術專家、測試架構師,發表了他自己的獨到見解,希望讀者朋友可以從中受益。
InfoQ:能否講講國內軟件測試行業的現狀如何?有什么獨到見解?
章屹:我接觸軟件測試行業通常通過兩個途徑。一個是軟件測試行業會議或論壇。二是云效上云后在各個企業用戶落地中遇到的同行。這些朋友來自互聯網企業或者傳統行業。
軟件測試行業在微軟時代有過一個頂峰。頂峰到什么程度呢?那個時候甚至聽到過碩士做開發、博士做測試的說法。微軟時代,測試講的是測試分析、測試的思維邏輯嚴謹性。往后發展,前幾年在Google的帶領下測試行業又出現了一個新的高峰,測試技術和測試工具成為了這個時期的主要熱點。
但據我觀察,近兩三年,軟件測試行業再次由熱轉冷。你會看到近幾年的主流測試行業會議分享的測試工具和技術漸漸少了,更多的是探討一些具體到點的測試新方法的嘗試,很少出現具備普適性的測試工具和技術。甚至在很多公開場合聽到了對測試未來的悲觀言論。這是一個很有意思的現象。你會發現從事測試工具開發的同事也比過去少了,各個軟件企業從事自動化測試的熱情也比過去要少。
為什么會出現這種現象,在我看來有兩點原因。
第一,業界只看到了自動化測試減少了回歸測試中的部分成本,但沒有體會到(除了我們之外)自動化測試對持續集成持續交付中的重大作用。自動化測試的價值受到質疑,使得從事研發測試工具開發的團隊受到普遍的挑戰。連帶著各項測試技術受到挑戰,使得業內流向這個領域的人才越來越少。
第二,過去在電信或硬件行業做測試,你需要豐富的通信理論或硬件理論和經驗。測試的技術門檻較高,測試的手工操作背后包含了足夠的技術背景,不會有人質疑這些行業的測試的價值。但在互聯網快速發展后,技術的入門門檻越來越低,似乎只需要了解貼近自身生活的的互聯網業務場景就可以進行業務測試。
在這樣的背景下,我們更為迫切地需要把成功的、普遍適用的研發測試工具,持續集成持續交付平臺及相關理念經驗,更快地在業內傳播,希望成功的星星之火可以燎原。
InfoQ:國內有經驗的、專業的測試工程師就不多,更何況是技術精湛的測試架構師。目前國內的測試架構師的定位是否清晰?還是僅僅只是一個title?與國外的測試架構師的距離還有多遠?
章屹:對測試架構師的定位在阿里巴巴B2B來說還是很清晰的,用技術的手段解決領域級別的研發效能和質量問題,并沉淀出通用的方案或工具,是對測試架構師的要求。
但這也對測試架構師提出了很高的要求。很多質量和效能的問題往往需要跨技術域才能找到最佳的技術解決方案,所以好的測試架構師首先要有一個 廣闊的知識域 。
同時他在解決問題時需要快速深入技術問題細節并很好的處理,這對 技術深度和學習能力 也提出了很高的要求。
不僅如此,和開發架構師一樣面臨業務及產品挑戰的同時,測試架構師還面臨著質量和效率,質量和效率離不開人,所以我們看到好的測試架構師往往有 很好的溝通協調能力 。
以這些要求看,對國內的測試架構師的要求并不亞于國外的測試架構師。此外,測試架構師的職責也在延伸,除測試和研發的質量效能外,我們可以看到在容災、容量評估、安全等領域都有不錯的測試架構師成長出來。
InfoQ:對于任何一個軟件開發人員來說,架構師都是一個令人向往的角色。就連比爾蓋茨在2000年卸任公司CEO的同時,也擔任了微軟公司的榮譽角色“首席軟件架構師”。測試架構師與架構師有什么異同點?測試架構師的成長之路有什么特別之處?測試架構師需要哪些特別的能力?
章屹:測試架構師和開發架構師有共性,都具備業務架構能力的理解和規劃,但兩者的差異也不小。簡單而言,開發架構師專注于支持業務的技術,比如大容量、大并發帶來的技術挑戰。而測試架構師更專注于工程效能和質量。
從B2B的測試架構師的成長來看,測試架構師往往分為兩類,業務測試架構師和技術測試架構師。業務測試架構師更注重可測性,并且會在自己域內使用現有研發測試工具或少量二次開發來解決質量和效率問題。技術測試架構師一方面負責研發測試工具平臺的建設,另一方面會找到各個域共性的質量和效率的難點問題,用工具化平臺化的方式去解決。
InfoQ:阿里云效平臺在改名之前支撐著Alibaba.com和Aliexpress.com網站內部,真正實現持續集成持續交付。是基于什么原因和目的將云效對外開放?
章屹:云效平臺和阿里的其他上云的產品一樣,都是長期服務阿里自身的業務發展而產生出來的,經歷了阿里的業務本身的各種考驗。也因為如此,一些使用云效的阿里同事離開阿里來到一些新公司之后,他們會發現隨著技術團隊的擴大,在工程的效能提升和質量保證上迫切需要類似云效這樣的平臺來支撐技術和業務的快速發展。于是他們找到了我們,云效就這樣對外開放了。
在服務了這些最初的公司之后,我們也有了自己的思考。阿里的特長在于為B類企業服務,B2B如此,天貓淘寶、釘釘也是如此,“讓天下沒有難做的生意”這句話(阿里巴巴集團執行主席馬云,曾經作過《讓天下沒有難做的生意》的主題演講)很好詮釋了這一點。
為B類企業服務的基因也深深扎根于云效這個團隊。我們在想我們能不能做“讓天下沒有難做的工程效能”。我們都知道,一個技術團隊隨著規模的擴大,研發測試全流程的各個節點的工作效能和質量提升都是難言之隱。說難言之隱是因為,它呈現的各種問題的嚴重性不一定能明確顯性化出來,但的的確確讓技術團隊的每個人都痛苦不堪,卻又難以忽視。
各個企業也都在嘗試做研發測試的效能提升,但成功的不多。一方面研發測試效能領域龐雜,好的跨領域專業化的人才稀缺,具備技術能力同時有很好的溝通協作能力的人才更少,因為這個領域不僅涉及技術,還涉及研發、測試、SQA等團隊協作。
在過去的幾年,我們有了種種經歷,積累了較為豐富的經驗。所以在云效的對外開放中,我們倡導的不僅是平臺的輸出,還有理念的分享、團隊的打造以及各種問題的對應策略的傳播。
InfoQ:目前云效已經在多家互聯網公司的軟件技術團隊落地,并開始逐步深入到傳統軟件行業。那么,是如何落地到企業中?落地到互聯網公司和傳統軟件行業有什么不同的挑戰?
章屹:傳統行業之前的軟件更新迭代的速度是遠低于互聯網行業的,但可喜的是,近年來的互聯網化使很多軟件行業的軟件更新迭代速度不斷加快,于是對實現研發測試效能提升和持續集成持續交付有了更迫切的愿望。
但每個行業的軟件企業的痛點都不一樣,細分行業內的軟件企業工程理念、歷史包袱、技術基礎、團隊規模各不相同,都對云效平臺的落地提出了挑戰。目前我們遇到的相對較大的挑戰還是對方的理念差異問題。技術可以快速引入,但理念的轉變需要時間。
我們在和潛在用戶交流的時候會充分了解對方的實際情況,比如技術團隊規模及組織結構、技術棧、工程效能理念、代碼工程規范度、現有的工程技術資產、產品迭代周期、業務發展狀況,等等。從中挑選出真正需要的用戶,根據對方的實際情況制定出不同的實施方案,方案包括不同的研發測試工具及相關理念、技能的培訓和分享。只有如此,才能真正落地到需要的軟件企業中去,為他們帶來價值和能力。實現我們“讓天下沒有難做的工程效能”的愿望。
InfoQ:可否深入講解什么是持續集成持續交付,并分享幾個特別的案例?
章屹:持續集成和持續交付業內都有明確的定義。
持續集成的定義更明確,Martin Fowler是這么定義的:持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯、發布、自動化測試)來驗證,從而盡快地發現集成錯誤。前幾周在GIT訓練營我對開發工程師及架構師讀完這段定義,我問大家根據這個定義,大家覺得最難實現的環節在哪里,大家一致認為是自動化測試。
回到持續交付的定義,大家也一致認為最難實現的環節是自動化驗證。這是一個有趣的例子,很多持續集成和持續交付的分享大都談了如何自動化的構建、編譯以及發布,但很少提到自動化測試或驗證。也許它確實是如此的難以實現,而使得人們很少談論它的實踐。
在ArchSummit深圳大會上,我會重點介紹自動化驗證的實踐環節,希望能給到一些新的思路。
InfoQ:平時關注行業哪些技術的發展,有什么不同的見解和看法?從事十多年從事軟件的測試、開發、系統設計工作,有什么感悟和經驗與大家分享?
章屹:技術需要專注,專業度也需要一定時間的堆砌。
我本人是喜歡長期專注在一件事情上的。但命運讓我在十幾年間從事了硬件開發、大系統設計、軟件測試、軟件開發等工作,也經歷了軍工行業、通信行業、互聯網行業。好在每項工作或行業,我最少也待了2年以上,雖然不敢說專業,但也得到了一些沉淀和體會。這些經歷使我習慣性地會用一些跨領域的技術觀點去看待手頭的所負責的技術工作,便于更快找到解決方案。
中途也嘗試過創業,推銷過軟件,失敗的經歷讓我意識到純靠技術是不行的,必須業務和技術高度結合。我每上手一個新的工作內容,會習慣性先去了解這個內容涉及的橫向和縱向的業務目標,據此思考自身工作帶來的業務價值,再去研究對業務有促進的相關技術。
目前我的工作涉及工程效能、運維和穩定性,也包括了云效的技術工作,所以我會關注對這方面有促進作用的相關技術,比如Docker、微服務、運維自動化等。
受訪嘉賓介紹
章屹,阿里巴巴高級技術專家、測試架構師,清華大學電子工程系碩士畢業,十多年從事軟件的測試、開發、系統設計工作。現為阿里巴巴B2B技術部-質量保證部-工程效能部技術負責人,負責提升研發測試效能的持續集成持續交付平臺——宙斯盾(云效)的技術規劃和建設工作。