。保
隨著軟件技術(shù)的迅猛發(fā)展,軟件的質(zhì)量愈來愈受到廣泛的重視。而測(cè)試又是保證軟件質(zhì)量的重要手段。根據(jù)IEEE/ANSI標(biāo)準(zhǔn),軟件測(cè)試的定義是:"使用為發(fā)現(xiàn)錯(cuò)誤所選擇的輸入和狀態(tài)的組合而執(zhí)行代碼的過程"。這非常明確地提出了軟件測(cè)試是以發(fā)現(xiàn)錯(cuò)誤,檢驗(yàn)是否滿足需求為目標(biāo)。軟件測(cè)試在軟件生命周期中占有非常突出的重要地位,是保證軟件質(zhì)量的重要手段。根據(jù)Boehm的統(tǒng)計(jì),軟件開發(fā)總成本中,用在測(cè)試上的開銷要占40%到50%。軟件測(cè)試的目的是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,以提高軟件的質(zhì)量,F(xiàn)代的軟件測(cè)試不僅僅是在軟件開發(fā)完成以后來做測(cè)試工作,而是將測(cè)試滲入到軟件開發(fā)的各個(gè)階段,而且提高自動(dòng)化軟件測(cè)試手段,來提高測(cè)試效率。
有些項(xiàng)目的主持人,認(rèn)為以盡快的速度把測(cè)試之前的所有開發(fā)階段完成(實(shí)際并沒有完成),早日開始測(cè)試,以圖達(dá)到快速和高質(zhì)量(因?yàn)樗坪跤懈L(zhǎng)的時(shí)間可用于測(cè)試)。實(shí)際的效果將會(huì)是俗語所說的"欲速則不達(dá)"。從常識(shí)可以知道,花開發(fā)時(shí)間去繼續(xù)擴(kuò)大發(fā)展前面階段引入的錯(cuò)誤,得出的只能是更大量的需要耗時(shí)修正的錯(cuò)誤。因此,正確分析與利用測(cè)試的結(jié)果,我們可以非常有效地進(jìn)行軟件過程改進(jìn)。
2.完善測(cè)試過程策略
2.1 雙效合一,不斷進(jìn)步
公司的管理層和質(zhì)量控制小組通常進(jìn)行軟件過程的改善,并編寫出了一系列的企業(yè)的標(biāo)準(zhǔn)與規(guī)范,經(jīng)過一系列的評(píng)審、培訓(xùn),然后讓開發(fā)人員去執(zhí)行。但是在執(zhí)行過程中常常碰到阻力,多數(shù)是來自于開發(fā)人員,除了緊張的開發(fā)工作,他們往往會(huì)抱怨又多出許多其它工作,比如按照一定的規(guī)范的文檔的撰寫;制定的企業(yè)開發(fā)規(guī)范不符合企業(yè)的實(shí)際情況,標(biāo)準(zhǔn)太高,無法達(dá)到。這一種做法,費(fèi)時(shí)費(fèi)力不討好,大家的意見都比較大,規(guī)范定的比較完美,而且在評(píng)審時(shí)還要大家表面上都要認(rèn)可,制定規(guī)范的人花費(fèi)了很大的精力,對(duì)規(guī)范的評(píng)審浪費(fèi)了大家的很多的時(shí)間,執(zhí)行時(shí)還難以貫徹下去。這種方式肯定收效甚微。這是一種效率比較低的做法。
通常,還會(huì)有另外一種做法:降低要求,暫時(shí)拋棄各種標(biāo)準(zhǔn)與規(guī)范,采用一種簡(jiǎn)單易行的策略,即由質(zhì)量控制小組找開發(fā)人員、項(xiàng)目經(jīng)理讓他們自我發(fā)現(xiàn)問題:你有什么缺點(diǎn)?你將如何改進(jìn)?在開發(fā)人員、項(xiàng)目管理人員講自己的改進(jìn)措施后,讓他們確保能做到。在這種辦法中,不需要管理人員花費(fèi)太多的精力進(jìn)行標(biāo)準(zhǔn)的制定,改進(jìn)的推動(dòng),這些工作都是由開發(fā)人員自己去做的,管理人員僅僅是起到了監(jiān)督的作用,只要開發(fā)人員自己說到做到可以了。但是,我們做了一個(gè)嘗試,如果僅僅從開發(fā)人員的角度出發(fā)制定標(biāo)準(zhǔn),每個(gè)人的習(xí)慣不同,開發(fā)人員往往傾向于按照平日自己的編程習(xí)慣制定符合自己需要的規(guī)范,這樣做的隨意性比較大,難以形成統(tǒng)一的、正規(guī)的文檔體系結(jié)構(gòu)。而且,開發(fā)人員往往利用這一點(diǎn),給自己留有充分的彈性。往往自己制定的規(guī)范都有自己不同的解決辦法,這樣會(huì)造成編程風(fēng)格的不統(tǒng)一。既然是規(guī)范,總得有一定的強(qiáng)制性,而如果單單從下而上,放權(quán)給開發(fā)人員,實(shí)施的過程中可能會(huì)發(fā)生更大的問題。
綜上所述,我們采取了一個(gè)折中的辦法,即,根據(jù)開發(fā)人員的要求,先擬訂一份開發(fā)規(guī)范,然后提交給開發(fā)人員或者項(xiàng)目管理人員評(píng)審。允許他們提出自己的意見,如果意見合理,可以對(duì)規(guī)范實(shí)施修改。舉例來說,假設(shè)公司原來的文檔體系中本身有一套編程規(guī)范,但是在實(shí)際開發(fā)的時(shí)候,其中的某些規(guī)則不是很實(shí)用,所以,公司根據(jù)每個(gè)項(xiàng)目組所使用的開發(fā)工具和語言的不同,制定不同的編程標(biāo)準(zhǔn),而這些編程標(biāo)準(zhǔn)的修改意見,基本上來自于開發(fā)人員,但是是經(jīng)過公司的管理人員和質(zhì)量控制部審核過的。
這種做法的好處是可以主動(dòng)提高公司全體員工的質(zhì)量意識(shí)。對(duì)于高層管理人員而言,所有的規(guī)范都是經(jīng)過他們審核批準(zhǔn)的,他們起到監(jiān)督作用;對(duì)于開發(fā)人員而言,很多規(guī)則是他們提出的,他們會(huì)自覺遵守。這樣雙管齊下,雙效合一,不僅會(huì)大大提高軟件的質(zhì)量,而且不用將發(fā)現(xiàn)錯(cuò)誤的責(zé)任全部推給測(cè)試人員,而是提前預(yù)防錯(cuò)誤、減少潛在危險(xiǎn)的發(fā)生、減輕測(cè)試人員負(fù)擔(dān)、培養(yǎng)開發(fā)人員良好的編程習(xí)慣。
2.2 重視文檔,需要技巧
軟件文檔也稱文件,通常指的是一些記錄的數(shù)據(jù)和數(shù)據(jù)媒體,它具有固定不變的形式,可被人和計(jì)算機(jī)閱讀。它和計(jì)算機(jī)程序共同構(gòu)成了能完成特定功能的計(jì)算機(jī)軟件(有人把源程序也當(dāng)作文檔的一部分)。硬件產(chǎn)品和產(chǎn)品資料在整個(gè)生產(chǎn)過程中都是有形可見的,軟件生產(chǎn)則有很大不同,文檔本身是軟件產(chǎn)品。沒有文檔的軟件,不稱其為軟件,更談不上軟件產(chǎn)品。軟件文檔的編制在軟件開發(fā)工作中占有突出的地位和相當(dāng)?shù)墓ぷ髁。高效率、高質(zhì)量地開發(fā)、分發(fā)、管理和維護(hù)文檔對(duì)于轉(zhuǎn)讓、變更、修正、擴(kuò)充和使用文檔,對(duì)于充分發(fā)揮軟件產(chǎn)品的效益有著重要的意義。
然而,在實(shí)際工作中,文檔在編制和使用中存在著許多問題,有待于解決。軟件開發(fā)人員中較普遍地存在著對(duì)編制文檔不感興趣的現(xiàn)象。從用戶方面看,他們又常常抱怨:文檔售價(jià)太高、文檔不夠完整、文檔編寫的不好、文檔已經(jīng)陳舊難于使用等等。
眾所周知,文檔的編寫對(duì)于開發(fā)人員來說是一個(gè)十分頭疼的任務(wù),本來開發(fā)周期很緊,還要按照要求的格式撰寫文檔。所以,這樣結(jié)果往往是文檔不全,或者文檔過于簡(jiǎn)單致使測(cè)試人員看不懂。甚至于,有時(shí)候項(xiàng)目需求早更新了,而文檔的內(nèi)容依然不變。
換個(gè)角度想想看,如果文檔不全,測(cè)試人員遇到不理解的地方肯定會(huì)去問相應(yīng)的開發(fā)人員,那么開發(fā)人員肯定要花費(fèi)時(shí)間做解釋。如果測(cè)試人員和開發(fā)人員處在不同的工作地,這將造成十分的不便。
在軟件開發(fā)過程中,文檔十分重要,書寫文檔工作量也是相當(dāng)大的。但是,只要掌握住技巧,還是可以緩解這令人頭疼的問題的。首先,要站在別人的角度上看待這個(gè)問題。自己是做開發(fā)當(dāng)然必須十分清楚程序的流程及功能,但是其他人不一定,包括測(cè)試人員。所以,不要排斥寫文檔,先要換個(gè)角度想問題。再次,闡述基本功能,要做到重點(diǎn)突出。是說,用簡(jiǎn)單的語言把功能簡(jiǎn)要介紹。對(duì)于其中的重點(diǎn)部分,要突出,要詳細(xì)。不是說語言上要十分詳細(xì),而是理解的角度要詳細(xì)。為了讓測(cè)試人員快速理解模塊的功能,好的辦法是:功能流程圖、數(shù)據(jù)流程圖和例子。尤其是對(duì)于那些有相當(dāng)強(qiáng)邏輯的程序而言,數(shù)據(jù)流程圖和例子是非常好的方法,它不僅可以幫助指明數(shù)據(jù)的流向,還可以幫助測(cè)試人員理解測(cè)試用例的類型,以及結(jié)果形式。制作簡(jiǎn)明扼要的流程圖和例子對(duì)開發(fā)人員而言是一項(xiàng)理清思路、省時(shí)省力的工作。而對(duì)于測(cè)試人員而言則是一份理解程序邏輯和功能的重要文檔。在開發(fā)過程的后期,可以繼續(xù)細(xì)化和完善文檔。