嵌入式系統(tǒng)軟件的質(zhì)量保證
IBM中國(guó)有限公司軟件部高級(jí)技術(shù)顧問(wèn) 靳超
一. 質(zhì)量是產(chǎn)品的生命
當(dāng)今隨著軟、硬件技術(shù)的發(fā)展,嵌入式系統(tǒng)廣泛應(yīng)用于航空航天、國(guó)防軍事、電子通訊等行業(yè),其中軟件也越來(lái)越復(fù)雜。而這些領(lǐng)域應(yīng)用特點(diǎn),決定了嵌入式系統(tǒng)往往是高安全、任務(wù)關(guān)鍵的系統(tǒng),軟件的微小瑕疵,就可能嚴(yán)重威脅到生命和國(guó)家的安全、天文數(shù)字的巨額財(cái)產(chǎn)損失。就使得保證嵌入式軟件的質(zhì)量和可靠性,變得至關(guān)重要。而在這些領(lǐng)域,對(duì)產(chǎn)品質(zhì)量從來(lái)就保持著高度的重視,有將“質(zhì)量視為產(chǎn)品的生命”的傳統(tǒng)。這樣,相關(guān)行業(yè)的高層管理人員和開(kāi)發(fā)人員對(duì)于軟件的質(zhì)量也逐漸提高了重視程度。近年來(lái),在組織上,建立了完善的軟件測(cè)試體系,從自檢,到專檢,直到甲方的測(cè)試中心;在開(kāi)發(fā)和測(cè)試方法上,沿襲了多年在系統(tǒng)工程和硬件設(shè)計(jì)中積累的經(jīng)驗(yàn),在項(xiàng)目管理中將“兩條指揮線四總”的體制推廣到軟件領(lǐng)域,建立了中國(guó)的軟件過(guò)程成熟度的評(píng)價(jià)體系GJB5000;在自動(dòng)化工具方面,投入了大量的經(jīng)費(fèi)和人員在測(cè)試設(shè)備的開(kāi)發(fā)、購(gòu)置和建設(shè)方面。應(yīng)該說(shuō),軟件,作為嵌入式產(chǎn)品主要的組成部分之一,對(duì)其質(zhì)量的重視,是目前相關(guān)行業(yè)內(nèi)的一個(gè)共識(shí) 。
然而在現(xiàn)實(shí)生活中,許多軟件產(chǎn)品卻時(shí)常陷入質(zhì)量低下的旋渦,總是不盡人意,問(wèn)題常常表現(xiàn)在:
. 相關(guān)產(chǎn)品的領(lǐng)導(dǎo)得不到產(chǎn)品質(zhì)量的具體信息,不能對(duì)軟件研發(fā)體系交付產(chǎn)品的質(zhì)量建立信心;
. 項(xiàng)目管理人員無(wú)法實(shí)時(shí)對(duì)項(xiàng)目中軟件部分所處的質(zhì)量狀態(tài)有所了解;
. 產(chǎn)品在集成階段,常常因?yàn)檐浻布旌系募蓡?wèn)題難以解決,而造成延期,甚至由于進(jìn)度的要求,降低產(chǎn)品的質(zhì)量基線;
. 開(kāi)發(fā)團(tuán)隊(duì)沒(méi)有時(shí)間和資源繼續(xù)測(cè)試,發(fā)布未經(jīng)過(guò)完善測(cè)試的產(chǎn)品,然后在維護(hù)產(chǎn)品上花費(fèi)更多的時(shí)間、經(jīng)費(fèi)和人員;
. 于此同時(shí),研發(fā)體系困惑于測(cè)試工具的使用,發(fā)現(xiàn)那些購(gòu)買是良好演示的工具卻無(wú)法測(cè)試我們開(kāi)發(fā)出來(lái)的系統(tǒng);
. 軟件總是由總師設(shè)計(jì)出來(lái),由開(kāi)發(fā)人員編寫(xiě)出來(lái),最后在項(xiàng)目即將交付時(shí),交給測(cè)試人員,由他們承擔(dān)質(zhì)量責(zé)任。
. 軟件測(cè)試更象一場(chǎng)“運(yùn)動(dòng)”,在項(xiàng)目交付階段臨時(shí)組織起來(lái)的測(cè)試團(tuán)隊(duì),面對(duì)交付的壓力,不得不尋求無(wú)需學(xué)習(xí),無(wú)需準(zhǔn)備、無(wú)需了解被測(cè)對(duì)象的,無(wú)需硬件,無(wú)需源碼,最好什么都不需要的“人工智能”的測(cè)試工具,只要能出報(bào)告,而無(wú)暇顧及軟件質(zhì)量的本質(zhì)要求。
. 現(xiàn)有的工具往往無(wú)法滿足這些測(cè)試的需求,我們常常找些看似滿足的,但在實(shí)際使用中,又會(huì)發(fā)現(xiàn)由于我們對(duì)工具使用預(yù)期不恰當(dāng)?shù)亩ㄎ唬ぞ咴镜墓δ苡捎谄渌囊蛩責(zé)o法發(fā)揮。
. 現(xiàn)有的工具常常處于閑置狀態(tài),而開(kāi)發(fā)團(tuán)隊(duì)又有很多問(wèn)題得不到解決,需要更多的工具。
究其根源,除了軟件本身故有的復(fù)雜性,還和不同的組織對(duì)軟件產(chǎn)品質(zhì)量?jī)?nèi)涵有著不同的認(rèn)識(shí),造成不同的工作方式和態(tài)度,養(yǎng)成了不同的工作和思維習(xí)慣,和由此帶來(lái)不同的產(chǎn)品質(zhì)量結(jié)果。
IBM Rational多年來(lái)在軟件工程和質(zhì)量保證方面積累了豐富的方法和經(jīng)驗(yàn)。本文依據(jù)部分嵌入式開(kāi)發(fā)機(jī)構(gòu)中對(duì)軟件質(zhì)量保證工作的一些理解,分析相應(yīng)開(kāi)發(fā)機(jī)構(gòu)工作中可能的問(wèn)題,并提出以RUP為核心的全過(guò)程的質(zhì)量管理的思想和具體的實(shí)現(xiàn)方式,提出不同單位的過(guò)程改進(jìn)方法,以一種漸進(jìn)的方式,從簡(jiǎn)單的工作開(kāi)始,逐漸深入的改進(jìn)組織的軟件質(zhì)量管理水平
但我們也需要看到,盡管可能不需要一個(gè)繁重的、一蹴而就的過(guò)程來(lái)達(dá)到高質(zhì)量的要求,但是關(guān)注質(zhì)量的組織思維傾向是必要的條件,并且這必須由最高管理層驅(qū)動(dòng)。
二. 定義質(zhì)量
對(duì)于任何一個(gè)組織,定義共同的對(duì)質(zhì)量的理解,是重要的第一步。軟件開(kāi)發(fā)組織經(jīng)常按照一種不精確的、概括的質(zhì)量觀念來(lái)運(yùn)轉(zhuǎn)。
在IBM Rational統(tǒng)一過(guò)程中,質(zhì)量定義如下:
. 滿足或超出認(rèn)定的一組需求
. 使用經(jīng)過(guò)認(rèn)可的評(píng)測(cè)方法和標(biāo)準(zhǔn)來(lái)評(píng)估
. 使用認(rèn)定的流程來(lái)生產(chǎn)。
在這個(gè)定義中,我們首先看需求,IBM Rational的軟件質(zhì)量在用戶需求方面的定義分為這樣幾個(gè)方面:
講到質(zhì)量保證,歸根結(jié)底就是為客戶提供更高品質(zhì)的產(chǎn)品,更好地滿足客戶的需求。而且客戶的需求是多維的,產(chǎn)品的功能性需求應(yīng)該是客戶首先要考慮的因素,同時(shí)還包括其他四個(gè)方面。除了這些技術(shù)因素之外,用戶的需求還應(yīng)該包括產(chǎn)品要在指定的時(shí)間和預(yù)算范圍內(nèi)完成。
{{分頁(yè)}}
第二方面,這個(gè)質(zhì)量定義中明確指出,質(zhì)量更體現(xiàn)在軟件開(kāi)發(fā)的整個(gè)過(guò)程和一個(gè)標(biāo)準(zhǔn)的評(píng)價(jià)方式上。在過(guò)程質(zhì)量方面,經(jīng)常舉的一個(gè)例子就是汽車生產(chǎn)過(guò)程。當(dāng)我們面對(duì)推銷員推銷兩款汽車,其中一款是由先進(jìn)的生產(chǎn)線生產(chǎn)的產(chǎn)品,而另一款是由技術(shù)精湛的師傅手工精制而成,在汽車的質(zhì)量方面,您會(huì)作何感想呢?通過(guò)了解市場(chǎng)上同型號(hào)車的質(zhì)量狀況,你可以輕松做到對(duì)第一輛車心中有數(shù);但對(duì)第二輛呢?由此可見(jiàn),你對(duì)第一輛車的信任,來(lái)自于過(guò)程質(zhì)量。
. 軟件開(kāi)發(fā)過(guò)程質(zhì)量就是指為了生成工件而對(duì)可接受流程的實(shí)施和遵守程度,體現(xiàn)在三個(gè)層次:
. 產(chǎn)品本身和用來(lái)生產(chǎn)、組裝軟件產(chǎn)品的零部件質(zhì)量,包括用來(lái)進(jìn)行軟件開(kāi)發(fā)或在軟件開(kāi)發(fā)過(guò)程中產(chǎn)生的代碼、文檔、模型和可執(zhí)行系統(tǒng)等工件;
. 軟件開(kāi)發(fā)活動(dòng)本身對(duì)標(biāo)準(zhǔn)化軟件開(kāi)發(fā)過(guò)程的遵守和貫徹的程度,主要體現(xiàn)在軟件開(kāi)發(fā)過(guò)程的標(biāo)準(zhǔn)化、流程化、自動(dòng)化程度和團(tuán)隊(duì)基本協(xié)作平臺(tái)的效率,各個(gè)過(guò)程對(duì)質(zhì)量的承諾;
用來(lái)對(duì)整個(gè)軟件產(chǎn)品進(jìn)行驗(yàn)收的評(píng)測(cè)手段,它應(yīng)該是被業(yè)界廣泛認(rèn)可和接受的方法,應(yīng)以優(yōu)先考慮經(jīng)典的測(cè)試方式的實(shí)現(xiàn),構(gòu)筑質(zhì)量評(píng)價(jià)的基礎(chǔ),然后再針對(duì)某些低效環(huán)節(jié)補(bǔ)充其他專門(mén)的測(cè)試手段。
一個(gè)軟件生產(chǎn)企業(yè)的過(guò)程質(zhì)量一般可以用它的軟件過(guò)程成熟度等級(jí)來(lái)評(píng)估,但它依賴我們采取的方法、工具和軟件開(kāi)發(fā)平臺(tái)來(lái)決定。
我們應(yīng)該如何達(dá)到這一質(zhì)量目標(biāo)呢?盡管要求更好質(zhì)量的下意識(shí)反應(yīng)就是擴(kuò)大測(cè)試團(tuán)隊(duì),但是這可能不是最好的方法。作為替代,應(yīng)當(dāng)在你的過(guò)程中關(guān)注每一個(gè)步驟的質(zhì)量。RUP全過(guò)程的質(zhì)量保證過(guò)程強(qiáng)調(diào)的是在RUP的九個(gè)工作流程中都要逐漸形成產(chǎn)品的內(nèi)在質(zhì)量,是由所有團(tuán)隊(duì)成員按照要求完成自己的工作并按照RUP中提供的手段檢查自己的工作而締造的。而測(cè)試流程是由專門(mén)的各個(gè)測(cè)試角色來(lái)負(fù)責(zé),目的在于評(píng)估和改善產(chǎn)品質(zhì)量,監(jiān)控質(zhì)量狀態(tài)的方面。
有些開(kāi)發(fā)人員或許會(huì)感覺(jué)這樣做不現(xiàn)實(shí),做不到,或目標(biāo)太遠(yuǎn)大而不實(shí)際,我們?cè)谶@里想要展示的就是不這樣做,我們僅有的質(zhì)量保證和測(cè)試活動(dòng)在應(yīng)對(duì)未來(lái)復(fù)雜的系統(tǒng)開(kāi)發(fā)測(cè)試需求時(shí),將耗費(fèi)巨大的經(jīng)費(fèi)和時(shí)間,甚至根本無(wú)法實(shí)施。而同時(shí),我們將提出一個(gè)漸進(jìn)的改進(jìn)方式,最終達(dá)到全過(guò)程質(zhì)量保證體系的要求,我們要做的,僅僅是,開(kāi)始!
三. RUP全過(guò)程質(zhì)量保證
Rational Unified Process(簡(jiǎn)稱RUP)是一個(gè)可以通過(guò)Web來(lái)使用的軟件工程過(guò)程。作為軟件工業(yè)事實(shí)上的標(biāo)準(zhǔn),它回答了我們以下問(wèn)題:在整個(gè)軟件開(kāi)發(fā)的各個(gè)過(guò)程中,應(yīng)該由誰(shuí)(角色)在什么時(shí)候(詳細(xì)工作流程)做什么(任務(wù))和產(chǎn)生什么樣的開(kāi)發(fā)結(jié)果(工件),以完成整個(gè)項(xiàng)目的開(kāi)發(fā)目標(biāo)。建立有效的工作過(guò)程,可以提高團(tuán)隊(duì)的生產(chǎn)效率,控制開(kāi)發(fā)過(guò)程中的風(fēng)險(xiǎn),保證軟件開(kāi)發(fā)進(jìn)度并且提高軟件產(chǎn)品質(zhì)量。同時(shí)通過(guò)為所有重要的開(kāi)發(fā)活動(dòng)提供全面的指南、模板和示例,使整個(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)能夠有效共享成功經(jīng)驗(yàn),提高團(tuán)隊(duì)效率,最終保證軟件開(kāi)發(fā)質(zhì)量。
. 全過(guò)程質(zhì)量保證思想
RUP把整個(gè)軟件開(kāi)發(fā)過(guò)程分解成:業(yè)務(wù)建模、需求管理、分析設(shè)計(jì)、實(shí)施、測(cè)試、部署、配置與變更管理、項(xiàng)目管理和環(huán)境等九個(gè)核心工作流程。每個(gè)核心工作規(guī)程由多個(gè)詳細(xì)工作流程組成。RUP使用角色、任務(wù)和作為輸入輸出的工件來(lái)組織每個(gè)詳細(xì)工作流程,實(shí)現(xiàn)軟件開(kāi)發(fā)組織內(nèi)部人、資源和流程的融合。在許多組織中,將測(cè)試團(tuán)隊(duì)成員視為缺點(diǎn)的清除者,在生命周期后期將他們放在一個(gè)應(yīng)用軟件上,讓他們?nèi)ゲ檎移渌鼒F(tuán)隊(duì)成員引入的缺陷。為了最有效地測(cè)試,測(cè)試團(tuán)隊(duì)必須更關(guān)注于系統(tǒng)級(jí)質(zhì)量問(wèn)題上。RUP通過(guò)建立完整的軟件開(kāi)發(fā)過(guò)程,使得產(chǎn)品的質(zhì)量由項(xiàng)目團(tuán)隊(duì)的每個(gè)成員所代表的角色共同負(fù)責(zé),具體體現(xiàn)在:
. 每個(gè)工作流程設(shè)定相應(yīng)的工作指南和工作檢查點(diǎn)
. 每個(gè)角色承擔(dān)相應(yīng)的質(zhì)量任務(wù)
. 角色的每個(gè)任務(wù)要產(chǎn)生合格的工件
. 產(chǎn)品的每個(gè)工件建立工件指南、模板和工件檢查點(diǎn)
在RUP中,整個(gè)軟件開(kāi)發(fā)過(guò)程如上圖所示,它以指定的工件為輸入,通過(guò)軟件開(kāi)發(fā)角色和標(biāo)準(zhǔn)化的軟件開(kāi)發(fā)活動(dòng),生產(chǎn)出滿足質(zhì)量要求的輸出工件。為確保每個(gè)工作環(huán)節(jié)的有效執(zhí)行和每個(gè)工作環(huán)節(jié)產(chǎn)生的工件質(zhì)量,RUP為主要工作流程提供了對(duì)應(yīng)的工作指南和檢查點(diǎn),為每個(gè)工件建立指南、模板和檢查點(diǎn),從而保證了軟件開(kāi)發(fā)的過(guò)程質(zhì)量。
大家可能都曾注意到,RUP的九個(gè)核心工作流程并沒(méi)有一個(gè)質(zhì)量保證的流程。原因就在于我們認(rèn)為質(zhì)量是在產(chǎn)品各個(gè)流程中形成的一種產(chǎn)品的屬性,而不是一件流程,質(zhì)量就是質(zhì)量。它意味著,應(yīng)當(dāng)在你的過(guò)程中關(guān)注每一個(gè)步驟的質(zhì)量。理解這個(gè),是創(chuàng)建一個(gè)真正成功的應(yīng)用軟件交付過(guò)程的關(guān)鍵。
我們都曾經(jīng)誓言視質(zhì)量為產(chǎn)品的生命,在此在回顧一下我們的誓言,將使我們更有信心沿著正確的道路走下去。
. 過(guò)程質(zhì)量
努力建立組織級(jí)別的,可以針對(duì)不同類型項(xiàng)目,指定項(xiàng)目管理的流程,工作分配和檢查點(diǎn)。在項(xiàng)目較多是,可以考慮使用項(xiàng)目組合管理工具來(lái)導(dǎo)入在RUP基礎(chǔ)上裁剪的項(xiàng)目管理模板進(jìn)行輔助管理,以保障過(guò)程的貫徹實(shí)施和監(jiān)控。
當(dāng)我們考慮使用RUP時(shí),大家常常因?yàn)樽约翰皇堑拈_(kāi)發(fā)方式,認(rèn)為RUP對(duì)自己沒(méi)有價(jià)值。其實(shí),即便我們暫時(shí)不準(zhǔn)備采用迭代化的開(kāi)發(fā)方式,我們也可以把一個(gè)V型的開(kāi)發(fā)模式當(dāng)作一個(gè)迭代,來(lái)從RUP中吸取其他值得我們參考的思想,改進(jìn)我們的實(shí)際流程。本身在RUP的迭代方式模型中,就有一個(gè)類似于瀑布的稱之為“Grand design” 的開(kāi)發(fā)方式,來(lái)應(yīng)對(duì)小型的,或是大型又極端重要的,需求長(zhǎng)時(shí)間保持清晰穩(wěn)定的項(xiàng)目開(kāi)發(fā)。
實(shí)際上大家實(shí)際工作中都或多或少的采取了一些迭代開(kāi)發(fā)的方式,首先在很多關(guān)鍵領(lǐng)域的項(xiàng)目開(kāi)發(fā)中采取的預(yù)言、初樣、正樣的方式,本身就是可以認(rèn)為是某種形式的迭代,我們可以順利的沿用自己習(xí)慣的開(kāi)發(fā)方式,在RUP的過(guò)程和工具中吸取對(duì)我們有效的部分,并在其他條件成熟時(shí)在細(xì)化現(xiàn)有開(kāi)發(fā)模式階段的粒度。
美國(guó)國(guó)防部原本提倡瀑布過(guò)程和觀點(diǎn),在發(fā)現(xiàn)那么多采用了該方法的失敗之后,不但不再?gòu)?qiáng)調(diào)對(duì)它的要求(如1988年的STD-2167A標(biāo)準(zhǔn)),而且從1994年的報(bào)告開(kāi)始,積極地鼓勵(lì)采用更加現(xiàn)代化的迭代式生命周期來(lái)取代瀑布型做法。
{{分頁(yè)}}
. 軟件工程成功經(jīng)驗(yàn)共同鑄就軟件質(zhì)量的思想
激烈的市場(chǎng)競(jìng)爭(zhēng)催生高質(zhì)量的軟件。同時(shí),軟件行業(yè)經(jīng)過(guò)幾十年的發(fā)展,軟件生產(chǎn)工藝、軟件開(kāi)發(fā)方法和工具都大大進(jìn)步、日趨成熟,這一切使開(kāi)發(fā)人員盡可采用更給高效的開(kāi)發(fā)方式,盡享其帶來(lái)的好處,開(kāi)發(fā)高質(zhì)量的軟件。RUP以迭代式軟件開(kāi)發(fā)、架構(gòu)為核心的軟件開(kāi)發(fā)、用例驅(qū)動(dòng)的軟件開(kāi)發(fā)和風(fēng)險(xiǎn)驅(qū)動(dòng)的軟件開(kāi)發(fā)為特色,集中體現(xiàn)了以下六個(gè)軟件工程成功經(jīng)驗(yàn),通過(guò)它們共同鑄就了高品質(zhì)軟件:
. 迭代式軟件開(kāi)發(fā):能夠有效控制項(xiàng)目風(fēng)險(xiǎn)、增加對(duì)項(xiàng)目控制能力、減少需求變更對(duì)項(xiàng)目的影響,實(shí)現(xiàn)持續(xù)的質(zhì)量驗(yàn)證,實(shí)現(xiàn)測(cè)試技術(shù)的早期驗(yàn)證,提高軟件的可測(cè)試性;
. 有效管理需求:能夠做到質(zhì)量保證從頭作起,在軟件開(kāi)發(fā)一開(kāi)始,就把好需求質(zhì)量關(guān),實(shí)現(xiàn)需求的可追蹤性和需求變更的有效管理;
. 基于構(gòu)件的軟件架構(gòu):采用可視化建模技術(shù)來(lái)構(gòu)建以構(gòu)件為基礎(chǔ)、面向服務(wù)的系統(tǒng)框架,可以有效地管理系統(tǒng)的復(fù)雜度,增強(qiáng)系統(tǒng)的靈活性和可擴(kuò)展性,并解決了大家在采用迭代設(shè)計(jì)方法時(shí)構(gòu)件不易識(shí)別和劃分的問(wèn)題;
. 可視化建模:能夠有效解決團(tuán)隊(duì)溝通、管理系統(tǒng)復(fù)雜度、提高軟件重用;
. 持續(xù)的質(zhì)量驗(yàn)證:借助迭代式軟件開(kāi)發(fā)方法,可以大大提前軟件集成測(cè)試和系統(tǒng)測(cè)試在整個(gè)開(kāi)發(fā)生命周期中的時(shí)間,實(shí)現(xiàn)持續(xù)地軟件質(zhì)量驗(yàn)證,做到盡早測(cè)試、盡早反饋,從而確保產(chǎn)品滿足客戶的需求;
. 管理變更:能夠?yàn)檎麄€(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)提供基本協(xié)作平臺(tái),使企業(yè)管理好自己的軟件資產(chǎn),通過(guò)有效管理所有的變更請(qǐng)求,使開(kāi)發(fā)團(tuán)隊(duì)能夠很好的控制開(kāi)發(fā)進(jìn)度、及時(shí)了解項(xiàng)目狀況,同時(shí)為項(xiàng)目的量化管理提供幫助。
由此可見(jiàn),在軟件開(kāi)發(fā)過(guò)程中,高品質(zhì)軟件是由以上軟件工程的成功經(jīng)驗(yàn)共同鑄就的。
. 盡早測(cè)試
作為質(zhì)量保證工作的一部分,盡早測(cè)試是指在整個(gè)軟件開(kāi)發(fā)生命周期中通過(guò)各種軟件工程技術(shù)盡量早的完成各種軟件測(cè)試任務(wù)的一種思想。IBM Rational主要在以下三個(gè)方面為我們提供的盡早測(cè)試的軟件工程技術(shù):
首先,軟件的整個(gè)測(cè)試生命周期是與軟件的開(kāi)發(fā)生命周期基本平齊的過(guò)程,保證當(dāng)軟件的第一個(gè)發(fā)布出來(lái)后,測(cè)試人員要馬上基于它進(jìn)行測(cè)試腳本的實(shí)現(xiàn),并基于測(cè)試計(jì)劃中的測(cè)試目的執(zhí)行測(cè)試用例,對(duì)測(cè)試結(jié)果進(jìn)行評(píng)估報(bào)告。這樣,我們可以通過(guò)各種測(cè)試指標(biāo)實(shí)時(shí)監(jiān)控項(xiàng)目質(zhì)量狀況,提高對(duì)整個(gè)項(xiàng)目的控制和管理能力。
其次,通過(guò)迭代是軟件開(kāi)發(fā)把原來(lái)的整個(gè)軟件開(kāi)發(fā)生命周期分成多個(gè)迭代周期,在每個(gè)迭代周期都進(jìn)行測(cè)試,這樣在很大程度上提前了軟件系統(tǒng)測(cè)試發(fā)生的時(shí)間,這可以在很大程度上降低項(xiàng)目風(fēng)險(xiǎn)和項(xiàng)目開(kāi)發(fā)成本。
最后,IBM Rational的盡早測(cè)試成功經(jīng)驗(yàn)還體現(xiàn)在它擴(kuò)展了傳統(tǒng)軟件測(cè)試階段從單元測(cè)試、集成測(cè)試到系統(tǒng)測(cè)試、驗(yàn)收測(cè)試的劃分,將整個(gè)軟件的測(cè)試按RUP中的角色和階段,劃分成開(kāi)發(fā)人員測(cè)試和系統(tǒng)測(cè)試兩個(gè)階段,把軟件的測(cè)試責(zé)無(wú)旁貸地?cái)U(kuò)展到整個(gè)開(kāi)發(fā)人員的工作過(guò)程。通過(guò)提前測(cè)試發(fā)生的時(shí)間來(lái)盡早地提高軟件質(zhì)量、降低軟件測(cè)試成本。
. 持續(xù)測(cè)試
作為質(zhì)量保證工作的一部分,測(cè)試成功經(jīng)驗(yàn)持續(xù)測(cè)試是從迭代式軟件開(kāi)發(fā)模式得來(lái)。在迭代的方法中,我們將整個(gè)項(xiàng)目的開(kāi)發(fā)目標(biāo)劃分成為一些更易于完成和達(dá)到的階段性小目標(biāo),這些小目標(biāo)都有一個(gè)定義明確的階段性評(píng)估標(biāo)準(zhǔn)。每個(gè)迭代中都包括需求、設(shè)計(jì)、編碼、集成、測(cè)試等一系列的開(kāi)發(fā)活動(dòng),都會(huì)增量式集成一些新的系統(tǒng)功能。通過(guò)每次迭代,我們都產(chǎn)生一個(gè)可運(yùn)行的系統(tǒng),通過(guò)對(duì)于這個(gè)可運(yùn)行系統(tǒng)的測(cè)試來(lái)評(píng)估該次迭代有沒(méi)有達(dá)到預(yù)定的迭代目標(biāo),并以此為依據(jù)來(lái)制定下一次迭代的目標(biāo)。由此可見(jiàn),在迭代式軟件開(kāi)發(fā)的每個(gè)迭代周期我們都會(huì)進(jìn)行軟件測(cè)試活動(dòng),整個(gè)軟件測(cè)試的完成是通過(guò)每個(gè)迭代周期不斷增量測(cè)試和回歸測(cè)試實(shí)現(xiàn)的。
采用連續(xù)測(cè)試的軟件成功測(cè)試經(jīng)驗(yàn),不但能夠持續(xù)的提高軟件質(zhì)量、監(jiān)控質(zhì)量狀態(tài),同時(shí)也使系統(tǒng)測(cè)試的盡早實(shí)現(xiàn)成為可能。從而有效的控制開(kāi)發(fā)風(fēng)險(xiǎn)、減低測(cè)試成本和保證項(xiàng)目進(jìn)度。
. 自動(dòng)化測(cè)試
作為質(zhì)量保證工作的一部分,在整個(gè)軟件的測(cè)試過(guò)程中要想實(shí)現(xiàn)盡早測(cè)試、連續(xù)測(cè)試,可以說(shuō)完善的測(cè)試流程是前提,自動(dòng)化測(cè)試工具是保證。方法是質(zhì)量保證活動(dòng)的基礎(chǔ),工具的作用多體現(xiàn)在對(duì)質(zhì)量保證活動(dòng)的自動(dòng)化,以提高工作效率。我們可以體會(huì)到,沒(méi)有質(zhì)量保證活動(dòng)的最佳方法,工具的自動(dòng)化沒(méi)有實(shí)現(xiàn)的基礎(chǔ),工具的作用無(wú)法體現(xiàn);沒(méi)有工具輔助的質(zhì)量保證活動(dòng),也會(huì)因?yàn)樘叩墓ぷ鲝?qiáng)度,或過(guò)于文檔化、太繁瑣而無(wú)法實(shí)施貫徹。自動(dòng)化測(cè)試的實(shí)現(xiàn),使軟件測(cè)試團(tuán)隊(duì)能夠?qū)⒏嗟慕?jīng)歷放在更有創(chuàng)造性的工作上,并且將降低由于規(guī)章制度的遵從性需求給開(kāi)發(fā)測(cè)試人員帶來(lái)的額外的工作量。
四. 用正確的過(guò)程和平臺(tái)實(shí)現(xiàn)質(zhì)量
IBM提供一個(gè)完整的方案以幫助開(kāi)發(fā)團(tuán)隊(duì)構(gòu)建更高質(zhì)量的軟件。這個(gè)開(kāi)放和標(biāo)準(zhǔn)的平臺(tái)包括IBM軟件的許多工具,包括IBM Rational統(tǒng)一過(guò)程。在開(kāi)發(fā)的每個(gè)階段和每個(gè)流程都強(qiáng)調(diào)關(guān)注質(zhì)量,幫助團(tuán)隊(duì)來(lái)識(shí)別開(kāi)發(fā)生命周期中的早期問(wèn)題。以下部分描述了RUP和IBM軟件開(kāi)發(fā)平臺(tái)中的工具如何支持每個(gè)工作流程中的質(zhì)量實(shí)踐的。
{{分頁(yè)}}
為減少重復(fù)描述,先將相關(guān)工具的功能統(tǒng)一簡(jiǎn)要描述。下面的所有工具都可以以插件的形式集成到開(kāi)放的Eclipse平臺(tái)上,為開(kāi)發(fā)者提供前所未有的集成環(huán)境。
IBM Rational System Developer 用于系統(tǒng)建模和開(kāi)發(fā)的集成環(huán)境。
IBM Rational TestManager 用于計(jì)劃、管理和報(bào)告任何測(cè)試工作要求。
IBM Rational Manual Tester 用以提高手工測(cè)試工作的效率。
IBM Rational Test RealTime 用于嵌入式系統(tǒng)的靜態(tài)度量、代碼規(guī)則檢查、單元測(cè)試、覆蓋率分析、內(nèi)存分析、性能分析、代碼跟蹤、線程分析、基于消息的分布式系統(tǒng)測(cè)試的跨平臺(tái)解決方案。
要推動(dòng)團(tuán)隊(duì)溝通、協(xié)作和合作,IBM Rational還提供額外的解決方案:
IBM Rational RequisitePro 用于需求和用例管理 。
IBM Rational ClearQuest 用于基于工作流的缺陷和變更管理 。
IBM Rational ClearCase 用于配置管理。
IBM Rational Method Composer 用于組織開(kāi)發(fā)方法的構(gòu)造和發(fā)布。
IBM Rational ProjectConsole 使管理人員能夠更加形象的了解項(xiàng)目質(zhì)量狀態(tài)。它支持由開(kāi)發(fā)環(huán)境自動(dòng)收集的數(shù)據(jù),動(dòng)態(tài)產(chǎn)生有網(wǎng)頁(yè)形式發(fā)布的一個(gè)項(xiàng)目狀況和數(shù)據(jù)矩陣。
IBM Rational SoDA自動(dòng)地產(chǎn)生和維護(hù)全面的項(xiàng)目文檔和報(bào)告。
順便提一下,在開(kāi)發(fā)方面,我們還有Apex——針對(duì)高安全性嵌入式系統(tǒng)Ada語(yǔ)言開(kāi)發(fā)工具Rational Ada Developer。
. 分析
Meta Group報(bào)告,引起客戶不滿意問(wèn)題的百分之八十可以追溯到對(duì)需求的糟糕理解上。對(duì)于任何嵌入式開(kāi)發(fā)項(xiàng)目,不論是新的系統(tǒng)開(kāi)發(fā),或遺留系統(tǒng)更新集成,質(zhì)量開(kāi)始于分析業(yè)務(wù),以確保系統(tǒng)需求清晰且準(zhǔn)確地反映了業(yè)務(wù)和客戶需求。
首先,我們可以將被測(cè)系統(tǒng)置于其將運(yùn)行的環(huán)境中,采用建模的方式,激發(fā)和整理用戶業(yè)務(wù)和分析人員的思維,捕獲盡可能完整的需求,并在后續(xù)的迭代中完善;通過(guò)建模的分析方式,建立松耦合、接口清晰的架構(gòu),為測(cè)試的設(shè)計(jì)提供基礎(chǔ);通過(guò)采用相適應(yīng)的架構(gòu)機(jī)制,提高系統(tǒng)的可測(cè)試性;通過(guò)采用流程管理工具,自動(dòng)化輔助需求的評(píng)估和審計(jì);將最優(yōu)確認(rèn)的需求,用條目化的方式管理需求文檔,實(shí)現(xiàn)從需求,到分析,到設(shè)計(jì),到實(shí)現(xiàn),到測(cè)試的雙向跟蹤,以實(shí)現(xiàn)測(cè)試中發(fā)現(xiàn)缺陷到各層次的跟蹤,和影響范圍的分析。
此活動(dòng)的工具包括Rational RequisitePro、Rational System Developer、Rational ClearQuest。
. 設(shè)計(jì)
在設(shè)計(jì)中,主要的質(zhì)量集中在構(gòu)架上,這是軟件的“靈魂”。低質(zhì)量的構(gòu)架會(huì)引起大范圍的質(zhì)量問(wèn)題,包括(軟件)脆弱,缺乏升級(jí),以及發(fā)現(xiàn)缺陷也難以修改。這些問(wèn)題隨著應(yīng)用軟件項(xiàng)目不斷發(fā)展,變得越來(lái)越難以解決;并且隨著應(yīng)用軟件從設(shè)計(jì)到開(kāi)發(fā)、測(cè)試和部署,糾正缺陷的成本以指數(shù)在增長(zhǎng)。如果軟件開(kāi)發(fā)人員可以有效地發(fā)現(xiàn)、隔離和解決設(shè)計(jì)和開(kāi)發(fā)期間的結(jié)構(gòu)上的不足,這項(xiàng)工作會(huì)在整個(gè)項(xiàng)目期間獲得受益。開(kāi)發(fā)人員也應(yīng)該確保,軟件是按照一種保持構(gòu)架完整性和靈活性的方式來(lái)實(shí)現(xiàn)的,因此,隨著業(yè)務(wù)需求變化,開(kāi)發(fā)人員可以快速地進(jìn)行變更。
針對(duì)此工作流程的工具有Rational System Developer、Rational RequisitePro。
. 開(kāi)發(fā)
平均起來(lái),開(kāi)發(fā)人員在他們寫(xiě)的每千行代碼中會(huì)產(chǎn)生100到150個(gè)錯(cuò)誤。當(dāng)然,這個(gè)數(shù)量隨著開(kāi)發(fā)人員和項(xiàng)目不同而不同。即使只有一小段代碼,產(chǎn)生百分之十的錯(cuò)誤也是很嚴(yán)重的。
RUP倡導(dǎo)開(kāi)發(fā)人員主導(dǎo)的測(cè)試和分析上。盡管單元測(cè)試和運(yùn)行時(shí)分析已經(jīng)變得更為主流,但是許多管理人員仍然有這樣的誤解,即這些過(guò)程向時(shí)間表中增加了不必要的時(shí)間。事實(shí)上,如果不采用這些措施,開(kāi)發(fā)時(shí)間表通常會(huì)一樣或更加延長(zhǎng),這是由于在質(zhì)量保證或客戶發(fā)現(xiàn)問(wèn)題后,開(kāi)發(fā)人員在生命周期中調(diào)試代碼后所花費(fèi)的時(shí)間。對(duì)于那些想要減少風(fēng)險(xiǎn)和增加可預(yù)測(cè)性的團(tuán)隊(duì)來(lái)說(shuō),開(kāi)發(fā)團(tuán)隊(duì)采用一種良好結(jié)構(gòu)的、主動(dòng)的質(zhì)量保證方法是一個(gè)好的解決方案。
針對(duì)此工作流程的工具有Rational System Developer、Rational Test RealTime、IBM Rational TestManager、IBM Rational RequisitePro。
. 測(cè)試
管理系統(tǒng)級(jí)功能和性能測(cè)試是持續(xù)保證質(zhì)量的一個(gè)主要部分。一個(gè)開(kāi)發(fā)組織既不應(yīng)當(dāng)過(guò)分強(qiáng)調(diào),也應(yīng)當(dāng)減少系統(tǒng)測(cè)試的重要性。如前所述,保證質(zhì)量不只是測(cè)試團(tuán)隊(duì)的職責(zé);測(cè)試也不只是質(zhì)量保證的唯一領(lǐng)域。某些測(cè)試可以并且應(yīng)當(dāng)由開(kāi)發(fā)人員來(lái)運(yùn)行,在某些情況下,可以由構(gòu)架師來(lái)運(yùn)行。大量的質(zhì)量保證工作,在RUP的原則下,是由其他開(kāi)發(fā)角色構(gòu)造的。
針對(duì)此工作流程的工具有Rational Test RealTime、IBM Rational TestManager、Rational Manual Tester 、IBM Rational RequisitePro。
. 支持保證質(zhì)量的團(tuán)隊(duì)職責(zé)
質(zhì)量是開(kāi)發(fā)團(tuán)隊(duì)中的每個(gè)人的職責(zé),但是它也是團(tuán)隊(duì)作為一個(gè)整體的職責(zé)。在一個(gè)迭代的過(guò)程中,每個(gè)迭代確保了每個(gè)工件質(zhì)量的持續(xù)的重新評(píng)估,這樣,迭代的方式下,經(jīng)??梢员WC提交質(zhì)量更高的產(chǎn)品,也就不奇怪了。團(tuán)隊(duì)必須做他們可以做的任何事情,來(lái)控制迭代中的活動(dòng)和工件,建立可追溯性,并簡(jiǎn)化溝通。有效的軟件配置管理和變更管理是保證質(zhì)量的一個(gè)基本工具;它幫助組織確保軟件在每次構(gòu)建是可重復(fù)的和可靠的,并且保證缺陷和變更請(qǐng)求得到正確的管理。
針對(duì)此工作流程的工具有IBM Rational Team Unifying Platform,一套完整的基本工具和過(guò)程,這個(gè)平臺(tái)包括 Rational Unified Process、Rational RequisitePro、Rational ClearCase、Rational ClearQuest、Rational ProjectConsole。
五. 質(zhì)量過(guò)程改進(jìn)的步驟
當(dāng)我們考慮需要什么來(lái)構(gòu)建任務(wù)關(guān)鍵和高安全性的系統(tǒng)軟件,并聽(tīng)說(shuō)過(guò)程質(zhì)量改進(jìn)時(shí),大家往往想到的一個(gè)復(fù)雜的過(guò)程。其實(shí),軟件過(guò)程質(zhì)量改進(jìn),如軟件開(kāi)發(fā),可以是一個(gè)迭代的過(guò)程。你不需要一步就完成所有的事情。即使是小的變化,包括調(diào)整你的組織中對(duì)質(zhì)量的看法,也會(huì)產(chǎn)生一個(gè)切實(shí)的改進(jìn)。
我們將給大家指出兩條參考的改進(jìn)的線路圖,我們分別稱之為遞進(jìn)式的(或者可以稱之為本質(zhì)的)和演進(jìn)式的(我也稱之為反應(yīng)式的)。遞進(jìn)式的更多考慮工作流程間的依賴性,做到先改善基礎(chǔ)流程,在基于已有的改善基礎(chǔ),做進(jìn)一步改進(jìn)。而演進(jìn)式的多來(lái)自于工作中感知到的問(wèn)題和瓶頸,依據(jù)問(wèn)題的表面做反應(yīng)式的改進(jìn)。基于改進(jìn)后再發(fā)現(xiàn)新的問(wèn)題,如此反復(fù)。當(dāng)然,我也在努力發(fā)現(xiàn)一種可以兼顧工作流程間依賴性,有可以快速顯示改進(jìn)效果的改進(jìn)方式。
從個(gè)人角度看,由于理解有局限,我的建議常常還是反應(yīng)式的。即使在這樣很難考慮到太多前瞻性的工作方式中,我們需要注意:1. 我們是不是了解自己現(xiàn)在的瓶頸,并以此確定方向,并始終堅(jiān)持自己的方向。2. 我們是不是可以做的更好,我們的改善有更多的預(yù)見(jiàn)性,對(duì)問(wèn)題分析,從表面到本質(zhì),而不僅僅是反映式的。
質(zhì)量保證工作改善我們可以簡(jiǎn)單的劃分為以下幾個(gè)方面:
配置管理和變更管理、靜態(tài)分析和單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試、迭代開(kāi)發(fā)和連續(xù)測(cè)試、全過(guò)程質(zhì)量、組織級(jí)質(zhì)量體系、架構(gòu)分析、需求管理、項(xiàng)目管理。我們將在以后的文章中詳細(xì)描述每種改進(jìn)的內(nèi)容。
遞進(jìn)式的改進(jìn)方式。
{{分頁(yè)}}
演進(jìn)式的實(shí)施方式。
六. 對(duì)質(zhì)量保證的幾種理解
一下主題,僅是我們所見(jiàn)到和所希望達(dá)到的對(duì)軟件質(zhì)量的幾種不同的理解,沒(méi)有順序關(guān)系,也不涉及改進(jìn)先后的建議。
6.1. 測(cè)試是重要并應(yīng)該智能的
在這樣的嵌入式系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)中,團(tuán)隊(duì)成員已經(jīng)認(rèn)識(shí)到軟件質(zhì)量的重要性,并努力謀求在軟件質(zhì)量方面的改善,并且積極的尋求適當(dāng)?shù)姆椒?,提高測(cè)試的效率和易用性,并且意圖構(gòu)建可以無(wú)縫融入原有開(kāi)發(fā)流程中的測(cè)試方法。這些目標(biāo),也是我們的目標(biāo)。
我們也應(yīng)該看到,無(wú)論什么樣的方法和工具,目前,都無(wú)法改變這樣一個(gè)事實(shí),軟件開(kāi)發(fā)和測(cè)試工作是艱苦的?!耙子眯浴爆F(xiàn)在常常是個(gè)被過(guò)度使用的概念?,F(xiàn)在還不存在這樣的工具,他能成為軟件測(cè)試的精靈手杖和魔術(shù)子彈。軟件開(kāi)發(fā)團(tuán)隊(duì)不應(yīng)寄希望于只要自己使用了某種軟件測(cè)試工具,那么就應(yīng)該可以獲取測(cè)試帶來(lái)的種種好處。當(dāng)一個(gè)工具給大家這樣的印象時(shí),我們只需要回顧軟件質(zhì)量在客戶需求方面的幾個(gè)需要考慮的維度上,它滿足的那些?一個(gè)按鈕的解決方案是存在的,但我們可以看看這樣的測(cè)試工具主要完成了什么類型的測(cè)試工作,我們應(yīng)該如何使用他們,應(yīng)該在什么情況下引進(jìn)他們才是最有效果的。采取與所處階段不相符的測(cè)試方法,實(shí)際上不但無(wú)法達(dá)到提高產(chǎn)品質(zhì)量的目的,而且往往由于實(shí)施的環(huán)境不具備,這些工具本身應(yīng)該具有的功能也無(wú)法實(shí)現(xiàn)。這樣的工具,在研發(fā)團(tuán)隊(duì)中被束之高閣也就變得在所難免了。
在這一過(guò)程中,我們建議在于,回顧組織對(duì)軟件質(zhì)量的定義;并圍繞這一定義,結(jié)合組織的特點(diǎn),找到目前工作的著眼點(diǎn)(以文中反應(yīng)式的改進(jìn)路線看,就是發(fā)現(xiàn)工作中的質(zhì)量瓶頸,可參考文中提到的改進(jìn)路線圖);緊緊圍繞這一著眼點(diǎn),來(lái)指定相關(guān)的流程方法(對(duì)流程有疑問(wèn),可以致電IBM Rational);圍繞這一方法,發(fā)現(xiàn)方法實(shí)施中可以通過(guò)自動(dòng)化工具有效提高效率的地方;依此尋求工具支持。而不應(yīng)反而以易用性選工具,以工具定測(cè)試需求,以需求來(lái)配套方法。
6.2. 系統(tǒng)測(cè)試保證產(chǎn)品質(zhì)量
在這樣的嵌入式系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)中,團(tuán)隊(duì)成員解決了原來(lái)的系統(tǒng)測(cè)試可視化程度不高的問(wèn)題,在原有的測(cè)試激勵(lì)環(huán)境下,構(gòu)建了相應(yīng)的測(cè)試系統(tǒng),提供可以量化的覆蓋率、性能等指標(biāo)。并且把量化的系統(tǒng)測(cè)試當(dāng)成對(duì)整個(gè)開(kāi)發(fā)過(guò)程健康狀況的評(píng)審和反饋,提出以測(cè)試促進(jìn)軟件工程的思想,這些是值得我們借鑒的。
我們也應(yīng)該看到,由于缺乏早期的測(cè)試活動(dòng),產(chǎn)品的質(zhì)量問(wèn)題在集成和系統(tǒng)階段被發(fā)現(xiàn),往往造成修改代價(jià)過(guò)高,有時(shí)對(duì)一個(gè)早期沒(méi)有建立良好架構(gòu)的系統(tǒng),甚至由于害怕的修改引入新的更嚴(yán)重的故障而保留缺陷發(fā)布;由于沒(méi)有統(tǒng)一的工具用于單元和系統(tǒng)測(cè)試階段,甚至沒(méi)有單元測(cè)試,使測(cè)試工具在系統(tǒng)級(jí)需要解決很多和用戶編碼風(fēng)格兼容性問(wèn)題;同時(shí)發(fā)現(xiàn)由于早期未采用迭代化的開(kāi)發(fā)方式下,而且即便是瀑布式的開(kāi)發(fā)方式,在早期也沒(méi)有注意測(cè)試技術(shù)的考慮和驗(yàn)證,知道產(chǎn)品即將交付時(shí),才發(fā)現(xiàn)測(cè)試技術(shù)未經(jīng)過(guò)實(shí)際的驗(yàn)證,不適應(yīng)系統(tǒng)測(cè)試的需求,尋求新的測(cè)試方式無(wú)疑是為即將到來(lái)的發(fā)布雪上加霜;即便有可用的測(cè)試方法,由于在系統(tǒng)設(shè)計(jì)早期,測(cè)試團(tuán)隊(duì)沒(méi)有介入到系統(tǒng)開(kāi)發(fā)中去,我們所構(gòu)建的系統(tǒng)不具備可測(cè)試的條件;同時(shí),早期設(shè)計(jì)時(shí),急于開(kāi)展編碼,沒(méi)有對(duì)系統(tǒng)進(jìn)行清晰的需求分析和設(shè)計(jì),只能為測(cè)試提供含糊的需求;沒(méi)有預(yù)先準(zhǔn)備的測(cè)試計(jì)劃和測(cè)試用例;這樣的系統(tǒng)測(cè)試,往往不得已又陷入了只能做“一個(gè)按鈕,一本報(bào)告”的輕松局面;這種測(cè)試,甚至起到的相反的示范效應(yīng),增強(qiáng)了開(kāi)發(fā)團(tuán)隊(duì)對(duì)測(cè)試效果的懷疑,同時(shí)開(kāi)發(fā)團(tuán)隊(duì)也沒(méi)有意識(shí)到自己其實(shí)就是質(zhì)量形成的主體。
在這一過(guò)程中,我們建議在于,加強(qiáng)單元測(cè)試,不但可以消除一些可以在單元階段可以消除的問(wèn)題,而且可以通過(guò)在單元和系統(tǒng)階段使用相同的工具,這樣,即使是瀑布式的開(kāi)發(fā)方式,系統(tǒng)測(cè)試技術(shù)也能及早的加以驗(yàn)證,提高可用性;加強(qiáng)系統(tǒng)需求分析和架構(gòu)設(shè)計(jì),是系統(tǒng)架構(gòu)強(qiáng)內(nèi)聚、弱耦合、接口明確,提高系統(tǒng)的可測(cè)試性;在系統(tǒng)開(kāi)發(fā)的早期,測(cè)試人員作為系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)的重要部分,參與系統(tǒng)設(shè)計(jì)流程,解決測(cè)試相關(guān)問(wèn)題(有那些問(wèn)題,RUP中有詳述),為測(cè)試對(duì)設(shè)計(jì)提出要求;加強(qiáng)軟件開(kāi)發(fā)過(guò)程的管理,為測(cè)試提供清晰明確的需求和架構(gòu);
6.3. 分階段測(cè)試提高測(cè)試效率
在這樣的嵌入式系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)中,建立了在經(jīng)典測(cè)試?yán)碚擉w系中包含的靜態(tài)分析,單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試的測(cè)試工作和相應(yīng)的配套的自動(dòng)化工具,對(duì)各種測(cè)試的責(zé)任人有認(rèn)識(shí)上的理解和劃分,有一些測(cè)試過(guò)程中需要的和產(chǎn)生相關(guān)文檔,對(duì)測(cè)試流程有一些零散的制度和自發(fā)的實(shí)施行為。
我們也應(yīng)該看到,在這樣的組織中,常常存在由于不恰當(dāng)?shù)膶?duì)單元測(cè)試的理解,導(dǎo)致為覆蓋率而編寫(xiě)測(cè)試用例的傾向,促使開(kāi)發(fā)人員認(rèn)為單元測(cè)試流于形式,沒(méi)有實(shí)際作用;對(duì)單元測(cè)試的不理解,根據(jù)代碼編寫(xiě)用例的工作方式,從態(tài)度上滋生的抵觸情緒,認(rèn)為單元測(cè)試和單元測(cè)試工具是增加工作負(fù)擔(dān)的形式主義;由于在設(shè)計(jì)時(shí)沒(méi)有考慮測(cè)試的需要,測(cè)試人員也從未介入過(guò)設(shè)計(jì)工作,軟件的可測(cè)試性需求得不到體現(xiàn),甚至測(cè)試人員也認(rèn)為良好的測(cè)試就應(yīng)該是對(duì)開(kāi)發(fā)毫無(wú)影響的測(cè)試;被測(cè)試的軟件本身并不具備可測(cè)試性,使用多么昂貴的測(cè)試工具也很難發(fā)揮作用;對(duì)設(shè)計(jì)文檔的需求,包括需求文檔到詳細(xì)的軟件規(guī)格說(shuō)明的需求得不到滿足,開(kāi)發(fā)人員也往往是更具模糊的、口頭達(dá)成的設(shè)計(jì)開(kāi)始編碼;沒(méi)有組織級(jí)別的測(cè)試體系和度量標(biāo)準(zhǔn);測(cè)試行為和對(duì)工具的使用多出自于人為的自覺(jué);工具散落在組織各處,項(xiàng)目間測(cè)試經(jīng)驗(yàn)、甚至測(cè)試工具使用經(jīng)驗(yàn)都得不到整理和傳承;在組織內(nèi),沒(méi)有人負(fù)責(zé)測(cè)試流程和測(cè)試工具支持的工作。
{{分頁(yè)}}
在這一過(guò)程中,我們建議在于,建立基于組織的開(kāi)發(fā)測(cè)試體系和輔助工具管理方式,制度化并通過(guò)使用工具幫助在組織中貫徹實(shí)施;大家可以參考rational的RUP統(tǒng)一過(guò)程的最佳實(shí)踐,和Rational Method Composer定制和部署適合自己的工具;使用各類管理工具,對(duì)軟件開(kāi)發(fā)過(guò)程的基礎(chǔ)管理實(shí)現(xiàn)盡可能高的自動(dòng)化,使用IBM Rational ProjectConsole,將基礎(chǔ)項(xiàng)目數(shù)據(jù)形象的展現(xiàn)管理者;重視軟件測(cè)試團(tuán)隊(duì)的作用,在系統(tǒng)設(shè)計(jì)時(shí),要理解和鼓勵(lì)測(cè)試人員參與到早期設(shè)計(jì)的需要;測(cè)試人員積極介入系統(tǒng)的設(shè)計(jì),提高對(duì)系統(tǒng)的把握能力,在系統(tǒng)設(shè)計(jì)時(shí)期,加入系統(tǒng)可測(cè)試性的屬性,驗(yàn)證系統(tǒng)測(cè)試方法。
6.4. 完善的質(zhì)量保證的活動(dòng)
在這樣的嵌入式系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)中,作為一個(gè)單獨(dú)的活動(dòng),建立的獨(dú)立的V&V(驗(yàn)證和確認(rèn))的流程,通過(guò)驗(yàn)證評(píng)估各個(gè)開(kāi)發(fā)階段產(chǎn)出的工件的質(zhì)量,包括各種形式的設(shè)計(jì)文檔和工件,通過(guò)確認(rèn),評(píng)價(jià)各個(gè)開(kāi)發(fā)階段于對(duì)本階段需求的符合程度,建立的對(duì)開(kāi)發(fā)各個(gè)階段完善的評(píng)估和反饋體制。
在這一過(guò)程中,我們建議在于,我們鼓勵(lì)組織成員,將軟件質(zhì)量不要僅僅限于測(cè)試團(tuán)隊(duì)或僅僅某些過(guò)程,我們要力求引到組織邁向全過(guò)程質(zhì)量管理之路;,檢測(cè)僅僅是項(xiàng)目質(zhì)量狀態(tài)的審查和反饋的過(guò)程;我們可以將視野放在RUP的整個(gè)九個(gè)工作流程,從中提取我們可以采納的提高質(zhì)量的工作方法,和基于每個(gè)角色和每個(gè)任務(wù)的檢查方式;加強(qiáng)系統(tǒng)的架構(gòu)設(shè)計(jì),建立高質(zhì)量、易于維護(hù)、易于改進(jìn)的體系架構(gòu);考慮采用迭代的設(shè)計(jì)方法,將強(qiáng)調(diào)早期文檔的驗(yàn)證工作,轉(zhuǎn)向到更強(qiáng)調(diào)對(duì)每個(gè)迭代結(jié)束以后的可執(zhí)行系統(tǒng)的驗(yàn)證。
6.5. 基于組織的高質(zhì)量的過(guò)程
在這樣的嵌入式系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)中,開(kāi)發(fā)機(jī)構(gòu)建立了完善的開(kāi)發(fā)流程和各個(gè)階段的管理手段。建立了基于軟件開(kāi)發(fā)全過(guò)程檢測(cè),力爭(zhēng)在開(kāi)發(fā)過(guò)程本階段修正錯(cuò)誤能力。組織對(duì)于質(zhì)量的理解,已經(jīng)從減少軟件運(yùn)行錯(cuò)誤、加強(qiáng)軟件測(cè)試、避免軟件缺陷的一般性層面,發(fā)展到對(duì)整個(gè)軟件開(kāi)發(fā)生命周期的全過(guò)程質(zhì)量管理;這樣組織中的質(zhì)量管理部門(mén),主要負(fù)責(zé)開(kāi)發(fā)流程的執(zhí)行,并專門(mén)負(fù)責(zé)制定產(chǎn)品開(kāi)發(fā)流程,他針對(duì)整個(gè)軟件開(kāi)發(fā)流程,關(guān)心的是怎樣在軟件開(kāi)發(fā)生命周期中來(lái)保證好軟件的質(zhì)量。
在這一過(guò)程中,我們可以相互學(xué)習(xí),來(lái)追逐軟件開(kāi)發(fā)過(guò)程管理的更高目標(biāo),從在開(kāi)發(fā)過(guò)程中盡早發(fā)現(xiàn)與修正錯(cuò)誤,進(jìn)展到盡量預(yù)防錯(cuò)誤的出現(xiàn)。通過(guò)對(duì)錯(cuò)誤的分析,完善各階段的檢測(cè)手段,做到在本開(kāi)發(fā)階段發(fā)現(xiàn)及修正錯(cuò)誤。這是軟件過(guò)程改進(jìn)的一項(xiàng)重要內(nèi)容,是開(kāi)發(fā)機(jī)構(gòu)可以預(yù)期有一個(gè)高質(zhì)量的產(chǎn)品及一個(gè)低成本、高效率的軟件過(guò)程的重要標(biāo)志。
6.6. 迭代開(kāi)發(fā)持續(xù)測(cè)試保證軟件質(zhì)量
迭代式軟件開(kāi)發(fā),能夠有效控制項(xiàng)目風(fēng)險(xiǎn)、增加對(duì)項(xiàng)目控制能力、減少需求變更對(duì)項(xiàng)目的影響,實(shí)現(xiàn)持續(xù)的質(zhì)量驗(yàn)證,實(shí)現(xiàn)測(cè)試技術(shù)的早期驗(yàn)證,提高軟件的可測(cè)試性;保證持續(xù)地質(zhì)量保證的實(shí)現(xiàn)。主要說(shuō)明,所有的開(kāi)發(fā)活動(dòng)和工件都需要通過(guò)持續(xù)的測(cè)試和復(fù)審來(lái)檢查質(zhì)量。這意味著測(cè)試不僅僅是軟件構(gòu)建之后的一個(gè)階段。測(cè)試是在整個(gè)迭代開(kāi)發(fā)周期中執(zhí)行的,每次都有一個(gè)不同的目標(biāo),依照RUP這是大家都知道的一個(gè)任務(wù)。例如,測(cè)試在精化階段,可以集中在確認(rèn)構(gòu)架上,而在構(gòu)建階段中,測(cè)試可以集中在查找最重要的軟件缺陷上。
6.7. 質(zhì)量是一種文化
在這樣的組織中,我們專注于我們的客戶和客戶的客戶的價(jià)值,并以此為產(chǎn)品質(zhì)量的最終衡量標(biāo)準(zhǔn),了解軟件交付的質(zhì)量,不僅僅是軟件會(huì)出多少個(gè)故障,這很重要,但不只是這些,更多的要幫助我們的用戶了解最終客戶業(yè)務(wù)的價(jià)值。
質(zhì)量改進(jìn)本質(zhì)上是一種思維習(xí)慣問(wèn)題。
七. 從上至下驅(qū)動(dòng)質(zhì)量
續(xù)保證質(zhì)量要求管理和工作的付出,這些需要從領(lǐng)導(dǎo)高層至下驅(qū)動(dòng)的,它要求領(lǐng)導(dǎo)和組織復(fù)雜事務(wù)的管理能力。質(zhì)量改進(jìn)本質(zhì)上是一種思維習(xí)慣問(wèn)題;當(dāng)來(lái)自上層的管理人員在整個(gè)組織慢慢灌輸質(zhì)量文化時(shí),質(zhì)量就會(huì)滲透到每個(gè)項(xiàng)目中。
在這樣一種文化中,工作會(huì)給管理人員提供極大的好處。他們不再必須考慮帶有已知或未知缺陷而發(fā)貨的產(chǎn)品運(yùn)行可能的后果,。并且促使產(chǎn)生質(zhì)量的嚴(yán)格過(guò)程、團(tuán)隊(duì)責(zé)任心和目標(biāo)矩陣也創(chuàng)建了項(xiàng)目進(jìn)度和質(zhì)量的可預(yù)言性。與那些不斷地重新確定項(xiàng)目范圍,并且仍然錯(cuò)過(guò)期限的團(tuán)隊(duì)不同,高質(zhì)量的團(tuán)隊(duì)可以精確地確定范圍、估算和確定時(shí)間,并且順利地在計(jì)劃的經(jīng)費(fèi)和工期內(nèi)交付。這樣的開(kāi)發(fā)體系,可以有助于你的產(chǎn)品的質(zhì)量水平和產(chǎn)品功能有別于你的競(jìng)爭(zhēng)對(duì)手。
八. 獲得軟件高質(zhì)量的高收益
最重要的是,全過(guò)程的質(zhì)量保證體系總是會(huì)比忽略考慮質(zhì)量成本要低。事實(shí)上,提高產(chǎn)品質(zhì)量基本上沒(méi)有成本,如果你正確地做的話。
在國(guó)際上,隨著軟件質(zhì)量保證理論及應(yīng)用研究工作的不斷深入,針對(duì)軟件質(zhì)量保證工作的工作重點(diǎn)也經(jīng)歷了如下發(fā)展歷程:
1. 70年代以前,Ad-hoc testing,與調(diào)試沒(méi)有區(qū)分;
2. 70年代末到80年代中期,測(cè)試基礎(chǔ)理論和實(shí)用技術(shù)形成,軟件測(cè)試作為軟件質(zhì)量保證(SQA)的主要手段和職能;
3. 80年代末到90年代中期,測(cè)試工具在質(zhì)量和數(shù)量上不斷增長(zhǎng),測(cè)試與SQA(注重于過(guò)程和質(zhì)量監(jiān)督)分離。注重于工具對(duì)測(cè)試效率的影響;SQA為另一專業(yè)領(lǐng)域。
4. 90年后期到目前,重新關(guān)注有效的過(guò)程管理對(duì)于軟件測(cè)試的重要性,將軟件工程視為軟件測(cè)試的基礎(chǔ),或形成各種獨(dú)立的測(cè)試模型、測(cè)試能力成熟度模型。
我們現(xiàn)在哪里呢?
高品質(zhì)軟件,需要完整的軟件開(kāi)發(fā)過(guò)程和整合的軟件開(kāi)發(fā)平臺(tái)來(lái)共同鑄就。IBM Rational軟件開(kāi)發(fā)平臺(tái),就是以各種國(guó)際標(biāo)準(zhǔn)和開(kāi)放平臺(tái)為基礎(chǔ),為嵌入式系統(tǒng)軟件產(chǎn)品的開(kāi)發(fā)和生產(chǎn)過(guò)程提供了前所未有的開(kāi)發(fā)速度和質(zhì)量保證。
本文的很多思想都來(lái)源于IBM developerWorks Web上的文章,對(duì)細(xì)節(jié)有興趣的開(kāi)發(fā)人員可以在此網(wǎng)站上瀏覽更多相關(guān)文章。IBM也提供了許多服務(wù),幫助開(kāi)發(fā)團(tuán)隊(duì)交付高質(zhì)量軟件。開(kāi)發(fā)人員可以參加面對(duì)面和基于Web的培訓(xùn)課程,這些課程都通過(guò)IBM developerWorks Web門(mén)戶,集中在工具使用和技巧改進(jìn)上,并且專業(yè)服務(wù)咨詢可以與開(kāi)發(fā)團(tuán)隊(duì)一起創(chuàng)建定制質(zhì)量實(shí)施計(jì)劃,生成初始的項(xiàng)目評(píng)估、安裝、指導(dǎo)、培訓(xùn)和維護(hù)。
評(píng)論