2013年5月應邀接受了CSDN記者的專訪,距今已經十年了。整理文章,將這篇專訪也保存一下吧
隨著軟件規模的不斷增大和軟件復雜性的日益增加,軟件測試也顯得越來越重要,為了讓更多的人認識軟件測試行業,社區之星第26期采訪了領測軟件測試網創始人賀炘,探討軟件測試從業人員的地位、就業和發展現狀等熱點問題。
賀炘,領測國際科技有限公司首席軟件測試專家、ISTQB國際軟件測試認證委員會認證講師、CSTQB中國區專家組資深專家、CSDN軟件測評技術專業委員會會長、北京軟件行業協會測試工作委員會副秘書長、中國軟件服務外包標準評審委員會評審專家、《程序員》雜志特約軟件測試專家顧問、CSDN網站軟件測試專家、希賽網軟件測試專家以及CSDN SD2.0大會大師面對面活動主講嘉賓等。同時,他也是業內知名軟件測試培訓講師,有多年的軟件測試管理、項目管理和軟件配置管理經驗。精通軟件項目的開發、測試、配置管理流程。精通敏捷開發,TMMi的理論和方法,熟悉敏捷測試過程。
我們知道興趣是最好的老師
CSDN:請和大家介紹下你及所從事的工作。
賀炘:自06年開始創業至今,我從事的工作主要是軟件測試相關的培訓、咨詢和服務。我們目前擁有國內一流的軟件測試社區領測軟件測試網,面向非軟件測試工程師提供以就業為導向的軟件測試工程師就業培訓,針對測試工作的從業者我們引入了國際知名的軟件測試工程師認證培訓ISTQB業務,希望能切實的提高國內軟件測試的工作技能。
CSDN:當初你是如何踏入軟件測試行業的?
賀炘:我踏入軟件測試行業還是很偶然的,當時的求職并不像現在有很多招聘網站,連Email都不是很普遍,我屬于比較早接觸互聯網的學生,當時也沒有搜索引擎,在計算機相關的報紙上發現了北大方正的網址,鏈接上去發現有招聘信息,于是我寫了一封信,郵寄過去就收到入取通知書。入職后我才知道做的工作是軟件測試,當時也沒有概念。
CSDN:你從事軟件測試行業這么多年,已然是一個老兵,你是如何一路堅持走到今天的?
賀炘:老實說堅持并不容易,有很多機緣巧合的事情。當時我有很多機會轉去做開發,不過總在那個時間點上遇到升職加薪的意外,順著走也就過來了。當你在低級別的崗位上的時候可能看到的都是不如意,但當你的職位和責任變大的時候,你會不自主的思考為什么要這樣做,有沒有更好的辦法,這個時候你會發覺軟件測試工作是個非常講究策略和方法的工作,有太多需要學習和努力的領域,這個時候你已經不需要堅持了,順著你的好奇心鉆進去就好了,當然不是每個人都會有這樣的機會,那就更需要強迫自己和外圍接觸,和水平高的同仁切磋,這樣才會找到自己的努力方向,興趣才是最好的老師。
軟件測試工程師必須要深入理解用戶
CSDN:很多人都是自學進入軟件測試領域的,常常會有“該如何進行測試”的困惑,你有什么經驗可分享?你覺得什么樣的人適合做軟件測試以及如何在后續的工作中增強競爭力?
賀炘:首先我覺得測試工程師分為兩類,一類只是拿測試當個工作,養家糊口而已,另一類拿他當事業,希望在這個領域做出成績。
如果想入門的話,我錄制了一套入門的軟件測試學習視頻,有興趣大家可以下載看看。
如果想在測試的某個方向有所建樹,我覺得首先要保持自己的好奇心和學習能力。當然在這個階段,你一定已經入門了。我的建議是你的學習方向必須和你目前的工作有關聯,通過學習或者交流找到你遇到的問題大致的解決問題的思路,一路鉆下去。如果你有了完整的解決方案,你的競爭力自然就增強了。信心來自于你一點一滴的成功,成功累計到一定程度剩下的事情就都好解決了。
CSDN:現在有很多測試工具幫助軟件測試人員進行軟件測試,你能簡單介紹一下么?
賀炘:首先我不認為測試工具是銀彈,工具只能解決工具的問題,使用工具的畢竟是人。工具在解決效率問題上是非常擅長的。這個就類似我們看的武俠小說中寶劍和劍譜的關系,沒有武功心法,你拿到寶劍也沒用。
說回測試工具,目前通常我們會談自動化測試框架,具體的工具只是框架中的一個點。為了避免談具體哪款工具,給大家一個框架的概念吧:
- 按框架的定義來分,自動化測試框架可以分為:基礎功能測試框架、管理執行框架;
- 按測試類型來分,可以分為:功能自動化測試框架、性能自動化測試框架;
- 按測試階段來分,可以分為:單元自動化測試框架、接口自動化測試框架、系統自動化測試框架;
- 按組成結構來分,可以分為:單一自動化測試框架、綜合自動化測試框架;
- 按部署方式來分,可以分為:單機自動化測試框架、分布式自動化測試框架。
CSDN:對于如何管理軟件測試團隊以及建設好工程師文化,你有什么經驗可分享?同時,軟件工程師應具備什么樣的素質?
賀炘:由于Google和蘋果的崛起,我們一直在談工程師文化。作為公司的管理者,或者團隊的領導者當然也希望能有機會改變世界,不管我們懷揣什么夢想,如果想夢想成真勢必要從最基礎的事情上做起。
管理一個團隊首要的問題一定是團隊的使命,我們做什么事、解決什么問題、對客戶的價值是什么以及我們在這個關系鏈中起到什么作用等。
其次要解決的就是團隊構成,作為領導者,你如何將復雜問題進行有效的拆分,各個點上你需要的人才是什么。你可以根據你手里的資源來決定如何解決問題,也可以根據問題來籌劃需要什么樣的資源。
團隊組成了,剩下的就是怎么能共同完成目標了,團隊成員之間的關系,分工方式,獎勵等都是具體的考量,總之需要能把大家擰到一起,以使命為目標,一起融洽的干活。
這里我談談我理解的工程師文化,工程師文化是說產品如何做都由工程師說了算嗎?顯然這樣理解有些狹隘!權利和責任是相輔相成的,怎樣才能創造出偉大的產品?一定是能夠深刻理解用戶的人,如果一個團隊中沒有出現深刻理解用戶的工程師,片面強調工程師文化可能是個災難。
測試工程師的素質我覺得分兩個層次,普通的測試工程師需要細心、耐心、良好的溝通能力以及責任心等。如果你希望成為一個優秀的測試工程師,相比較其他行業并沒有什么特別之處,保持自信,保持好奇心,在你的專業上持續的解決復雜問題。
CSDN:軟件測試人員大多被稱作測試工程師,但也有不少的人認為其只是QA,你覺得測試和QA是怎樣的關系?
賀炘:這是個很重要的事情,其實測試工程師并不是QA,而應該稱為QC。之前我在《程序員》雜志上投過稿。
和這個問題有關的內容摘抄如下:
QA的英文為:Quality Assurance 我們翻譯為“質量保證”
QC的英文為:Quality Control 我們翻譯為“質量控制”
我們將這兩個角色之間進行一下職責劃分,以方便我們后續的討論。
QA:監控公司質量保證體系的運行狀況,審計項目的實際執行情況和公司規范之間的差異,并出具改進建議和統計分析報告,對公司的質量保證體系的質量負責。
QC:對每一個階段或者關鍵點的產出物(工件)進行檢測,評估產出物是否符合預計的質量要求,對產出物的質量負責。
通過上面的職責劃分,我們發現,如果我們將軟件的生產比喻成一條產品加工生產線的話,那QA只負責生產線本身的質量保證,而不管生產線中單個產品的實際質量情況。QA通過保證生產線的質量來間接保證軟件產品的質量。
而QC不管生產線本身的質量,而只關注生產線中生產的產品在每一個階段的質量是否符合預期的要求,如果我們生產的是杯子,那QC只關注:生產的材料是否是預期的,每個杯子瓶口的直徑是否符合要求,杯子把手是否符合設計要求等等具體的、可量化的點。
針對軟件企業的軟件開發過程而言:
QA可以進一步明確為SQA,即:軟件質量保證,只負責軟件開發流程的質量,企業內相對應的角色為:軟件質量保證人員,有的企業就直接稱之為SQA。
QC可以進一步明確為SQC,即:軟件質量控制,只負責軟件開發過程中各個階段產出的工件的質量,產出的工件可能是相關的文檔或者代碼等,企業內相對應的角色為:軟件測試人員。
敏捷測試與傳統測試最根本區別是心態問題
CSDN:在軟件項目開發中,測試是開發流程的一部分,也就是對其開發功能的驗證,使得有些人認為測試工作可以被開發人員兼做,你認為軟件測試與開發有什么區別?
賀炘:這個談到了測試的目標是什么?如果認為測試的目標只是找出Bug,那誰找不都一樣嗎,在這里我們談到的軟件測試應該是個建立信心的過程,只有過程可靠了,信心才能建立起來!
測試工程師是否可以由開發,或者某種技術取代?這個很難講,他牽扯到了被測系統、技術水平、開發成熟度、工具應用等諸多層面的綜合判斷,取代的例子目前有如Facebook,但是我看到的更多是無法取代的例子。
文字很難在這個層面說清楚,有興趣的話可以查看一下領測軟件測試沙龍的視頻,專門有一期就是講的這個問題。
在這里我舉個例子,大家都看過足球比賽,為什么11人的隊伍要區分前鋒、中鋒、后衛、守門員?為什么還有不同的陣型?前鋒不能守門嗎?守門員不能直接進球嗎?那種情況都有極端的例子,但不是常態。常態是什么?分工協作才是效率最高的方法!
測試工程師會被淘汰嗎?會的,一定有那一天!開發工程師會被淘汰嗎?會的,也一定有那一天!但是請記住,淘汰的是人,而不是這件事情,如果你做的不專業隨時都會被淘汰!測試工作是永遠不會被淘汰的。但是不專業的工程師隨時都會!
CSDN:在軟件開發產業中有一種非常普遍的習慣,那就是讓那些經驗最少的新手、沒有效率的開發者或不適合干其他工作的人去做測試工作;甚至有些人認為廣大的測試員所做的工作毫無意義,有沒有他們公司一樣運轉,項目一樣進行。你認為軟件測試人員的地位是怎樣的?
賀炘:首先這樣的事情確實存在,其次使用這種方法的公司至少目前質量絕對不是他的核心競爭力。并不是說這樣的方法不對,而是要辯證的看問題,一個公司存活下來一定有一定的道理,我總結了幾個理由:人無我有、人有我精、人精我賤。有興趣的話可以看看我在領測軟件測試沙龍中的視頻錄像,詳細闡述了這個觀點。
我的判斷:公司的競爭會在不同的層次展開,質量并不是每個企業在所有生存階段的必然選項,什么時候談什么話。不過一個偉大的企業是不可能不重視質量的,但是在通往偉大的道路上會有不同的階段性選擇。
CSDN:相對于敏捷開發紅遍大江南北的狀況而言,對敏捷測試的討論則低調得多。在各種不同的敏捷實踐中,測試在敏捷開發中有著怎樣的地位?你新浪微博的網名是:賀炘-讓測試敏捷起來,起這個名字有什么特別的意義嗎?而敏捷測試與傳統軟件測試有何區別?
賀炘:先解釋一下我的微博名字,原意是希望大家能以測試中的問題為切入點,敏捷的做測試,這可不是說讓大家用敏捷方法做測試哦,敏捷測試只是敏捷的做測試的一個選項而已!
敏捷測試和傳統測試的最根本的區別我覺得是心態的問題,敏捷測試更強調主動、自發、快速的響應和持續迭代、逼近答案。傳統測試(我更愿意稱為經典測試方法)更強調方法、體系、策略、通盤進行考慮再操作!方法無所謂好壞,不同方法會適用不同情況,敏捷測試中的用例設計方法更多還是采用經典測試方法,經典測試方法同樣應該借鑒敏捷中的一些實踐,快速交付可以評判的內容。
CSDN:當軟件開發組織采用敏捷開發時,測試團隊通常需要花很長時間來完成轉變。在很多公司中,獨立的質量保證團隊已經根深蒂固。當它們開始適應新的敏捷組織時,會遇到難以接受的文化差異。如何應對文化因素在敏捷測試中的影響,你有什么經驗可分享?
賀炘:其實我們先要區分這個到底是文化還是自我保護主義!
通常個體對改變都會有抗拒,因為畢竟不熟悉,會有利益上的直接考量。如果你知道了為什么大家害怕、為什么不配合,那就應該有有針對性的辦法了!
首先要在組織層面達成共識,我們要什么?怎么要?好處是什么?帶來的改變和壞處是什么?要持續不斷的溝通!
把遇到的問題都匯總出來,組織要有專門的人一對一的解決這些問題,讓改變對個人造成的影響最低,這樣阻力才會最低!
讓成功者得到獎賞,不要對前期的失敗進行處罰,引導大家轉向成功!
如果是企業文化的阻礙,那會非常復雜,先分析企業的基因,從上到下是否有這樣的土壤再做決定吧!
CSDN:在新興商業技術不斷涌現的今天,中國軟件測試行業目前狀況和國內外發展趨勢如何? 與國外相比現在還有哪些欠缺的地方?
賀炘:其實在軟件測試技術領域國內和國外的差距并不是非常大,最主要的問題是都沒有特別有效的方案徹底的解決測試遇到的問題。如沒有辦法清晰的說明軟件產品的質量狀態!還是處于探索和演進的過程中!國外有很多IT研發領域的大牛推進測試行業的發展,但是國內IT研發領域的領軍人物還是更多的關注開發新技術,有的時候還對軟件測試有些微詞,對測試更多的是不屑,而不是沉下心來去了解。
國外近年來出現了很多很好的實踐和方法體系,如ISO29119、TMMi、ISTQB等。國外將方法和技術研究的很細,國內目前還是學習和引入的階段,好的實踐和方法并沒有個很好的溝通平臺,這也是領測一直做領測軟件測試沙龍的原因。
另一個就是國內有個很不好的環境,一些人總是覺得測試技術含量低,待遇不用給太多。當然這樣的情況持續在改觀,我本身也認識很多年薪幾十萬的測試工程師,有些知名企業的技術高管也是測試工程師這條線上去的。但不可否認這樣的想法確實還是在一定范圍內存在的,需要更多的人為軟件測試行業正名!
CSDN:你是業內資深的軟件測試培訓講師,有豐富的大客戶培訓經驗,接受培訓的客戶累積上百家,以你多年的經驗看軟件測試培訓市場的發展現狀以及前景如何?
賀炘:從06年起我就一直認為軟件測試行業大有可為,因為中國一定是軟件大國,中國軟件企業的競爭一定會從功能實現上的競爭過渡到質量的競爭上,談到質量,軟件測試一定是重要的一環。
目前國內高校還顯有軟件測試專業,隨著軟件外包產業的興起,軟件測試工程師的需求也與日俱增。領測國際的發展也印證了這個判斷。
隨著國內測試工程師數量的增加,如何規范的做測試、如何更有效率的做測試以及如何能夠讓軟件測試敏捷起來將是企業重點考慮的事情,我希望領測國際在這個領域能夠做一些事情。
CSDN:隨著軟件測試在軟件研發過程中的重要程度越來越高,每個進入軟件測試領域的人隨著工作經驗的增長,都會有不同的心得體會,在軟件測試職業生涯的規劃上也會有自己的一些困惑和茫然,你對處在這個職業生涯規劃關鍵時刻的軟件測試人員有何建議?
賀炘:這個應該稱為成長的煩惱吧,實際上每個人在不同階段都會有不同的困惑,只要你有要求就一定有困擾,最重要的是明確自己想要什么,自己想走那條路,目標明確的時候,困惑和茫然就會少一些!
CSDN:網上有新聞報道稱,全國普通高校畢業生規模達歷史新高699萬,就業系數一再增加,而軟件測試專業的學生則成為企業爭相搶要的香餑餑,軟件測試專業在國內經歷了怎樣的一個發展過程?對即將進入這個行業的大學生你有什么建議?
賀炘:軟件測試專業在高校并不普及,這幾年我們也調研了一些國內有軟件測試專業的高校。老實說,很多課程還是拼湊的,老師有很多也沒有過軟件測試的工作經驗,這樣教出的學生的就業能力就可想而知了,就業不好學校的解釋有可能是專業沒有需求,通過我上面的分析應該得知這個是大錯特錯了。
目前軟件測試專業在國內高校應該還處于一個從無到有的過程,這個階段遇到問題都是很正常的!作為高校一定要明白企業如何做測試、用什么技術以及使用什么方法,這樣高校的畢業學生才會適銷對路。
作為畢業生,你已經知道今年有這么多的畢業生,你需要問問自己,如果你是企業,為什么會聘用你?當你的理由越充分,你的就業前景就會越好,你應該如何增加自己的就業砝碼是個需要考慮的問題!
CSDN:你對CSDN有什么建議?對未來有什么期待?
賀炘:CSDN作為中國第一的IT社區,希望能更多的關注軟件測試行業,更多的關注這方面的人和事。
希望CSDN能夠協助專業的測試工程師傳遞專業的軟件測試理念,讓開發工程師了解軟件測試工作,能吸引更多有能力的人進入軟件測試行業,共同推動測試行業的發展!(文/錢曙光 責編/張勇)
文章評論