左手測(cè)試,右手QA
在我們的團(tuán)隊(duì)中,QA角色身兼兩職:測(cè)試和過(guò)程改進(jìn)。以往我們對(duì)新進(jìn)來(lái)的員工的期望值是先承擔(dān)測(cè)試任務(wù),在能較好地完成測(cè)試任務(wù)之后,才考慮讓他參與一些SQA的工作。因此,有些已經(jīng)進(jìn)來(lái)大半年的同事,感覺(jué)對(duì)SQA還是沒(méi)有什么概念,更沒(méi)有機(jī)會(huì)去實(shí)踐?;蛘哂械耐孪?yún)⑴c一些SQA的工作,卻感到?jīng)]有頭緒,不知如何下手。而實(shí)際工作中我發(fā)現(xiàn),QA的能力可以在每日工作中從點(diǎn)滴、從最開(kāi)始就培養(yǎng),這個(gè)與以往有沒(méi)有SQA的知識(shí)和經(jīng)驗(yàn)沒(méi)有關(guān)系。因?yàn)楹?jiǎn)而言之,QA的工作主要圍繞持續(xù)改進(jìn)展開(kāi)。而無(wú)論你是否有經(jīng)驗(yàn),每天的工作中你都在以自己獨(dú)特的視角看問(wèn)題,并可能看到改進(jìn)的空間。那么,測(cè)試人員如何在日常工作中去逐步培養(yǎng)自己的QA能力呢?
1.找到問(wèn)題
感受到一個(gè)問(wèn)題,有時(shí)是出于關(guān)懷,你發(fā)現(xiàn)有人/自己正因?yàn)槟臣虑槎纯?;有時(shí)是出于懷疑,你發(fā)現(xiàn)有件事情和你想象/預(yù)計(jì)的不一樣;還可能是出于直覺(jué)。但感受到問(wèn)題其實(shí)并不是一件容易的事情。
如果感受不到問(wèn)題,我們可以試圖通過(guò)多種方法積極尋找。
如果你剛到一個(gè)項(xiàng)目組,提不出問(wèn)題,可以先去聽(tīng)聽(tīng)別人(項(xiàng)目組成員、用戶(hù)等等)的抱怨,或者想想自己痛苦的地方(比如找不到文檔,系統(tǒng)操作不直觀學(xué)習(xí)起來(lái)困難等等),這些就可能是問(wèn)題。另外,為了培養(yǎng)自己找問(wèn)題的習(xí)慣,可以給自己一個(gè)定量目標(biāo),每周去總結(jié)一個(gè)“疑似問(wèn)題”。經(jīng)過(guò)實(shí)踐,這個(gè)帶點(diǎn)自我強(qiáng)迫的方法對(duì)于找問(wèn)題很有幫助。比如,雖然你的測(cè)試用例經(jīng)過(guò)了和開(kāi)發(fā)人員的評(píng)審,但是測(cè)試時(shí)你卻發(fā)現(xiàn)幾個(gè)重要的分支或者邏輯還是在代碼中忘記實(shí)現(xiàn)了。除了報(bào)告缺陷,是否還有什么有共性的問(wèn)題存在,并值得改進(jìn)呢?
如果你在一個(gè)項(xiàng)目組大家合作得不錯(cuò),似乎沒(méi)有什么問(wèn)題,但一個(gè)看 似不錯(cuò)的結(jié)果其實(shí)可能隱藏了問(wèn)題。比如,完成工作,交付高質(zhì)量的軟件產(chǎn)品可以通過(guò)多種渠道實(shí)現(xiàn),而非一定體現(xiàn)了高質(zhì)量??赡苁菭奚藭r(shí)間進(jìn)行好幾輪的測(cè)試 和修復(fù)和全面的回歸測(cè)試,又或者某一塊有一個(gè)英雄人物能夠以一己之力確保這塊沒(méi)有問(wèn)題。又如,雖然大規(guī)模代碼重構(gòu)的時(shí)候,內(nèi)部測(cè)試能找到大部分重要的缺 陷,但是否測(cè)試人員心理還是很抗拒和沒(méi)底的?雖然這些問(wèn)題不是單靠測(cè)試人員就能改善或者達(dá)到,但找到影響質(zhì)量的問(wèn)題確實(shí)需要測(cè)試人員的獨(dú)立視角和貢獻(xiàn)。如 果一個(gè)測(cè)試人員、一個(gè)測(cè)試團(tuán)隊(duì)能夠跳開(kāi)測(cè)試的圈圈,從更廣闊的角度看到影響質(zhì)量的其他環(huán)節(jié),幫助開(kāi)發(fā)人員克服一些老的制約生產(chǎn)力和質(zhì)量的毛病或者習(xí)慣,從而提高開(kāi)發(fā)團(tuán)隊(duì)的水平,而更高開(kāi)發(fā)水平的開(kāi)發(fā)團(tuán)隊(duì)又對(duì)測(cè)試團(tuán)隊(duì)會(huì)提出更高的要求,那么這樣的良性互動(dòng)是我們都想看到的。現(xiàn)在被大家所廣泛追捧的敏捷開(kāi)發(fā)就提倡忽略角色的分工,大家一起為質(zhì)量貢獻(xiàn)自己的一份力量。
前面說(shuō)的是流程方面的問(wèn)題,其實(shí)即使是被測(cè)程序的問(wèn)題也存在于在整個(gè)軟件開(kāi)發(fā)周期。雖然傳統(tǒng)對(duì)測(cè)試的理解是測(cè)試找問(wèn)題更多集中在執(zhí)行階段,但借用QA的預(yù)防為主的思路,程序的問(wèn)題也可以通過(guò)對(duì)需求和設(shè)計(jì)的評(píng)審及時(shí)發(fā)現(xiàn)和糾正,避免后期更大的浪費(fèi)。
2.探究問(wèn)題
感 受到問(wèn)題之后,需要一種探尋真相的精神去一探究竟。很多人能感受到問(wèn)題,但是很遺憾地是當(dāng)有更具體的任務(wù)在手頭的時(shí)候,往往就忽略了這個(gè)問(wèn)題。或者知道問(wèn) 題很大,也知道有各種原因的阻礙,因此采取放任自流的態(tài)度。這里要介紹一個(gè)好的習(xí)慣,就是把你當(dāng)前沒(méi)有時(shí)間去細(xì)想的問(wèn)題先記錄下來(lái),以后再找機(jī)會(huì)去跟蹤執(zhí)行。類(lèi)似outlook的任務(wù)或者一些桌面電子便簽等工具可以幫助你設(shè)定任務(wù)及提醒執(zhí)行。除了記錄,還有一個(gè)好習(xí)慣就是去外部尋找一些同行的交流。如果看到同樣/類(lèi)似的話(huà)題,相信會(huì)驅(qū)使你有更大的興趣去看自己碰到的問(wèn)題,也啟發(fā)你從不同角度看問(wèn)題。
QA的工作更多的針對(duì)的是有共性的問(wèn)題,所以對(duì)這類(lèi)問(wèn)題的探究往往需要多個(gè)樣本。換言之,在報(bào)告每一個(gè)缺陷的時(shí)候我們是在做測(cè)試,而對(duì)測(cè)試結(jié)果進(jìn)行總結(jié)、歸類(lèi)、抽象出背后共性的問(wèn)題則向QA靠近了一步。
3.判斷問(wèn)題
3.1判斷一個(gè)問(wèn)題是否真的是問(wèn)題
測(cè) 試人員通??吹綄?shí)際執(zhí)行結(jié)果后就能馬上判斷出其與預(yù)期結(jié)果之間的差異,從而判斷是否存在問(wèn)題。但過(guò)程改進(jìn)相關(guān)的問(wèn)題就沒(méi)有那么一目了然了。比如,我們收到 一個(gè)來(lái)自生產(chǎn)環(huán)境的缺陷,是因?yàn)橐粋€(gè)需求變更的影響點(diǎn)大家都沒(méi)有想到,直到生產(chǎn)環(huán)境暴露出來(lái)。開(kāi)會(huì)的時(shí)候有人提出我們的開(kāi)發(fā)流程不完善,如果能夠建立起需 求、設(shè)計(jì)和測(cè)試用例的跟蹤矩陣,那么在做影響分析的時(shí)候就能順藤摸瓜,避免此類(lèi)問(wèn)題了。聽(tīng)起來(lái)不錯(cuò),是么?可是,如果我們細(xì)想,這種類(lèi)似問(wèn)題在生產(chǎn)環(huán)境對(duì) 用戶(hù)的影響大么?可以繞過(guò)去么?此類(lèi)問(wèn)題出現(xiàn)的次數(shù)多么?如果我們建立這個(gè)跟蹤矩陣,維護(hù)代價(jià)有多高?前提還是我們首先要想到所有的內(nèi)在聯(lián)系(而這個(gè)本身 就是無(wú)法確保的)。兩相權(quán)衡,“沒(méi)有這個(gè)跟蹤矩陣”是我們現(xiàn)在的問(wèn)題么?
“判斷一個(gè)問(wèn)題是否真的是問(wèn)題”最好能廣泛聽(tīng)取不同的意見(jiàn),并找到根源。
3.2判斷一個(gè)問(wèn)題是否需要被馬上解決
“判斷問(wèn)題是否需要馬上解決”在某種程度上這有點(diǎn)象測(cè)試人員去設(shè)定缺陷的優(yōu)先級(jí)。雖然所有被發(fā)現(xiàn)的缺陷都被記錄,但是當(dāng)前版本需要修復(fù)的或者可能只是其中一部分,而這一部分中還有需要盡快修復(fù)的和可以稍后修復(fù)的差別。過(guò)程改進(jìn)的問(wèn)題也是一樣,有個(gè)主次和優(yōu)先級(jí)之分。
4.解決問(wèn)題
對(duì)于確實(shí)是問(wèn)題的,我們應(yīng)該去積極地尋找解決方案。但是新到一個(gè)公司或者項(xiàng)目組,發(fā)現(xiàn)了問(wèn)題之后,不要急著去提出自己的解決方案,而應(yīng)該先試圖了解它的來(lái)龍去脈和曾經(jīng)進(jìn)行過(guò)的改進(jìn)嘗試,以及執(zhí)行中實(shí)際的一些阻礙。
解決問(wèn)題通常牽涉到開(kāi)發(fā)團(tuán)隊(duì)中各個(gè)角色,除了明確負(fù)責(zé)的一方,還要對(duì)參與的其他方也進(jìn)行充分的溝通。
確認(rèn)開(kāi)始執(zhí)行之后,為了確保執(zhí)行的正確性和力度,一定要跟蹤執(zhí)行。一個(gè)沒(méi)有跟蹤執(zhí)行的方案如同瞎子射箭。這樣的話(huà),無(wú)論射多少回,都是沒(méi)有目的性和方向性的,也無(wú)法在以前的基礎(chǔ)上持續(xù)改進(jìn)的。質(zhì)量理論中常提到的PDCA循環(huán)講的也是這個(gè)道理。
在解決問(wèn)題方面,有很多和測(cè)試、質(zhì)量無(wú)關(guān),但和思維、管理類(lèi)相關(guān)的書(shū)和文章。例如:《第五項(xiàng)修煉》中就提出對(duì)解決問(wèn)題很有幫助的五大方面:系統(tǒng)思考、自我超越、心智模式、建立共同愿景、團(tuán)隊(duì)學(xué)習(xí)?!督鹱炙怼分刑岢龅慕缍▎?wèn)題、結(jié)構(gòu)化思考、演繹與歸納等多種模式也能幫助我們剝繭抽絲,抓到問(wèn)題的本質(zhì)和可行的方案。
6.QA能力進(jìn)階
從上面我們看到,QA能力的培養(yǎng)貫穿于每日工作的點(diǎn)滴。其進(jìn)階可以大致分為以下級(jí)別。
(1)發(fā)現(xiàn)的問(wèn)題級(jí)別:
初級(jí):問(wèn)題已經(jīng)發(fā)生,而且大家都感受到了(項(xiàng)目組中大家都覺(jué)得有問(wèn)題的問(wèn)題)
中級(jí):問(wèn)題已經(jīng)發(fā)生,但只有少量人感受到了(問(wèn)題已經(jīng)發(fā)生,但是其危害還沒(méi)有擴(kuò)散)
高級(jí):問(wèn)題還沒(méi)有發(fā)生,很多人沒(méi)有意識(shí)到(一個(gè)解決方案在不同的實(shí)施環(huán)境中會(huì)有的問(wèn)題)
(2)解決問(wèn)題的能力的級(jí)別:
初級(jí):可以提出方案,但不能提出很合理的、可以實(shí)施的方案
中級(jí):可以提出合理的可以實(shí)施的方案,但是實(shí)施效果不太好(方案中存在著一些重要的影響執(zhí)行的因素沒(méi)有考慮到)
高級(jí):可以提出合理的方案,且實(shí)施效果好,整個(gè)團(tuán)隊(duì)受益
其實(shí),有時(shí)想想除了QA更需要有豐富的思路去提出可能的解決方案之外,測(cè)試人員和QA人員對(duì)技能的要求有很多相通之處:都需要有敏銳的觸角去發(fā)現(xiàn)潛在的問(wèn)題,有執(zhí)著的勇氣去驗(yàn)證和報(bào)告預(yù)期與實(shí)際結(jié)果之間的差異,有務(wù)實(shí)的精神去跟蹤和督促執(zhí)行。所以,讓我們左手測(cè)試,右手QA,互相促進(jìn), 幫助質(zhì)量改進(jìn)更上一層樓!
posted @ 2011-10-25 14:38 順其自然EVO| 編輯 收藏