盡管組建一支高效的測(cè)試團(tuán)隊(duì)是一項(xiàng)復(fù)雜、艱巨的任務(wù),需要軟件企業(yè)投入足夠的關(guān)注和一批高素質(zhì)的技術(shù)、管理人才,但是,這項(xiàng)工作帶來(lái)的長(zhǎng)期效益卻是巨大的。
在目前的軟件行業(yè)氛圍下,一提到軟件質(zhì)量,肯定有不少業(yè)內(nèi)人士的第一反應(yīng)是ISO、CMM、6σ之類(lèi)的標(biāo)準(zhǔn),進(jìn)而反映出的詞匯就是SQA (軟件質(zhì)量保證)。因此,不少軟件企業(yè)和機(jī)構(gòu)都紛紛組建了SQA部門(mén),把提高質(zhì)量的希望全部都寄托于此。這當(dāng)然是好事,至少說(shuō)明了質(zhì)量意識(shí)的普遍覺(jué)醒,但高層管理者卻往往認(rèn)識(shí)不到“質(zhì)量工作是由多個(gè)部門(mén)各司其職共同完成的”。
這樣的大環(huán)境造成不少企業(yè)和機(jī)構(gòu)的軟件質(zhì)量保證部門(mén)與軟件測(cè)試部門(mén)關(guān)系尷尬:究竟是讓測(cè)試部門(mén)下屬于質(zhì)量保證部門(mén),還是應(yīng)該單列測(cè)試部門(mén)使其以獨(dú)立、中立的姿態(tài)出現(xiàn)?另外,測(cè)試部門(mén)與質(zhì)量保證部門(mén)的權(quán)力和職責(zé)分配如何把握,誰(shuí)更有權(quán)在必要的時(shí)候?qū)δ硞€(gè)開(kāi)發(fā)項(xiàng)目、某個(gè)開(kāi)發(fā)人員出示“紅牌”、“黃牌”,誰(shuí)更應(yīng)該對(duì)用戶(hù)投訴的產(chǎn)品技術(shù)問(wèn)題負(fù)責(zé)?
分清SQA、SQC和SQM
目前廣泛認(rèn)可的衡量軟件質(zhì)量的標(biāo)準(zhǔn)是“軟件產(chǎn)品能否較好地滿(mǎn)足用戶(hù)相關(guān)的各類(lèi)需求”。然而,用戶(hù)對(duì)軟件的需求往往包羅萬(wàn)象,如功能需求、性能需求、約束性需求、潛在需求,甚至包括相互沖突的需求以及技術(shù)上不可實(shí)現(xiàn)的需求等,這就導(dǎo)致等軟件產(chǎn)品生產(chǎn)出來(lái)再驗(yàn)證“產(chǎn)品是否滿(mǎn)足用戶(hù)需求”容易成為一件引發(fā)供需雙方爭(zhēng)執(zhí)的麻煩事,而且對(duì)于軟件企業(yè)而言這種質(zhì)量工作未免代價(jià)過(guò)高、風(fēng)險(xiǎn)太大,一旦查出嚴(yán)重問(wèn)題,毫無(wú)補(bǔ)救措施。鑒于此,目前業(yè)內(nèi)解決這個(gè)問(wèn)題的核心策略是控制軟件工程的品質(zhì)以及軟件產(chǎn)品(包括階段性產(chǎn)品)本身的品質(zhì)。前者主要涉及企業(yè)在工程過(guò)程中選用什么樣的質(zhì)量體系以及如何監(jiān)督標(biāo)準(zhǔn)的執(zhí)行,稱(chēng)為SQA,后者主要涉及驗(yàn)證產(chǎn)品在各個(gè)階段具體品質(zhì)如何、有無(wú)偏離用戶(hù)需求等,稱(chēng)為SQC(軟件質(zhì)量控制)。
那么,軟件測(cè)試在軟件質(zhì)量工作中應(yīng)處于一個(gè)什么樣的位置呢?筆者認(rèn)為軟件測(cè)試應(yīng)是SQC的核心內(nèi)容和重要組成部分。由此看來(lái),目前沸沸揚(yáng)揚(yáng)、閃亮登場(chǎng)的CMM、6σ等標(biāo)準(zhǔn)和體系,雖然被部分管理者頂禮膜拜,但充其量也只是SQA的一個(gè)組成部分,它們不能囊括質(zhì)量工作的全部。相反,軟件測(cè)試是SQC的核心,它更貼近質(zhì)量工作本來(lái)的要義,理應(yīng)受到更多關(guān)注。
SQA和SQC各司其職,相輔相成,統(tǒng)一于軟件質(zhì)量管理(SQM)。拿一部汽車(chē)來(lái)做比喻吧,質(zhì)量控制(QC)就是所有那些告訴你汽車(chē)當(dāng)前運(yùn)動(dòng)狀態(tài)的儀器儀表; 質(zhì)量保證(QA)包括各類(lèi)標(biāo)準(zhǔn),是告訴你所有部件操作方法的用戶(hù)手冊(cè); 而質(zhì)量管理(QM)則是你要追求的目標(biāo),比如希望能平安、高速地駕駛汽車(chē)??梢钥闯觯瑸榱藢?shí)現(xiàn)質(zhì)量管理的目標(biāo),質(zhì)量保證和質(zhì)量控制都是不可或缺的部分。
建設(shè)高效測(cè)試團(tuán)隊(duì)的方法
俗話(huà)說(shuō)“工欲善其事,必先利其器”,要做好測(cè)試工作,首先需要建立并維護(hù)一個(gè)高效的測(cè)試團(tuán)隊(duì)。然而,許多小型軟件企業(yè)卻將測(cè)試作為產(chǎn)品面臨發(fā)布時(shí)的一個(gè)小“插曲”,往往臨時(shí)抽調(diào)幾名程序員對(duì)產(chǎn)品的功能粗略測(cè)試一下即交付客戶(hù)(甚至在進(jìn)度和成本不足時(shí)首先砍掉這一塊)。這種倉(cāng)促完成的產(chǎn)品通常質(zhì)量問(wèn)題很多,所以我們首先應(yīng)拋棄小企業(yè)慣常的思維模式,不計(jì)較一時(shí)一地之利益,立足長(zhǎng)遠(yuǎn),著手組建高效測(cè)試團(tuán)隊(duì)。
第一步:招募測(cè)試人員
在國(guó)內(nèi)的軟件企業(yè)中有一種普遍做法,那就是把那些剛涉足軟件行業(yè)的技術(shù)新手或業(yè)績(jī)不突出的開(kāi)發(fā)人員安排去做測(cè)試工作。筆者認(rèn)為這絕對(duì)是一種欠妥當(dāng)?shù)男袨?。事?shí)上,對(duì)一個(gè)系統(tǒng)進(jìn)行有效測(cè)試所需要的技能絕對(duì)不比進(jìn)行軟件開(kāi)發(fā)所需要的技能少,測(cè)試從業(yè)者甚至可能面對(duì)許多開(kāi)發(fā)人員都不會(huì)遇到的技術(shù)難題。那么,測(cè)試團(tuán)隊(duì)需要招募什么樣的成員呢?這里,筆者總結(jié)了以下兩點(diǎn):
首先,測(cè)試人員要具備良好的溝通能力、自信心、外交能力、遷移能力以及懷疑精神。其中,溝通能力是指測(cè)試者必須能夠同測(cè)試涉及到的所有人進(jìn)行溝通,具有與技術(shù)人員(開(kāi)發(fā)者)和非技術(shù)人員(客戶(hù)、管理人員)進(jìn)行交流的能力。自信心是指測(cè)試者必須對(duì)測(cè)試工作的價(jià)值具有足夠信心,不會(huì)因開(kāi)發(fā)者指責(zé)測(cè)試結(jié)果沒(méi)有意義甚至反唇相譏而影響工作情緒。外交能力是指測(cè)試人員在與其他人員交流的時(shí)候,要注意自己的辭令和行為方式,不要刻意夸大錯(cuò)誤的嚴(yán)重性,也不要礙于面子替開(kāi)發(fā)人員掩飾重大程序錯(cuò)誤。遷移能力是指測(cè)試人員應(yīng)能將以前曾經(jīng)遇到過(guò)的類(lèi)似錯(cuò)誤從記憶中挖掘出來(lái),并遷移到當(dāng)前測(cè)試活動(dòng)中。懷疑精神是指測(cè)試人員對(duì)任何可能出錯(cuò)的地方都親自測(cè)試一番,不聽(tīng)信開(kāi)發(fā)人員毫無(wú)意義的保證,堅(jiān)持以事實(shí)說(shuō)話(huà)的工作作風(fēng)。
其次,測(cè)試組成員應(yīng)具備良好的專(zhuān)業(yè)技能或者技術(shù)學(xué)習(xí)能力。由于測(cè)試組各個(gè)崗位需要的技能各有差異,所要掌握的測(cè)試技術(shù)也千差萬(wàn)別。比如測(cè)試管理人員需要對(duì)測(cè)試管理工作的內(nèi)容及相關(guān)輔助工具的使用胸有成竹; 自動(dòng)化測(cè)試人員需要對(duì)相關(guān)自動(dòng)化測(cè)試工具爐火純青; 測(cè)試腳本撰寫(xiě)人員需要對(duì)腳本語(yǔ)言的領(lǐng)悟了然于胸;手工測(cè)試人員應(yīng)對(duì)相關(guān)測(cè)試中最易發(fā)現(xiàn)問(wèn)題的地方如數(shù)家珍; 而測(cè)試團(tuán)隊(duì)負(fù)責(zé)人則必須既熟悉被測(cè)軟件系統(tǒng)的概念模型、設(shè)計(jì)模型,又要掌握開(kāi)發(fā)過(guò)程中涉及到的相關(guān)開(kāi)發(fā)工具。除此之外,測(cè)試經(jīng)理還必須深刻掌握測(cè)試流程的裁剪、測(cè)試環(huán)境的搭建、測(cè)試計(jì)劃的撰寫(xiě)、測(cè)試活動(dòng)的組織與開(kāi)展以及測(cè)試效果的評(píng)價(jià)等必備技能。
當(dāng)然,新招募的測(cè)試人員不可能像上面說(shuō)的那么理想。關(guān)鍵是他們是否熱愛(ài)測(cè)試這項(xiàng)工作,對(duì)相關(guān)的工作內(nèi)容是否感興趣以及他們的學(xué)習(xí)能力如何。
第二步:測(cè)試團(tuán)隊(duì)制度建設(shè)
良好的制度可以規(guī)范測(cè)試團(tuán)隊(duì)的工作開(kāi)展,同時(shí)也便于對(duì)團(tuán)隊(duì)成員進(jìn)行業(yè)績(jī)考評(píng)。相反,則很有可能導(dǎo)致人心渙散,滋長(zhǎng)負(fù)面風(fēng)氣。建設(shè)良好的測(cè)試團(tuán)隊(duì)制度,可以考慮以下幾個(gè)方面:
● 匯報(bào)制度 團(tuán)隊(duì)成員匯報(bào)本周工作情況及下周工作計(jì)劃、遇到的問(wèn)題以及需要提供的幫助,培養(yǎng)團(tuán)隊(duì)成員的匯報(bào)及計(jì)劃習(xí)慣。
● 工作總結(jié)制度 成員每個(gè)階段匯報(bào)上階段工作經(jīng)驗(yàn)和教訓(xùn),并在部門(mén)例會(huì)上交流、分享經(jīng)驗(yàn)及教訓(xùn),避免同樣的問(wèn)題重復(fù)出現(xiàn)。
● 獎(jiǎng)懲制度 對(duì)于貢獻(xiàn)突出的成員予以獎(jiǎng)勵(lì),對(duì)于業(yè)績(jī)差的提出批評(píng),有效地保持測(cè)試團(tuán)隊(duì)的工作熱情。
● 測(cè)試件審核制度 對(duì)測(cè)試件進(jìn)行審核,去粗存精,鼓勵(lì)測(cè)試人員使用和提出改進(jìn),保證提交到測(cè)試團(tuán)隊(duì)知識(shí)庫(kù)的測(cè)試件的質(zhì)量。
● 會(huì)議制度 定期召開(kāi)部門(mén)例會(huì),討論、解決工作中的問(wèn)題,并提供部門(mén)內(nèi)的學(xué)習(xí)平臺(tái)。
目前,已有不少軟件企業(yè)推行給測(cè)試人員區(qū)分級(jí)別的制度,獎(jiǎng)優(yōu)罰劣。這無(wú)疑是一個(gè)好的做法,但成員業(yè)績(jī)的具體考評(píng)辦法,目前尚無(wú)可供參考的標(biāo)準(zhǔn)文件,所以筆者建議應(yīng)盡量做到公正客觀,以免挫傷團(tuán)隊(duì)成員的工作積極性。
第三步:測(cè)試團(tuán)隊(duì)內(nèi)部的職責(zé)分工
明確測(cè)試團(tuán)隊(duì)內(nèi)部各類(lèi)測(cè)試人員的職責(zé)分工可以使測(cè)試團(tuán)隊(duì)內(nèi)部各類(lèi)測(cè)試人員能集中精力在較短的時(shí)間內(nèi)完成特定崗位必需的知識(shí)儲(chǔ)備和經(jīng)驗(yàn)積累,同時(shí)也使得測(cè)試團(tuán)隊(duì)的管理更科學(xué),真正做到“用其所長(zhǎng),避其所短”。這里列出一種可行的測(cè)試團(tuán)隊(duì)內(nèi)部職責(zé)分工方案,如表所示。
第四步:測(cè)試流程建設(shè)
測(cè)試流程,通俗地講是指測(cè)試團(tuán)隊(duì)按照什么樣的流程和順序組織開(kāi)展軟件測(cè)試活動(dòng)。通常來(lái)說(shuō),測(cè)試流程如圖所示。
其中,計(jì)劃測(cè)試階段是根據(jù)對(duì)測(cè)試需求的分析制定測(cè)試大綱、測(cè)試計(jì)劃,并對(duì)具體要采用的測(cè)試技術(shù)做大致剪裁; 設(shè)計(jì)測(cè)試階段是對(duì)測(cè)試大綱、測(cè)試計(jì)劃作進(jìn)一步細(xì)化,從而形成更為細(xì)致全面的測(cè)試用例集、具體測(cè)試活動(dòng)安排以及相應(yīng)的測(cè)試進(jìn)度; 執(zhí)行測(cè)試階段是執(zhí)行相關(guān)測(cè)試用例(包括自由測(cè)試),具體落實(shí)各項(xiàng)測(cè)試活動(dòng); 分析測(cè)試階段是對(duì)計(jì)劃測(cè)試、設(shè)計(jì)測(cè)試、執(zhí)行測(cè)試階段的工作做出評(píng)價(jià),評(píng)估測(cè)試的有效性。以上是測(cè)試流程的大致組成,不同測(cè)試團(tuán)隊(duì)采用的測(cè)試流程在細(xì)節(jié)上可能會(huì)有出入。我們可以通過(guò)以下步驟來(lái)建立適合本單位的測(cè)試流程:
1. 測(cè)試團(tuán)隊(duì)負(fù)責(zé)人員根據(jù)對(duì)公司現(xiàn)有測(cè)試狀況的了解,及個(gè)人的測(cè)試經(jīng)驗(yàn),起草測(cè)試流程及相關(guān)的模板;
2. 通過(guò)一到兩個(gè)項(xiàng)目的實(shí)踐,記錄測(cè)試流程草稿中的問(wèn)題及不足之處;
3. 根據(jù)實(shí)施經(jīng)驗(yàn),完善測(cè)試流程,得到測(cè)試流程初稿,并起草相關(guān)實(shí)施指南;
4. 選擇一個(gè)到多個(gè)項(xiàng)目,實(shí)踐上述測(cè)試流程初稿及實(shí)施指南,記錄實(shí)踐過(guò)程中出現(xiàn)的問(wèn)題;
5. 根據(jù)上述實(shí)踐工作的反饋,組織修改測(cè)試流程初稿及實(shí)施指南,并把修改后的測(cè)試流程繼續(xù)應(yīng)用到項(xiàng)目實(shí)踐中去,根據(jù)反饋進(jìn)一步完善成熟;
6. 測(cè)試流程及其相關(guān)文件基本趨于穩(wěn)定狀態(tài)時(shí),可以考慮發(fā)布測(cè)試流程(含測(cè)試流程、模板、表格、指南),并在以后的實(shí)踐中不斷改進(jìn)和完善。
第五步:團(tuán)隊(duì)成員能力的逐步提高
有了明確、合理的職責(zé)分工后,需要針對(duì)這些分工對(duì)團(tuán)隊(duì)成員進(jìn)行有意識(shí)的引導(dǎo),穩(wěn)步提升團(tuán)隊(duì)成員的技能。測(cè)試團(tuán)隊(duì)負(fù)責(zé)人需要負(fù)起監(jiān)督和促進(jìn)員工能力提升的任務(wù)。監(jiān)督和促進(jìn)測(cè)試團(tuán)隊(duì)成員能力提高,主要做好如下三個(gè)方面的工作: 一是,提倡資深測(cè)試人員在測(cè)試團(tuán)隊(duì)內(nèi)部進(jìn)行經(jīng)常性的培訓(xùn)和測(cè)試經(jīng)驗(yàn)交流,通過(guò)該渠道幫助資歷淺的測(cè)試人員大幅提升業(yè)務(wù)技能,做到新老員工之間的知識(shí)傳播和繼承。二是,測(cè)試團(tuán)隊(duì)?wèi)?yīng)充分利用好測(cè)試件知識(shí)庫(kù),對(duì)于納入到測(cè)試團(tuán)隊(duì)知識(shí)庫(kù)的測(cè)試件應(yīng)充分消化和學(xué)習(xí),在此基礎(chǔ)上進(jìn)一步鼓勵(lì)測(cè)試團(tuán)隊(duì)成員對(duì)這些測(cè)試件提出改進(jìn)性意見(jiàn)。三是,測(cè)試人員除了需要注重自身的測(cè)試技能提升,在條件許可的情況還應(yīng)適度開(kāi)發(fā)部門(mén)的基本知識(shí),這樣能減少與開(kāi)發(fā)團(tuán)隊(duì)協(xié)同工作時(shí)的領(lǐng)域障礙。 |