中國(guó)軟件測(cè)試專家訪談錄(5)
如何把握軟件質(zhì)量
蔡:如何把握一個(gè)軟件的質(zhì)量呢?
邰:軟件測(cè)試的目的是什么?不僅是找bug,而是要隨時(shí)提供質(zhì)量相關(guān)的信息。質(zhì)量是什么?我比較喜歡的一個(gè)定義是RST課程里給出的:Quality is the value to someone who matters。做測(cè)試,首先要找到這個(gè)someone是誰,以及這個(gè)someone重視的value是什么。
問題里提到的"把握"軟件產(chǎn)品的質(zhì)量,我覺得這個(gè)詞用得很好,測(cè)試就像一把尺子,我們可以通過測(cè)試衡量一個(gè)產(chǎn)品的質(zhì)量,但不能"改變"一個(gè)產(chǎn)品的質(zhì)量。也許測(cè)試間接地提升了產(chǎn)品的質(zhì)量,但那不是測(cè)試本身最主要的目的。
如何把握一個(gè)產(chǎn)品的質(zhì)量?對(duì)這個(gè)問題,我們?nèi)匀豢梢詰?yīng)用Know Your Mission的思路來回答。
第一,找到這個(gè)問題的客戶是誰。是開發(fā)團(tuán)隊(duì)?運(yùn)維團(tuán)隊(duì)?最終的用戶?還是其他項(xiàng)目管理者?
第二,明白客戶在意的價(jià)值是什么,明白客戶希望測(cè)試提供什么樣的信息。
第三,制定測(cè)試策略,考慮如何開展測(cè)試以便盡可能提供實(shí)時(shí)準(zhǔn)確的質(zhì)量相關(guān)信息給客戶。
如果不思考這些問題,一上來就開始測(cè)試,例如,測(cè)試了100個(gè)用例,這能說明什么?說明被測(cè)系統(tǒng)的質(zhì)量如何?我們知道,測(cè)試域是無窮盡的,這個(gè)數(shù)據(jù)只是part(部分),而不是整體,意義并不大。測(cè)試工程師要具有全局的視角,首先找到客戶關(guān)心的value,然后據(jù)此開展測(cè)試。當(dāng)你知道要開展哪些測(cè)試活動(dòng)后,如果此時(shí)發(fā)現(xiàn)測(cè)試時(shí)間不夠,沒有關(guān)系,你可以按照風(fēng)險(xiǎn)的大小程度開展測(cè)試,先測(cè)試風(fēng)險(xiǎn)高的。這樣,測(cè)試人員不僅可以告訴別人已經(jīng)測(cè)了什么,還可以告訴別人哪些還沒有測(cè),哪些缺陷還沒有修復(fù),哪些地方還存在潛在風(fēng)險(xiǎn)。這種信息對(duì)于決策者更為重要,要想把握一個(gè)產(chǎn)品的質(zhì)量,一定要有全局的視角。
旁觀者說:對(duì)于測(cè)試人員來說,不但要嘗試著站在客戶的立場(chǎng)去使用軟件,而且要了解客戶在意的是什么,了解什么對(duì)于客戶完成他(她)的工作是重要的,這些都是測(cè)試的重點(diǎn)。否則,在軟件測(cè)試中平均用力,事倍功半。
質(zhì)量度量過程中的數(shù)據(jù)分析
蔡:我同意你的觀點(diǎn),在把握軟件質(zhì)量的時(shí)候的確是要有全局的觀點(diǎn)。那么,在具體做的時(shí)候,需不需要定義一些度量指標(biāo)呢?
邰:需要的。定義度量指標(biāo)有很多種方法,比如頭腦風(fēng)暴(Broadband Delphi)、GQM(Goal-Question-Metric)等。大家可以到網(wǎng)上找一些,然后選擇一些符合自己要求的度量指標(biāo)。在選擇度量指標(biāo)的時(shí)候,大家要明確自己的目標(biāo)。你關(guān)心的是什么?是bug相關(guān)的指標(biāo),還是人員相關(guān)的指標(biāo),抑或是流程相關(guān)的指標(biāo)?不要拿來就用,要多思考。
我這里倒是想要就度量過程中的數(shù)據(jù)分析談一談。大家知道,決定了度量方法后,就要開始收集數(shù)據(jù)。作為一個(gè)測(cè)試管理者,在面對(duì)度量結(jié)果,對(duì)這些統(tǒng)計(jì)數(shù)據(jù)進(jìn)行分析的時(shí)候,"要更像一名測(cè)試人員"--我的意思是,管理者此時(shí)要充分發(fā)揮自己作為一名測(cè)試工程師的長(zhǎng)處,要挑剔地思考(Critical Thinking),多疑多問,去挖掘這些數(shù)字背后的真實(shí)現(xiàn)象,而不僅僅是憑表面的一些數(shù)字就下結(jié)論,這種做法和Rick Craig提到的"Meta-Measure"這個(gè)詞的含義很像,也就是說,去度量你的度量項(xiàng)。
旁觀者說:不滿足于已經(jīng)得到的,多問幾個(gè)為什么。
當(dāng)我們看到產(chǎn)品的bug數(shù)連續(xù)很多天下降時(shí),不要光顧著高興。在高興之前,多問幾個(gè)問題,有哪些原因可能導(dǎo)致缺陷趨勢(shì)下降了:是產(chǎn)品變好了?還是測(cè)試工作受到什么方面的阻礙導(dǎo)致有些地方?jīng)]有辦法測(cè)試?抑或是測(cè)試用例的有效性變低了?有沒有測(cè)試人員積極性下降的因素在里面?等等。
無論對(duì)于測(cè)試管理者還是普通的測(cè)試人員,都要學(xué)會(huì)多問問題,挑剔地思考,逆向地思考,問各種各樣的問題。James Bach在"Critical Thinking For Testers"這門課程里講了一個(gè)簡(jiǎn)單易用的三步法,當(dāng)你需要挑剔地思考時(shí),只要問自己三個(gè)問題:
第一步,Huh?(嗯?)就是問:你說什么?你是說你執(zhí)行了100個(gè)用例而且全部pass?在得到數(shù)據(jù)時(shí)要做一個(gè)確認(rèn),確保自己聽到的是對(duì)方所要表達(dá)的意思。這一步可以避免交流中的誤會(huì)和傳遞錯(cuò)誤信息。
第二步,Really?(真的嗎?)反問對(duì)方,這是不是真的?這個(gè)過程可以去偽存真。
第三步,So?(接下來怎么做?也許事實(shí)比你認(rèn)為的還要嚴(yán)重。)和對(duì)方一起分析,基于這條信息,接下去我們需要做些什么。
旁觀者說:簡(jiǎn)單實(shí)用的三步,做好確認(rèn),展開深入的思考。
所以,總結(jié)下來,測(cè)試度量要做,測(cè)試數(shù)據(jù)要收集,但當(dāng)我們面對(duì)這些度量統(tǒng)計(jì)數(shù)據(jù)時(shí),把它們當(dāng)做Heuristics,我們不會(huì)完全Follow這些數(shù)據(jù),而是試圖去Apply這些數(shù)據(jù),再加上我們挑剔地思考,做正確的數(shù)據(jù)分析,讓這些數(shù)據(jù)為我所用。
做一個(gè)好的協(xié)調(diào)者
蔡:如何做一個(gè)優(yōu)秀的測(cè)試管理者呢?
邰:這個(gè)問題很大,我沒有全面地想過這個(gè)問題,這里我只想談一點(diǎn):一個(gè)好的測(cè)試管理者一定是一個(gè)非常好的協(xié)調(diào)者。他(她)對(duì)內(nèi)協(xié)調(diào)測(cè)試團(tuán)隊(duì),對(duì)外代表測(cè)試團(tuán)隊(duì)做各種溝通。
你知道,測(cè)試行業(yè)的特殊性之一就是總會(huì)有一些測(cè)試人員對(duì)自己的職業(yè)有困惑,有職業(yè)危機(jī)感,沒有信心。團(tuán)隊(duì)的管理者應(yīng)當(dāng)在團(tuán)隊(duì)里建立積極向上的氛圍,宣揚(yáng)和培養(yǎng)正面的職業(yè)認(rèn)識(shí)。軟件測(cè)試是一個(gè)非常有挑戰(zhàn)性、富有激情、充滿樂趣的職業(yè),值得為之奮斗,這是對(duì)內(nèi)協(xié)調(diào)很重要的一個(gè)方面。
旁觀者說:團(tuán)隊(duì)的管理者應(yīng)當(dāng)是團(tuán)隊(duì)的核心,成為團(tuán)隊(duì)的精神領(lǐng)袖。
對(duì)外協(xié)調(diào)就更難了,因?yàn)樵跍y(cè)試團(tuán)隊(duì)之外,有不少人并不了解測(cè)試。測(cè)試團(tuán)隊(duì)怎么做測(cè)試他們并不關(guān)心,但是產(chǎn)品一旦出了問題,就會(huì)來指責(zé)測(cè)試。測(cè)試管理者應(yīng)當(dāng)做好對(duì)外協(xié)調(diào),讓測(cè)試團(tuán)隊(duì)之外的人了解和理解測(cè)試,進(jìn)而理解測(cè)試團(tuán)隊(duì),這會(huì)方便測(cè)試工作的開展。
比如,測(cè)試的基本原則之一"窮盡測(cè)試是不可能的"。但是,有的測(cè)試之外的管理者并不是這么認(rèn)為的,而是認(rèn)為測(cè)試應(yīng)該抓住所有的bug。測(cè)試管理者應(yīng)當(dāng)通過各種方法讓他們對(duì)測(cè)試有正確的期待。我講課的時(shí)候,如果有測(cè)試之外的人來聽,例如開發(fā)經(jīng)理、一線的開發(fā)人員等,我會(huì)很歡迎他們,因?yàn)檫@會(huì)幫助他們更多地了解測(cè)試。
旁觀者說:對(duì)于測(cè)試團(tuán)隊(duì)之外的人對(duì)測(cè)試的誤解,管理者要做好解釋工作。如果有的人很沒有禮貌,輕視測(cè)試人員,這個(gè)時(shí)候測(cè)試團(tuán)隊(duì)管理者強(qiáng)勢(shì)一些也是好事。對(duì)于虛心想來了解測(cè)試工作的,則給予耐心和友好的幫助與解釋。
當(dāng)然,我們不能坐等別人改變想法,而是應(yīng)當(dāng)積極地去與他們密切合作,在合作中增進(jìn)相互了解。其實(shí),測(cè)試外部的角色都是"測(cè)試的客戶",我們?yōu)樗麄兲峁y(cè)試服務(wù)。像敏捷里提倡的,"與客戶合作勝過合同談判",測(cè)試管理者要想辦法讓這些"測(cè)試的客戶"參與到測(cè)試工作中來,與他們緊密合作。實(shí)際上,我們別無選擇,測(cè)試必須與其他角色緊密合作。大家知道,窮盡測(cè)試是不可能的,我們必須基于風(fēng)險(xiǎn)來開展測(cè)試。但是,誰更了解風(fēng)險(xiǎn)信息呢?我們應(yīng)該看到,測(cè)試外部的人可能更了解客戶,更了解需求,更了解風(fēng)險(xiǎn)所在,例如做需求設(shè)計(jì)的人,做開發(fā)的人,做售前、售后支持的人,銷售人員,經(jīng)驗(yàn)豐富的項(xiàng)目經(jīng)理等,我們應(yīng)該向他們學(xué)習(xí),邀請(qǐng)他們和我們一起做產(chǎn)品的風(fēng)險(xiǎn)分析,幫助我們決策哪里可以測(cè)試得更深入一些,哪里可以測(cè)試得淺一些,讓"測(cè)試的客戶"參與到測(cè)試中來。
旁觀者說:利用一切可以利用的力量,做好測(cè)試工作,就像統(tǒng)戰(zhàn)工作。
如何提高測(cè)試分析能力
蔡:你剛才也提到了,你是很看重測(cè)試設(shè)計(jì)的,我也認(rèn)為測(cè)試設(shè)計(jì)能力是測(cè)試工程師的核心能力之一。那么,一位測(cè)試工程師應(yīng)該如何提高自己的測(cè)試設(shè)計(jì)能力呢?
邰:簡(jiǎn)單點(diǎn)說,其實(shí)不是如何去提高測(cè)試設(shè)計(jì)能力,而是如何去提高他們的分析能力。拿到需求后,如何得到有效的測(cè)試用例?這中間有個(gè)很重要的步驟就是分析。我們需要使用某種方法或手段去分析被測(cè)對(duì)象,真正了解被測(cè)對(duì)象,不僅能了解需求文檔中描述的內(nèi)容,還能挖掘出文檔中沒有提到的或者寫錯(cuò)的內(nèi)容,這都需要很強(qiáng)的分析能力。經(jīng)過分析,你就會(huì)清楚,針對(duì)這樣的一個(gè)被測(cè)對(duì)象,應(yīng)該從哪些方面對(duì)其開展測(cè)試會(huì)比較好,這樣你就明確了這次測(cè)試任務(wù)的測(cè)試目標(biāo),確定了測(cè)試點(diǎn)。接下來,你如何達(dá)成這個(gè)測(cè)試目標(biāo),如何測(cè)試這些測(cè)試點(diǎn),就是測(cè)試設(shè)計(jì)的工作了。
測(cè)試工程師具備了分析能力,測(cè)試就會(huì)做到有的放矢。如果什么都是拍腦袋,臨時(shí)決定,這樣做缺乏全局觀,看到的是部分,而不是整體。得到的結(jié)果也是部分,不是整體。
蔡:那么,具體如何提高分析能力呢?
邰:你知道,分析能力不是知識(shí),而是一種skill(技能)。知識(shí)的提高可以通過看書、參加培訓(xùn)來實(shí)現(xiàn),技能的提高只能靠多實(shí)踐。我建議大家多拿一些需求來練習(xí)。例如,如果是學(xué)習(xí)Model Based Testing(基于模型的測(cè)試),就拿需求來多練習(xí)建模,甚至針對(duì)同一個(gè)需求用多種模型建模,去比較這之間的差異。如果可能的話,多個(gè)人一起學(xué)習(xí),可以拿自己的model和別人的做比較,當(dāng)然,如果能得到有經(jīng)驗(yàn)的人從旁指點(diǎn)就更好了。這樣的練習(xí)做多了,就會(huì)形成自己的分析型思維。
旁觀者說:學(xué)習(xí)既要個(gè)人獨(dú)自的努力,也要公開討論,二者各有好處。
招聘測(cè)試工程師時(shí)的要求
蔡:你負(fù)責(zé)招聘的時(shí)候,對(duì)于測(cè)試工程師有什么要求?
邰:回想過去招聘的時(shí)候,我覺得有的時(shí)候沒有招對(duì)人。如果我現(xiàn)在做招聘的話,我會(huì)重點(diǎn)考察面試者是否具備測(cè)試人員必備的一些測(cè)試技能。
比如,給面試者一個(gè)小程序去測(cè)試,或者給他一個(gè)小游戲去玩,或者問他一些問題,觀察他的反應(yīng),這個(gè)過程可以體現(xiàn)面試者的測(cè)試思維。再比如,觀察面試者的問問題的能力、邏輯思考的能力、逆向思考的能力、觀察是否細(xì)致等。
還可以給面試者一個(gè)有些挑戰(zhàn)性的任務(wù),觀察候選人的學(xué)習(xí)能力、分析能力、解決問題的能力,以及是否有面對(duì)挑戰(zhàn)的激情。如果一遇到問題,就不知道怎么做,或者沒有興趣去解決問題,原地待命,等待領(lǐng)導(dǎo),這樣的人不適合做測(cè)試。
有一點(diǎn)需要分清楚的是,有測(cè)試經(jīng)驗(yàn)并不等于具備測(cè)試思維,因?yàn)槎呤莾苫厥隆?/p>
旁觀者說:我在面試中比較看重發(fā)散思維能力。
在面試中,我不會(huì)問“什么是等價(jià)類”之類的直白的理論問題,因?yàn)闆]有意義。候選人即使不會(huì),也會(huì)很快學(xué)會(huì)。
敏捷讓測(cè)試如魚得水
蔡:現(xiàn)在敏捷已經(jīng)流行開來,很多公司采用了這種軟件研發(fā)方法。你對(duì)軟件測(cè)試如何適應(yīng)敏捷有什么建議?
邰:對(duì)于這個(gè)問題,我覺得可能換一種問法更好,并不是“軟件測(cè)試如何適應(yīng)敏捷”,而是“軟件測(cè)試如何適應(yīng)瀑布模型的?”
我在了解了敏捷之后,覺得這才是軟件測(cè)試應(yīng)該處于其中的開發(fā)模式。敏捷中的很多理念把測(cè)試的本質(zhì)充分發(fā)揮出來。
“個(gè)體和交互勝過流程和工具”強(qiáng)調(diào)的是以人為中心,而不是以流程和工具為中心。測(cè)試中以人為中心,強(qiáng)調(diào)的就是通過個(gè)人技能的發(fā)揮、通過與其他角色有效的溝通獲得有價(jià)值的信息,做高效的測(cè)試,這比一味地遵守流程和規(guī)范重要得多。
“可以工作的軟件勝過面面俱到的文檔”,這當(dāng)然是測(cè)試想要做到的。以前測(cè)試沒有辦法在項(xiàng)目早期就拿到可以工作的軟件開展測(cè)試,敏捷以后,測(cè)試不用等那么久了,我們可以盡早開展測(cè)試了。
“與客戶合作勝過合同談判”,這也是測(cè)試人員一直希望做到的。以前我們想找到客戶,想了解客戶到底在意哪些方面,我們希望站在客戶角度測(cè)試,可是很難做到,測(cè)試和客戶的距離太遠(yuǎn),我們只能把自己假象成客戶去測(cè)試。現(xiàn)在客戶和我們緊密合作,我們有很多機(jī)會(huì)和客戶接觸,了解客戶真實(shí)的需求,我們可以開展更有針對(duì)性的測(cè)試。
“響應(yīng)變化勝過遵循計(jì)劃”,這也是測(cè)試提倡的。測(cè)試要基于風(fēng)險(xiǎn),而風(fēng)險(xiǎn)是一直在變化的,我們必須擁抱變化、響應(yīng)變化,而不是只知道遵循一個(gè)事先制訂好的測(cè)試計(jì)劃,我們的被測(cè)對(duì)象一直處于變化中,我們要找的bug也不是按照計(jì)劃出現(xiàn)的,我們必須基于風(fēng)險(xiǎn)、調(diào)整測(cè)試,準(zhǔn)備隨時(shí)、隨地發(fā)現(xiàn)各種類型的bug。
在我看來,敏捷讓軟件測(cè)試如魚得水。所以,倒是以前在瀑布模型的時(shí)候測(cè)試需要去“適應(yīng)”。
旁觀者說:敏捷的好處前面邰曉梅已經(jīng)說得比較細(xì)了,我這里再來補(bǔ)充幾點(diǎn)個(gè)人的認(rèn)知,嘗試讓讀者朋友們得到一個(gè)全面的認(rèn)識(shí)。
(1)敏捷中仍然需要編寫和保留一定的重要的文檔,例如主要功能的設(shè)計(jì)。有的團(tuán)隊(duì)在實(shí)施敏捷的時(shí)候打著敏捷的旗號(hào)不寫文檔了,項(xiàng)目信息都存在組員的腦袋里。這樣做的風(fēng)險(xiǎn)是,每個(gè)人對(duì)于應(yīng)該做成什么樣子可能有不同的理解,而且當(dāng)有員工流動(dòng)的時(shí)候會(huì)有比較大的挑戰(zhàn)。
(2)客戶的參與在國(guó)內(nèi)是雙刃劍。有的客戶做事并不專業(yè),認(rèn)為自己是甲方就隨便更改需求,直接給研發(fā)團(tuán)隊(duì)下指令,導(dǎo)致研發(fā)團(tuán)隊(duì)疲于奔命。最好是既讓客戶參與,又讓客戶與研發(fā)團(tuán)隊(duì)保持適當(dāng)距離,避免干擾。
(3)是響應(yīng)變化,還是遵循計(jì)劃,需要單獨(dú)分析,看優(yōu)先級(jí)。
開發(fā)和測(cè)試會(huì)融合嗎
蔡:根據(jù)經(jīng)典的敏捷理論,在敏捷中就不再區(qū)分開發(fā)和測(cè)試了,你覺得這兩個(gè)角色在將來會(huì)融合嗎?
邰:這要看情況。有的公司開發(fā)人員很強(qiáng),他們?nèi)プ鰷y(cè)試也能做得很好,有的公司則不是這樣。所以我想,不需要把開發(fā)和測(cè)試在角色上鮮明地分開,說開發(fā)人員和測(cè)試人員,這不是問題的關(guān)鍵,而是可以把它們從工作上分開:有開發(fā)類的工作和測(cè)試類的工作。從這個(gè)角度看,測(cè)試類的工作一定會(huì)存在,至于是誰去做,就要看實(shí)際情況和能力了,這在ISTQB里稱為測(cè)試的獨(dú)立性(Independence of Testing),可以是開發(fā)人員做測(cè)試,他們可以把測(cè)試做得很好;也可以是專業(yè)的測(cè)試人員去做測(cè)試;還可以是獨(dú)立的第三方測(cè)試團(tuán)隊(duì)去做。
不管誰來做測(cè)試,都要保持一定的測(cè)試獨(dú)立性,畢竟測(cè)試有其特有的思維方式。這里的獨(dú)立性指的是精神上的獨(dú)立,而不是物理上的獨(dú)立(測(cè)試人員屬于專門的測(cè)試團(tuán)隊(duì),有自己?jiǎn)为?dú)的辦公區(qū)域等)。
旁觀者說:保持測(cè)試力量的獨(dú)立的確重要,這有利于測(cè)試人員做出質(zhì)量方面的判斷。至于是否保持獨(dú)立的測(cè)試團(tuán)隊(duì),可根據(jù)測(cè)試團(tuán)隊(duì)的成熟程度而定。一般來說,我推薦成立獨(dú)立的測(cè)試小組,讓測(cè)試工程師有歸屬感。
對(duì)于軟件測(cè)試行業(yè)前景的看法
蔡:對(duì)于測(cè)試行業(yè)的前景你怎么看?
邰:我認(rèn)為測(cè)試從業(yè)人員面臨的挑戰(zhàn)會(huì)越來越大。現(xiàn)在測(cè)試環(huán)境越來越復(fù)雜,例如云計(jì)算環(huán)境、復(fù)雜的網(wǎng)絡(luò)環(huán)境,被測(cè)對(duì)象也越來越復(fù)雜,bug也隱藏得越來越深,測(cè)試人員要充分了解測(cè)試環(huán)境和測(cè)試對(duì)象。
不管是測(cè)試新人還是有多年經(jīng)驗(yàn)的測(cè)試工程師,都有必要認(rèn)識(shí)自己的測(cè)試思維,不斷有意識(shí)地提升自己的測(cè)試技能。
書籍推薦
1、《Secrets of A Buccaneer Scholar》,作者James Bach,中文版書名為《學(xué)習(xí)要像加勒比海盜》。這是一本關(guān)于自我教育的書,也是James本人最滿意的一本著作,書雖然很薄,但James花了二、三十年時(shí)間才終于寫成,書中每一篇都是精華,記錄了James對(duì)自我教育、自我學(xué)習(xí)方面的認(rèn)識(shí)和經(jīng)驗(yàn),測(cè)試即學(xué)習(xí),相信本書能讓很多愛學(xué)習(xí)的人深受啟發(fā)。
2、《Lessons Learned in Software Testing》,作者Cem Kaner, James Bach, Bret Pettichord, 中文版書名為《軟件測(cè)試的經(jīng)驗(yàn)與教訓(xùn)》。本書堪稱軟件測(cè)試的“紅寶書”,書中以293條經(jīng)驗(yàn)教訓(xùn)的形式闡述了上下文驅(qū)動(dòng)測(cè)試學(xué)派(Context-Driven School)的各種啟發(fā)式(Heuristics)的觀點(diǎn),內(nèi)容涵蓋了測(cè)試認(rèn)知、測(cè)試技術(shù)、測(cè)試管理、測(cè)試職業(yè)等方方面面,本書可以作為測(cè)試人員的參考寶典,隨時(shí)翻閱。
3、《Essential Software Test Design》,作者Torbjorn Ryber。這是一本關(guān)于測(cè)試設(shè)計(jì)的書,書中以測(cè)試分析設(shè)計(jì)4步法的方式講述了常用的十幾種測(cè)試設(shè)計(jì)技術(shù)的應(yīng)用,并輔以實(shí)例。
4、《XUnit Test Patterns:Refactoring Test Code》,作者Gerard Meszaros,中文版書名為《XUnit測(cè)試模式:測(cè)試代碼重構(gòu)》。對(duì)于從事單元測(cè)試的人來說,這是一本難得的好書,書中談到了很多測(cè)試代碼的壞味道,以及大量已經(jīng)被證明的好的測(cè)試模式,使得測(cè)試代碼更易編寫和維護(hù)。
小結(jié)
邰曉梅在這次采訪中和我們分享了很多寶貴的經(jīng)驗(yàn),總結(jié)如下:
1、能夠被人所信任、所依賴,是價(jià)值的體現(xiàn)。
2、測(cè)試并不僅僅是發(fā)現(xiàn)bug,預(yù)防bug也非常重要。
3、開發(fā)和測(cè)試是一個(gè)完整的團(tuán)隊(duì),不要把開發(fā)和測(cè)試分隔得太“開”。
4、如果一個(gè)產(chǎn)品或項(xiàng)目有大量的bug暴露出來,作為項(xiàng)目管理者要注意了,這意味著項(xiàng)目本身有很大的改進(jìn)空間,產(chǎn)品的質(zhì)量不容樂觀。
5、測(cè)試團(tuán)隊(duì)的第一目標(biāo)是要得到一個(gè)可發(fā)布的高質(zhì)量軟件,而不是找到盡可能多的bug。
6、我們要學(xué)會(huì)應(yīng)用(Apply)測(cè)試流程,而不是遵守(Follow)測(cè)試流程。
7、做任何測(cè)試工作,首先要做的是Know Your Mission(知道你的任務(wù)所在)。
8、如果不知道客戶的期望是什么,則容易出現(xiàn)偏差。要了解客戶在哪里,期望的價(jià)值在哪里。
9、測(cè)試要以人為中心。不再以流程為中心,把流程、模板放到邊上,而把人放在中心的位置上。把測(cè)試工程師的能力和潛能發(fā)揮出來,這是比流程更重要的事情。
10、年復(fù)一年,不斷地覺得有新的值得去學(xué)習(xí)的東西,我也在一路不斷成長(zhǎng)。當(dāng)你一直在學(xué)習(xí)一直有收獲的時(shí)候,就會(huì)感覺很充實(shí)。我喜歡這種充實(shí)的感覺。
11、對(duì)于培養(yǎng)測(cè)試新手而言,我的觀點(diǎn)是,并不一定一開始就要學(xué)習(xí)系統(tǒng)的軟件測(cè)試知識(shí),或者去學(xué)習(xí)測(cè)試新技術(shù),而應(yīng)當(dāng)是多實(shí)踐并且多思考。給他們一個(gè)測(cè)試任務(wù),讓他們?nèi)プ觥_@對(duì)于新手來說肯定是個(gè)挑戰(zhàn),但是在這種情況下他們也會(huì)發(fā)揮自己的各項(xiàng)能力去做。當(dāng)然,指導(dǎo)者也不是撒手不管,可以和他們一起結(jié)對(duì)測(cè)試,發(fā)現(xiàn)他們的不足,指導(dǎo)他們?nèi)プ鰷y(cè)試。通過實(shí)踐,新人對(duì)軟件測(cè)試的認(rèn)識(shí)和興趣都會(huì)得到提高,然后再去教他們測(cè)試?yán)碚撝R(shí),例如等價(jià)類邊界值等,效果會(huì)更好。
12、人與人之間傳遞信息最有效的方式就是面對(duì)面的交流,比看文檔、讀書、參加培訓(xùn)效果更好。
13、如何成為測(cè)試牛人:① 描述你的目標(biāo);② 如果要實(shí)現(xiàn)這些目標(biāo),要掌握哪些技能和知識(shí)?③ 如何掌握這些技能和知識(shí)?
14、軟件測(cè)試的目的是什么?不僅是找bug,而是要隨時(shí)提供質(zhì)量相關(guān)的信息。質(zhì)量是什么?我比較喜歡的一個(gè)定義是RST課程里給出的:Quality is the value to someone who matters。做測(cè)試,首先要找到這個(gè)someone是誰,以及這個(gè)someone重視的value是什么。
15、作為一個(gè)測(cè)試管理者,在面對(duì)度量結(jié)果,對(duì)這些統(tǒng)計(jì)數(shù)據(jù)進(jìn)行分析的時(shí)候,“要更像一名測(cè)試人員”--我的意思是,管理者此時(shí)要充分發(fā)揮自己作為一名測(cè)試工程師的長(zhǎng)處,要挑剔地思考(Critical Thinking),多疑多問,去挖掘這些數(shù)字背后的真實(shí)現(xiàn)象。
16、測(cè)試度量要做,測(cè)試數(shù)據(jù)要收集,但當(dāng)我們面對(duì)這些度量統(tǒng)計(jì)數(shù)據(jù)時(shí),把它們當(dāng)做Heuristics,我們不會(huì)完全Follow這些數(shù)據(jù),而是試圖去Apply這些數(shù)據(jù),再加上我們挑剔地思考,做正確的數(shù)據(jù)分析,讓這些數(shù)據(jù)為我所用。
17、一個(gè)好的測(cè)試管理者一定是一個(gè)非常好的協(xié)調(diào)者。他(她)對(duì)內(nèi)協(xié)調(diào)測(cè)試團(tuán)隊(duì),對(duì)外代表測(cè)試團(tuán)隊(duì)做各種溝通。
18、經(jīng)過分析,你就會(huì)清楚,針對(duì)這樣的一個(gè)被測(cè)對(duì)象,應(yīng)該從哪些方面對(duì)其開展測(cè)試會(huì)比較好,這樣你就明確了這次測(cè)試任務(wù)的測(cè)試目標(biāo),確定了測(cè)試點(diǎn)。接下來,你如何達(dá)成這個(gè)測(cè)試目標(biāo),如何測(cè)試這些測(cè)試點(diǎn),就是測(cè)試設(shè)計(jì)的工作了。
19、分析能力不是知識(shí),而是一種skill(技能)。知識(shí)的提高可以通過看書、參加培訓(xùn)來實(shí)現(xiàn),技能的提高只能靠多實(shí)踐。
20、在我看來,敏捷讓軟件測(cè)試如魚得水。
21、不需要把開發(fā)和測(cè)試在角色上鮮明地分開,說開發(fā)人員和測(cè)試人員,這不是問題的關(guān)鍵,而是可以把它們從工作上分開:有開發(fā)類的工作和測(cè)試類的工作。從這個(gè)角度看,測(cè)試類的工作一定會(huì)存在,至于是誰去做,就要看實(shí)際情況和能力了。
22、不管誰來做測(cè)試,都要保持一定的測(cè)試獨(dú)立性,畢竟測(cè)試有其特有的思維方式。這里的獨(dú)立性指的是精神上的獨(dú)立,而不是物理上的獨(dú)立。
(連載完)
posted on 2013-07-12 10:14 順其自然EVO 閱讀(405) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄