51Testing專訪史亮:測試人員在國外
版權(quán)聲明:51Testing軟件測試網(wǎng)原創(chuàng)出品,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處、作者信息和本聲明,否則將追究法律責(zé)任。 史亮,東南大學(xué)計(jì)算機(jī)軟件與理論專業(yè)博士,研究領(lǐng)域?yàn)檐浖治雠c測試。2006年加入微軟(中國)有限公司,任職軟件開發(fā)測試工程師,負(fù)責(zé)微軟在線業(yè)務(wù)與商業(yè)智能產(chǎn)品的測試工作。2011年調(diào)至微軟總部,從事Microsoft Office 2013的測試工作。2012年與淘寶測試工程師高翔合著了《探索式軟件測試實(shí)踐之路》一書。2014年,獨(dú)自出版了《軟件測試實(shí)戰(zhàn):微軟技術(shù)專家經(jīng)驗(yàn)總結(jié)》。目前,史亮正從事下一代Microsoft Office產(chǎn)品的研發(fā)工作。
51Testing:史亮老師,您好,歡迎做客51Testing。聽說您目前在國外工作,您是出于什么原因選擇去國外工作的?
史亮:在2011年,我打算更換工作環(huán)境,以接觸更多的新技術(shù)和重要產(chǎn)品。于是,我主動申請工作調(diào)動,然后通過內(nèi)部面試流程,獲得了微軟總部的工作機(jī)會,所在部門是Microsoft Office。
51Testing:您去國外大概多長時間了?主要的工作內(nèi)容是什么?
史亮:從2011年到現(xiàn)在,我已經(jīng)在微軟總部工作了整整三年。最初我加入Microsoft Office部門,主要負(fù)責(zé)的是Microsoft Office 2013的研發(fā),工作內(nèi)容是測試Windows版本的Office產(chǎn)品。目前,我正參與研發(fā)下一代的Microsoft Office,主要工作是測試產(chǎn)品和開發(fā)測試輔助工具。
51Testing:很多朋友剛出國時會有不適應(yīng),您是否也如此?在國外工作了三年,您感覺國外公司和國內(nèi)公司存在哪些差異?(例如管理、工作環(huán)境、薪資、員工福利)讓您感受最深的又是什么?
史亮:沒有存在不適應(yīng)。我認(rèn)為測試人員的工作環(huán)境、工作壓力、員工福利等取決與具體的項(xiàng)目、團(tuán)隊(duì)和企業(yè),與企業(yè)的注冊國籍并沒有直接的關(guān)系。而且,目前國內(nèi)軟件業(yè)蓬勃發(fā)展,有形形色色的項(xiàng)目和團(tuán)隊(duì),任何外資企業(yè)所面臨的情況,都可以在中國企業(yè)中找到相似的語境。一些中國企業(yè)在全球處于領(lǐng)先的地位,他們的企業(yè)文化、工作方式和福利報(bào)酬都勝過外企,且領(lǐng)先優(yōu)勢還在擴(kuò)大。對于測試人員而言,應(yīng)該多接觸業(yè)內(nèi)同行,了解他們的工作實(shí)踐,以"他山之石可以攻玉"的心態(tài),虛心請教。然后,將好的工作實(shí)踐"因地制宜"地修改為適合當(dāng)前項(xiàng)目的方法,從而改進(jìn)項(xiàng)目環(huán)境、優(yōu)化工作成果。
51Testing:看來現(xiàn)在國內(nèi)外軟件測試行業(yè)的差異不是很大,測試人員想要出國發(fā)展還是十分可行的。那對于想要有出國發(fā)展的測試人員,您作為一個前輩對他們有些什么建議呢?
史亮:測試專家Cem Kaner和James Bach對于測試人員的職業(yè)發(fā)展有一條忠告:"不管選擇走哪條路,都要積極追求"。測試人員并沒有被鎖定在測試上,也沒有被鎖定在任何公司或軟件行業(yè)上。他完全可以選擇改變職業(yè)發(fā)展方向并追求其他目標(biāo)。一旦下定決心,就要對自己負(fù)責(zé),通過持續(xù)地努力來推動職業(yè)生涯的發(fā)展。
51Testing:前面聊了很多關(guān)于您在國外工作的部分,滿足了小編對于測試人員在國外工作狀態(tài)的好奇。根據(jù)小編的了解,現(xiàn)在很多測試新人對軟件測試的未來較為迷茫,而您在國內(nèi)外都工作過很長一段時間,有相當(dāng)豐富的測試經(jīng)驗(yàn),您是怎么看待未來的軟件測試人員的發(fā)展趨勢?
史亮:為了更好地討論這個問題,先介紹一個測試技術(shù)分類的參考模型。測試專家Lisa Chrispin和Janet Gregory在《敏捷軟件測試》中將測試技術(shù)劃分到如圖1所示的四個象限中。
圖1 敏捷測試四象限
"Q1:面向技術(shù)的(technology facing)、支持項(xiàng)目團(tuán)隊(duì)的(supporting the team)的自動化測試,例如單元測試、組件測試等。
"Q2:面向商業(yè)的(business facing)、支持項(xiàng)目團(tuán)隊(duì)的自動化和手工測試,包括功能測試、樣例、用戶故事測試、原型、模擬等。
"Q3:面向商業(yè)的、考驗(yàn)產(chǎn)品的(critique product)的手工測試,包括探索式測試,情景測試、可用性測試、用戶驗(yàn)收測試、Alpha及Beta測試等。
"Q4:面向技術(shù)的、考驗(yàn)產(chǎn)品的、基于工具的測試,例如性能測試、負(fù)載測試、安全性測試、屬性測試等。
利用敏捷測試四象限,測試人員可以快速理解測試技術(shù)在軟件開發(fā)中的位置,并根據(jù)當(dāng)前任務(wù)選擇合適的測試技術(shù)。不過,我并不同意Lisa Chrispin和Janet Gregory將探索式測試(exploratory testing)置于Q3象限。探索式測試是一種并行地實(shí)施測試學(xué)習(xí)、測試設(shè)計(jì)、測試執(zhí)行和結(jié)果評估的測試風(fēng)格。作為一種測試思維方法,它可以指導(dǎo)四個象限的任何一種測試技術(shù)的使用。
目前,軟件行業(yè)高速發(fā)展,以前所未有的速度向各個產(chǎn)業(yè)滲透。在互聯(lián)網(wǎng)應(yīng)用、移動應(yīng)用、物聯(lián)網(wǎng)應(yīng)用等重要領(lǐng)域,市場競爭日趨激烈。為了在競爭中脫穎而出,軟件項(xiàng)目團(tuán)隊(duì)必須具備高度的機(jī)動性,能夠快速地嘗試新想法,并持續(xù)發(fā)布具有特色的產(chǎn)品。這要求程序員負(fù)責(zé)更多的測試活動,通過加速"編碼-測試-重構(gòu)"的循環(huán),來快速交付高質(zhì)量的代碼。也就是說,程序員將承擔(dān)Q1象限(面向技術(shù)、支持項(xiàng)目團(tuán)隊(duì))的測試工作,以及部分其他象限的活動--以Q2象限(面向商業(yè)、支持項(xiàng)目團(tuán)隊(duì))的活動較為常見。
在該趨勢下,專職測試人員的活動將向四象限的右側(cè)和上方移動,更偏向面向商業(yè)的、考驗(yàn)產(chǎn)品的測試活動。從業(yè)務(wù)角度,測試人員的角色應(yīng)該是領(lǐng)域?qū)<液蛯?shí)際用戶,能夠以超越代碼(beyond code)眼光來考察產(chǎn)品的商業(yè)價值和用戶價值。從技術(shù)角度,測試人員的角色可以是黑客和技術(shù)專家,能夠在安全性、性能、穩(wěn)定性等領(lǐng)域?qū)嵤I(yè)的、高強(qiáng)度的測試。
另一個軟件研發(fā)的趨勢是DevOps,即融合研發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì),由一個團(tuán)隊(duì)負(fù)責(zé)整個產(chǎn)品開發(fā)、測試、發(fā)布、運(yùn)維和更新。在此類團(tuán)隊(duì)中,測試人員需要承擔(dān)部分開發(fā)和運(yùn)維任務(wù),例如分析服務(wù)端的日志、分析客戶端提交的遙測(telemetry)數(shù)據(jù)、分析用戶行為、報(bào)告服務(wù)狀態(tài)、定位產(chǎn)品問題、修復(fù)特定環(huán)節(jié)的錯誤、發(fā)布產(chǎn)品更新等。這意味著測試人員的工作不僅僅是尋找缺陷,而是通過技術(shù)調(diào)查(調(diào)查對象包括已發(fā)布的線上產(chǎn)品)來獲得產(chǎn)品信息,以持續(xù)提高產(chǎn)品質(zhì)量??梢哉f,在一些項(xiàng)目環(huán)境中,測試人員的職責(zé)發(fā)生了變化,需要更多樣化的技能。測試人員需要積極面對變化,拓展自己的能力,以適應(yīng)行業(yè)的發(fā)展。
51Testing:您已經(jīng)第二次做客我們51Testing了,上一次專訪我們聊得是探索式測試,相信很多朋友都對此印象深刻。作為探索式測試的資深人士,怎樣才能進(jìn)行有效地探索式測試?另外很多優(yōu)秀的軟件測試工程師都能敏銳地嗅到bug,您認(rèn)為該如何訓(xùn)練這方面能力?
史亮:首先,"態(tài)度決定一切"。成為一個優(yōu)秀的測試人員,我認(rèn)為最重要的基礎(chǔ)是對項(xiàng)目、對自己負(fù)責(zé)任的態(tài)度。對項(xiàng)目負(fù)責(zé),測試人員需要提供高質(zhì)量的測試服務(wù)來幫助項(xiàng)目成功;對自己負(fù)責(zé),測試人員應(yīng)該以專業(yè)人員(professionals)自居,堅(jiān)持專業(yè)主義(professionalism),追求精湛的技藝和卓越的成果。這需要通過日復(fù)一日的努力工作來落實(shí),無捷徑可言。
第二,Cem Kaner等測試專家指出"困惑是一種測試工具"。有時,軟件的表現(xiàn)出乎測試人員預(yù)料,但是他并不能確定這是一個缺陷。這說明測試人員對軟件的設(shè)計(jì)還有不了解的地方。他應(yīng)該將此疑惑視為一個學(xué)習(xí)的機(jī)會,通過閱讀文檔、咨詢同事等方法來獲得答案。推而廣之,如果測試人員對軟件、技術(shù)或項(xiàng)目產(chǎn)生疑問,他應(yīng)該感到警惕。這可能意味著他不了解業(yè)務(wù)邏輯,不知曉產(chǎn)品設(shè)計(jì),不清楚實(shí)現(xiàn)細(xì)節(jié)。這些知識上的漏洞會導(dǎo)致薄弱的測試設(shè)計(jì)和嚴(yán)重的缺陷遺漏。
負(fù)責(zé)人的測試人員不會放過任何一個疑問,在"好奇心"的指引下,他會"打破沙鍋問到底"。他會運(yùn)用多種手段(周密測試、代碼分析、軟件調(diào)試、文檔閱讀、請教專家等)對問題進(jìn)行研究。通過積極地測試和學(xué)習(xí),測試人員不但可以彌補(bǔ)知識的漏洞,還可以發(fā)現(xiàn)隱藏的缺陷。
第三,測試人員需要"刻意練習(xí)"。測試專家已經(jīng)給出了許多好的建議和方法,這些想法皆來自于實(shí)踐。軟件開發(fā)專家Ralph E. Johnson 指出"從實(shí)踐中來的知識在沒有實(shí)踐之前是無法被真正理解的"(practical knowledge has to be experienced to fully understood),測試專家Cem Kaner等也認(rèn)為"你不能掌握測試,除非你重新發(fā)明它"(You can't master testing unless you reinvent it)。因此,測試人員需要將學(xué)到的新技術(shù)應(yīng)用于真實(shí)的測試,并認(rèn)真評估其效果。通過練習(xí)、評估和反思,測試人員能夠掌握方法的原理和細(xì)節(jié),并混入自身經(jīng)驗(yàn)和其他技術(shù),以演化出新的方法。堅(jiān)持這樣的研究和創(chuàng)新將幫助測試人員走上精通之路。
51Testing:許多剛從事測試的新人往往會在工作的過程中發(fā)現(xiàn)自己的很多不足,想要提高自己,在您看來,測試人員應(yīng)如何提高自己的測試思維和測試技術(shù)?
史亮:前面兩個問題的回答對于本問題有參考價值。在這里,我補(bǔ)充說明一個測試人員容易忽略的要點(diǎn):提高測試技術(shù)的根本目標(biāo)是為了更有效的測試,在許多情況下,測試效果(測試技術(shù)的實(shí)施效果)決于測試人員對軟件和項(xiàng)目的理解。
我曾經(jīng)長期測試一個網(wǎng)絡(luò)應(yīng)用。當(dāng)我離開這個項(xiàng)目時,測試經(jīng)理安排一個測試員工來接替我。他剛剛?cè)肼殻瑢Ρ粶y軟件和業(yè)務(wù)領(lǐng)域都不了解,在工作中遇到了許多困難,我?guī)椭鉀Q了一系列問題。作為一個測試工程師,我的工作效率更高,主要原因包括:
" 我理解產(chǎn)品,知道它的業(yè)務(wù)目標(biāo),了解它通過什么方法去實(shí)現(xiàn)目標(biāo)。因此,我能夠快速地制定測試方案。
" 我理解用戶的期望,知道哪些功能絕對不能出錯,需要仔細(xì)測試。我也知道哪些功能允許一些瑕疵,即便出錯,也可以在三個月之后發(fā)布的下一個版本中修復(fù)。因此,我能夠更好地分配測試時間。
" 我理解產(chǎn)品的架構(gòu),閱讀過大部分模塊源代碼,知道哪些模塊容易出現(xiàn)哪些缺陷。因此,我可以針對不同的模塊采用有針對性的測試策略。
" 我曾經(jīng)嘗試自動化測試用戶界面,但是發(fā)現(xiàn)此類自動化測試很不穩(wěn)定,需要很高的維護(hù)代價,卻不能發(fā)現(xiàn)錯誤。于是,我只為Web服務(wù)編寫自動化測試用例,用手工測試來檢查用戶界面。因此,我回避了浪費(fèi)時間卻沒有收益的任務(wù)。
" 我了解產(chǎn)品元素和項(xiàng)目團(tuán)隊(duì)。當(dāng)出現(xiàn)缺陷時,我知道如何閱讀系統(tǒng)日志發(fā)掘蛛絲馬跡;當(dāng)我遇到困難時,我知道向哪位程序員或測試人員求助。因此,我可以深入挖掘并快速推進(jìn)。
" 我在原先的團(tuán)隊(duì)工作了很長的時間,與同事們保持了良好的關(guān)系。當(dāng)我提出一些可測試性的建議時,比較容易受到程序員的支持。
從以上幾點(diǎn)不難看出,我能夠更有效地測試,其主要原因不是我掌握更多的測試技術(shù),而是我更了解軟件產(chǎn)品、業(yè)務(wù)領(lǐng)域和項(xiàng)目環(huán)境。通過逐點(diǎn)分析,可以得到如下啟示。
" 產(chǎn)品是一種解決方案,如果沒有解決問題,它就是無用的。測試人員需要了解軟件產(chǎn)品和業(yè)務(wù)領(lǐng)域,才能設(shè)計(jì)有效的測試。
" 測試是一種信息服務(wù),要了解服務(wù)對象(通常最重要的服務(wù)對象是用戶和項(xiàng)目經(jīng)理)的需求。如果用戶不能容忍某些錯誤,測試人員就需要仔細(xì)測試相關(guān)功能;如果用戶對一些瑕疵并不在意,測試人員就不必在此花費(fèi)更多的時間。只有了解服務(wù)對象的優(yōu)先級,才能更好地設(shè)定測試工作的優(yōu)先級。
" 不同的模塊采用不同的技術(shù),擁有不同的典型錯誤。只有了解軟件實(shí)現(xiàn),才能設(shè)計(jì)差異化且有針對性的測試用例。
" 測試設(shè)計(jì)可能包含錯誤,測試人員需要從錯誤中吸取經(jīng)驗(yàn)和教訓(xùn)。避免一些已知的錯誤,會提高測試效率。
" 當(dāng)測試工作遇到困難時,測試人員需要知道在哪里尋找信息。了解產(chǎn)品能夠提供的信息、了解哪位同事知道更多內(nèi)幕,會節(jié)省時間。
" "人脈"有時候會極大地提高測試人員的工作效率,測試人員需要和程序員和測試同事保持良好的關(guān)系。達(dá)成協(xié)作關(guān)系的關(guān)鍵之一是測試人員能夠?yàn)橥聜兲峁└哔|(zhì)量的信息服務(wù)。
" 在職業(yè)生涯中,測試人員總是會遇到新的軟件、項(xiàng)目和團(tuán)隊(duì)。他應(yīng)該培養(yǎng)一種好的工作風(fēng)格,以求快速地理解產(chǎn)品和項(xiàng)目。
實(shí)施高效的測試需要很多條件。熟練地掌握測試技術(shù)是一個很重要的因素,但很少會是決定性的因素。只有充分地掌握軟件產(chǎn)品和項(xiàng)目環(huán)境,測試技術(shù)才能找到大放光彩的舞臺。
51Testing:想要提高測試技術(shù),書籍是必不可少的朋友,作為探索式測試的忠實(shí)實(shí)踐者,您能給我們的會員推薦幾本相關(guān)書籍嗎?
史亮:探索式測試是一個內(nèi)涵豐富的主題,感興趣的測試人員可以從以下書籍入手。
" Cem Kaner, James Bach, Bret Pettichord, 《軟件測試經(jīng)驗(yàn)與教訓(xùn)》(Lessons Learned in Software Testing:A Context-Driven Approach)。該書是語境驅(qū)動測試的經(jīng)典著作,充滿對軟件測試的真知灼見,是探索式測試者案頭必備。
" 史亮,高翔,《探索式測試實(shí)踐之路》。該書由我與淘寶資深測試工程師高翔合著,系統(tǒng)地總結(jié)了現(xiàn)有的探索式測試實(shí)踐,并納入了我們的經(jīng)驗(yàn)和反思。探索式測試大師James Bach對此書予以了肯定:This is the first book on exploratory testing, in any language, that summarizes the published work in the field。
" 史亮,《軟件測試實(shí)戰(zhàn)》。我本人是探索式測試的忠實(shí)實(shí)踐者,該書可視為"一個探索式測試者的自我總結(jié)"。全書雖然沒有強(qiáng)調(diào)名詞"探索式測試",但是探索式測試的核心精神(將測試學(xué)習(xí)、測試設(shè)計(jì)、測試執(zhí)行、測試結(jié)果評估作為相互支持的活動來并行實(shí)施)貫穿全書。
" 我和高翔在《探索式測試實(shí)踐之路》的附錄B提供了一批推薦讀物,供讀者參考。
51Testing:本次訪談即將接近尾聲,再問最后一個問題,您以后會選擇繼續(xù)長期留在國外發(fā)展還是回國發(fā)展呢?
史亮:我目前還在持續(xù)評估自己的職業(yè)發(fā)展,尚未做出長遠(yuǎn)的規(guī)劃。
51Testing:由于時間關(guān)系,本次訪談?wù)浇Y(jié)束,非常感謝史亮老師抽出寶貴時間參加我們的訪談,祝您在國外工作一切順利!
史亮:謝謝,也祝51Testing越辦越好!
版權(quán)聲明:51Testing軟件測試網(wǎng)原創(chuàng)出品,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處、作者信息和本聲明,否則將追究法律責(zé)任。
posted on 2014-08-26 09:41 順其自然EVO 閱讀(192) 評論(0) 編輯 收藏 所屬分類: 測試學(xué)習(xí)專欄