qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          51Testing專訪史亮:測試人員在國外

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

           51Testing:想要提高測試技術,書籍是必不可少的朋友,作為探索式測試的忠實實踐者,您能給我們的會員推薦幾本相關書籍嗎?
            史亮:探索式測試是一個內涵豐富的主題,感興趣的測試人員可以從以下書籍入手。
            " Cem Kaner, James Bach, Bret Pettichord, 《軟件測試經驗與教訓》(Lessons Learned in Software Testing:A Context-Driven Approach)。該書是語境驅動測試的經典著作,充滿對軟件測試的真知灼見,是探索式測試者案頭必備。
            " 史亮,高翔,《探索式測試實踐之路》。該書由我與淘寶資深測試工程師高翔合著,系統地總結了現有的探索式測試實踐,并納入了我們的經驗和反思。探索式測試大師James Bach對此書予以了肯定:This is the first book on exploratory testing, in any language, that summarizes the published work in the field。
            " 史亮,《軟件測試實戰》。我本人是探索式測試的忠實實踐者,該書可視為"一個探索式測試者的自我總結"。全書雖然沒有強調名詞"探索式測試",但是探索式測試的核心精神(將測試學習、測試設計、測試執行、測試結果評估作為相互支持的活動來并行實施)貫穿全書。
            " 我和高翔在《探索式測試實踐之路》的附錄B提供了一批推薦讀物,供讀者參考。
            51Testing:本次訪談即將接近尾聲,再問最后一個問題,您以后會選擇繼續長期留在國外發展還是回國發展呢?
            史亮:我目前還在持續評估自己的職業發展,尚未做出長遠的規劃。
            51Testing:由于時間關系,本次訪談正式結束,非常感謝史亮老師抽出寶貴時間參加我們的訪談,祝您在國外工作一切順利!
            史亮:謝謝,也祝51Testing越辦越好!
           版權聲明:51Testing軟件測試網原創出品,轉載時請務必以超鏈接形式標明文章原始出處、作者信息和本聲明,否則將追究法律責任。

          posted on 2014-08-26 09:41 順其自然EVO 閱讀(189) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衡南县| 永年县| 定西市| 界首市| 昌邑市| 南汇区| 若尔盖县| 玉山县| 盐池县| 沛县| 温州市| 新田县| 镇巴县| 拉孜县| 临桂县| 康定县| 永福县| 蒙阴县| 锡林郭勒盟| 天长市| 高淳县| 旬邑县| 潼南县| 鄂托克前旗| 徐州市| 神木县| 遂川县| 木里| 贵港市| 普陀区| 黑水县| 崇州市| 阳西县| 盱眙县| 仁寿县| 且末县| 抚远县| 临海市| 安福县| 彭州市| 渝中区|