您好,登錄后才能下訂單哦!
概念與思辨深度
一個(gè)行業(yè)的發(fā)展似乎總伴隨著更多的概念被塑造出來(lái)。拿測(cè)試來(lái)說(shuō),我們有單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、回歸測(cè)試、冒煙測(cè)試,等等。我們緣何塑造如此多的概念來(lái)“為難”自己呢?答案可以用我從@李智勇SZ老師那學(xué)到的“概念越純粹表示思辨深度越深”這句話(huà)加以解釋?zhuān)@一切又為了提高同行間的溝通效率。需要特別指出的是,多個(gè)相似但不同的概念想表達(dá)的是各自的不同之處,而非共同之處。為此,如果人家在討論單元測(cè)試時(shí),你冒出一句“寫(xiě)好程序,編譯完,跑一跑,看看寫(xiě)得對(duì)不對(duì),這就是最簡(jiǎn)單的UT??!”就不大合適,因?yàn)檫@說(shuō)明你根本沒(méi)有理解單元測(cè)試的概念(可以讀一下我寫(xiě)的《明晰單元測(cè)試》一文)。如果你再加上一句“靠,都是測(cè)試,分那么清干什么?”,那還表明你邏輯不清。
我近期所寫(xiě)的《對(duì)軟件測(cè)試團(tuán)隊(duì)“核心價(jià)值”的思考》一文引發(fā)了一些討論。比如,@朱少民老師(后面簡(jiǎn)稱(chēng)朱老師)指出:“‘(文中所述測(cè)試)幫助開(kāi)發(fā)人員提高其開(kāi)發(fā)質(zhì)量和效率’是軟件測(cè)試團(tuán)隊(duì)的價(jià)值取向之一,但還不是軟件測(cè)試團(tuán)隊(duì)的主要核心價(jià)值“。于是我向朱老師請(qǐng)教他所理解的測(cè)試核心價(jià)值,得到的回復(fù)是“軟件測(cè)試最核心的價(jià)值還是能夠快速發(fā)現(xiàn)問(wèn)題以提供產(chǎn)品的質(zhì)量反饋,有能力提供準(zhǔn)確的、客觀(guān)的、完整的質(zhì)量評(píng)估,并通過(guò)缺陷分析、用戶(hù)行為分析等,確定缺陷模式和開(kāi)發(fā)人員不良行為、習(xí)慣等,幫助開(kāi)發(fā)人員預(yù)防缺陷(從設(shè)計(jì)到編程、單元測(cè)試,不僅僅是設(shè)計(jì))”。
之后我的回復(fù)是,“我們應(yīng)將QA(Quality Assurance,質(zhì)量保證)與測(cè)試區(qū)分開(kāi)來(lái)”,因?yàn)槲艺J(rèn)為朱老師將測(cè)試的范圍定義得太大了。但朱老師卻幫我指出“我這是地地道道的測(cè)試,看來(lái)你對(duì)QA理解不夠。QA的主要對(duì)象是(包括開(kāi)發(fā)、測(cè)試)流程,QA人員評(píng)審、審計(jì)和改進(jìn)流程,以保證質(zhì)量。測(cè)試的對(duì)象是產(chǎn)品,包括階段性半成品。從嚴(yán)格意義看,測(cè)試就是對(duì)軟件產(chǎn)品的質(zhì)量評(píng)估”。
類(lèi)似與QA和測(cè)試相關(guān)的討論發(fā)生在@左耳朵耗子老師寫(xiě)了《我們需要專(zhuān)職的QA嗎?》一文之后。這些討論又為我們帶來(lái)了@程序員鄒欣老師寫(xiě)的《測(cè)試QA的角色和分工》,以及@段念-段文韜老師寫(xiě)的《對(duì)《我們需要專(zhuān)職QA嗎?》的回應(yīng)》。在本文我想順便談一談以前讀這些文章的看法。
誰(shuí)對(duì)誰(shuí)錯(cuò)?
如果讀過(guò)我所寫(xiě)的《軟件開(kāi)發(fā):個(gè)人與團(tuán)隊(duì)是永遠(yuǎn)的核心》一文的話(huà),知道我給出了高質(zhì)高效軟件開(kāi)發(fā)的一個(gè)效能模型。從模型所涵蓋的內(nèi)容來(lái)看,其范圍非常廣,包括行為、能力和方法三大支柱。某種程度上,我們?cè)谲浖袠I(yè)的職場(chǎng)旅程有點(diǎn)象是“盲人摸象”(但我們能溝通),這個(gè)摸索的過(guò)程與我們從事的軟件細(xì)分行業(yè)(如互聯(lián)網(wǎng)、通訊、銀行)、服務(wù)公司(如國(guó)企、外企、私企)、工種(如開(kāi)發(fā)、測(cè)試)等都有著很直接的關(guān)系,所獲得的一種成功經(jīng)驗(yàn)很可能在另一種情形下根本行不通。摸索的過(guò)程很容易通過(guò)現(xiàn)實(shí)去理解書(shū)本上的東西,這不是壞事,但千萬(wàn)不要以為所“眼見(jiàn)的”就是“宇宙真理”,也千萬(wàn)別放棄自己的獨(dú)立思考。
存在爭(zhēng)議并不是壞事,我們之所以爭(zhēng)議,是因?yàn)槲覀冇兄煌某砷L(zhǎng)途徑和思考深度(年齡起著一定的作用)。爭(zhēng)議的焦點(diǎn)不是為了“你死我活”地相互“拉黑”,而應(yīng)最大可能地達(dá)成共識(shí)和完善自我認(rèn)識(shí)。所達(dá)成的共識(shí)越多就越是知道“象的模樣”,這對(duì)所有的從業(yè)人員都有意義。正因如此,作為技術(shù)人,我時(shí)常會(huì)告誡自己“多放下一點(diǎn)自大與自尊去接受別人的想法,這對(duì)于自己來(lái)說(shuō)是一種很好的成長(zhǎng)途徑。”而且,我對(duì)于自己所不熟悉的技術(shù)領(lǐng)域更多持敬畏而非否定態(tài)度??偟恼f(shuō)來(lái),誰(shuí)對(duì)誰(shuí)錯(cuò)并非爭(zhēng)論的關(guān)鍵,而是我們有哪些想法其實(shí)是相通或相同的、如何擺事實(shí)講邏輯地讓對(duì)方了解自己的想法。我希望每一位讀者都能理性對(duì)待所碰到的爭(zhēng)議,這算是一個(gè)小小的呼吁吧。
QA不包含測(cè)試
我認(rèn)為引起QA與測(cè)試相關(guān)的很多爭(zhēng)議出現(xiàn)在我們沒(méi)有明晰概念,或者有的概念太泛了容易導(dǎo)致問(wèn)題。QA這個(gè)詞就是一個(gè)例子!
質(zhì)量保證很容易讓人想到與軟件質(zhì)量相關(guān)的方方面面,比如測(cè)試、流程、缺陷數(shù)據(jù)分析等。既然這樣,開(kāi)發(fā)工程師的水平是不是也影響著軟件質(zhì)量呢?那人員的招聘為什么不由QA部門(mén)管,而是由HR和開(kāi)發(fā)部門(mén)管?這個(gè)問(wèn)題問(wèn)得是不是很無(wú)厘頭?但這個(gè)問(wèn)題也告訴我們,各種部門(mén)的職責(zé)定義其實(shí)并非由其名字表意所定,而是由公司根據(jù)組織架構(gòu)的需要指派的。既然如此,我們?cè)谑褂眠@些名詞時(shí),一定要根據(jù)職責(zé)加以展開(kāi),而不能依據(jù)名字意思本身,否則很容易因?yàn)椴划?dāng)言語(yǔ)而引發(fā)沒(méi)有價(jià)值的爭(zhēng)議。有些爭(zhēng)議甚至影響到了他人的“飯碗”了,你叫人如何理性?這間接地指出,我們的言語(yǔ)應(yīng)盡可能?chē)?yán)謹(jǐn)。
如果QA不是測(cè)試,那它是干什么的?老實(shí)說(shuō),我不敢憑空給一個(gè)角色定義職責(zé),加上我并不是QA(與測(cè)試)方面的專(zhuān)家,在此只能以我曾經(jīng)服務(wù)過(guò)的Motorola公司為例說(shuō)一說(shuō)我的大致理解。簡(jiǎn)單說(shuō)來(lái),Motorola的QA是一個(gè)與測(cè)試部門(mén)完全獨(dú)立的部門(mén),她關(guān)注二大事務(wù),一是缺陷數(shù)據(jù)分析與缺陷預(yù)防,二是流程規(guī)范與改善。QA會(huì)根據(jù)測(cè)試與開(kāi)發(fā)兩大部門(mén)所產(chǎn)生的缺陷數(shù)據(jù)進(jìn)行數(shù)據(jù)分析(或叫數(shù)據(jù)挖掘吧),發(fā)現(xiàn)各產(chǎn)品的缺陷模型(常犯錯(cuò)誤、缺陷數(shù)趨勢(shì)等),通過(guò)模型去預(yù)測(cè)可能潛在的遺留缺陷,以幫助開(kāi)發(fā)部門(mén)進(jìn)行改進(jìn)(最終作用于流程)。另外,QA會(huì)全程參與軟件開(kāi)發(fā)活動(dòng)以跟蹤公司所制定流程的執(zhí)行情況。比如,以前我就職的Motorola杭州研發(fā)中心通過(guò)了TL9000認(rèn)證,QA必須確保開(kāi)發(fā)活動(dòng)完全符合TL9000的要求,以免出現(xiàn)資質(zhì)復(fù)審時(shí)無(wú)法通過(guò)的狀況。
讀者請(qǐng)注意,我以Motorola公司為例去定義QA的職責(zé)就一定對(duì)嗎?未必!對(duì)于就職于一些測(cè)試隸屬于QA部門(mén)的同仁可能很難接受以上的定義。在這種情況下,我們需要思考的是,這個(gè)定義是否有助于我們更方便地溝通?如果定義有助于我們的溝通,則這種定義就是可取的,否則值得商榷。理性思考不能忘!
我們需要QA嗎?
如果問(wèn)“我們需要測(cè)試嗎?”答案很清楚,不是嗎?那公司是依據(jù)什么決定是否需要一個(gè)工種的?很簡(jiǎn)單,不同的技能!
不少軟件公司需要通過(guò)象CMMI、ISO9000系列、TL9000等這樣的質(zhì)量體系認(rèn)證,并定期復(fù)審。這些質(zhì)量體系主張“質(zhì)量源于過(guò)程”,因此,一定需要有人為公司制定相應(yīng)的開(kāi)發(fā)流程并監(jiān)督流程在公司的到位實(shí)施。流程驅(qū)動(dòng)研發(fā)的質(zhì)量意識(shí)是需要培養(yǎng)的,這就離不開(kāi)象“Quality begins with me”這樣的培訓(xùn)。缺陷數(shù)據(jù)通過(guò)挖掘能幫助發(fā)現(xiàn)其他有價(jià)值的東西,這就需要相應(yīng)的數(shù)據(jù)建模與分析技能。
不難認(rèn)同,以上知識(shí)與相關(guān)技能不能由開(kāi)發(fā)或測(cè)試團(tuán)隊(duì)的人去兼顧,因此我們需要獨(dú)立的QA部門(mén)。
QA部門(mén)的作用與重視程度在不同的行業(yè)完全不同。平均說(shuō)來(lái),互聯(lián)網(wǎng)行業(yè)的產(chǎn)品因?yàn)閷?duì)質(zhì)量問(wèn)題具有更高的容忍度(大多互聯(lián)網(wǎng)產(chǎn)品直接上線(xiàn),有問(wèn)題可以直接回退),而非象通訊行業(yè)那樣得交由象中國(guó)移動(dòng)這樣的運(yùn)營(yíng)商去運(yùn)營(yíng),也不存在因質(zhì)量事故引發(fā)的第三方懲罰性費(fèi)用。另外,互聯(lián)網(wǎng)產(chǎn)品的用戶(hù)根本不關(guān)心產(chǎn)品開(kāi)發(fā)過(guò)程是否遵循CMMI等質(zhì)量體系,這與通訊行業(yè)運(yùn)營(yíng)商對(duì)之可能有要求完全不同。我在《離開(kāi)通訊業(yè)入職互聯(lián)網(wǎng)圈的一些感悟》一文中進(jìn)一步談到了兩個(gè)行業(yè)的不同。
至此,我希望讀者接受我將QA與測(cè)試兩個(gè)概念區(qū)分開(kāi)的建議。
一點(diǎn)重申
無(wú)論使用何種天花亂綴的技法和理論,探尋測(cè)試團(tuán)隊(duì)核心價(jià)值時(shí)一定要打破測(cè)試與開(kāi)發(fā)團(tuán)隊(duì)之間的心理博弈防線(xiàn),否則沒(méi)有成功的可能。以我長(zhǎng)期在開(kāi)發(fā)一線(xiàn)的經(jīng)歷,測(cè)試的價(jià)值困惑首先源于缺乏開(kāi)發(fā)工程師對(duì)之的認(rèn)可,這是種心理感受問(wèn)題,不是技術(shù)問(wèn)題。《對(duì)軟件測(cè)試團(tuán)隊(duì)“核心價(jià)值”的思考》雖沒(méi)有直接給出核心價(jià)值的定義,但給出了探索方向,希望值得我們共同思考。
測(cè)試工程師思考從開(kāi)發(fā)工程師的“痛點(diǎn)”尋找突破口,或許能找到出路。當(dāng)然,要真從開(kāi)發(fā)的“痛點(diǎn)”下手,測(cè)試團(tuán)隊(duì)必須有些“刷子”,否則只能游離在質(zhì)量與效率的邊緣。
對(duì)朱老師所言的回復(fù)
朱老師:軟件測(cè)試最核心的價(jià)值還是能夠快速發(fā)現(xiàn)問(wèn)題以提供產(chǎn)品的質(zhì)量反饋,有能力提供準(zhǔn)確的、客觀(guān)的、完整的質(zhì)量評(píng)估,并通過(guò)缺陷分析、用戶(hù)行為分析等,確定缺陷模式和開(kāi)發(fā)人員不良行為、習(xí)慣等,幫助開(kāi)發(fā)人員預(yù)防缺陷(從設(shè)計(jì)到編程、單元測(cè)試,不僅僅是設(shè)計(jì))。
回復(fù):這個(gè)定義存在將測(cè)試與QA混為一談的問(wèn)題。如果我是一名測(cè)試工程師,看到這樣的定義真的會(huì)嚇一跳,要求太高了。我認(rèn)為質(zhì)量度量很容易出現(xiàn)主觀(guān)現(xiàn)象,難以做到“1+1=2”這樣的真實(shí)。軟件質(zhì)量度量的目的不是為了“真實(shí)”了解軟件的質(zhì)量狀況,因?yàn)閳F(tuán)隊(duì)級(jí)的質(zhì)量無(wú)法直接度量,度量的目的是為了幫助開(kāi)發(fā)團(tuán)隊(duì)找到改善點(diǎn)。軟件質(zhì)量管理應(yīng)重實(shí)踐、輕量化,以幫助工程師改善工作習(xí)慣和提升開(kāi)發(fā)環(huán)境的效率為目標(biāo)。我欣賞朱老師身兼QA與測(cè)試雙重身份,但就測(cè)試核心價(jià)值的探討上,我希望能采納所提出的將QA與測(cè)試分開(kāi)的建議。概念只有清晰了、輕量了,才不容易引起歧義,也更利于我們達(dá)成更多的共識(shí)和提高溝通效率。
朱老師:我這是地地道道的測(cè)試,看來(lái)你對(duì)QA理解不夠。QA的主要對(duì)象是(包括開(kāi)發(fā)、測(cè)試)流程,QA人員評(píng)審、審計(jì)和改進(jìn)流程,以保證質(zhì)量。測(cè)試的對(duì)象是產(chǎn)品,包括階段性半成品。從嚴(yán)格意義看,測(cè)試就是對(duì)軟件產(chǎn)品的質(zhì)量評(píng)估。
回復(fù):第一話(huà)既講測(cè)試又講QA,很容易引起誤解。第二句與第三句的觀(guān)點(diǎn)我認(rèn)同。對(duì)于第四句,我的問(wèn)題是“測(cè)試真能評(píng)估軟件質(zhì)量嗎?”
對(duì)《我們需要專(zhuān)職的QA嗎?》相關(guān)文章的看法
《我們需要專(zhuān)職的QA嗎?》這篇文章的論點(diǎn)是QA,但內(nèi)容其實(shí)談的是測(cè)試,文不對(duì)題引發(fā)沒(méi)有必要的爭(zhēng)議屬于情理之中。該文中還是有很多值得我們思考的觀(guān)點(diǎn),其中不足之處后面兩篇文章對(duì)之加以反駁了。
《測(cè)試QA的角色和分工》一文同樣存在將QA與測(cè)試混在一起討論的問(wèn)題,但其中還是能看出QA與測(cè)試的痕跡。比如,其中談到了認(rèn)證。其對(duì)于分工的論述我很欣賞,也闡述了為什么需要專(zhuān)職測(cè)試人員。
《對(duì)《我們需要專(zhuān)職QA嗎?》的回應(yīng)》一文明確區(qū)別了QA和測(cè)試,且只關(guān)注于測(cè)試的討論。我與段老師有很多共識(shí),雖沒(méi)有聽(tīng)過(guò)他的演講,但看過(guò)他一些分享主題的PPT,能從開(kāi)發(fā)人員的角度找到共鳴點(diǎn)。注意文中的最后一句話(huà),“測(cè)試和開(kāi)發(fā)之間有更多配合,更多相親相愛(ài),把測(cè)試當(dāng)成提高和推動(dòng)質(zhì)量的手段,不正應(yīng)該是測(cè)試的方向嗎?”
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。