版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
從網(wǎng)上收藏,已不知道具體作者。如何提高軟件質(zhì)量【摘要】軟件質(zhì)量是軟件產(chǎn)品的靈魂。本文全面介紹了質(zhì)量的概念,提出了從流程、技術(shù)、組織管理、人員技能發(fā)展等多個(gè)角度提高軟件質(zhì)量的重要性;并對(duì)目前國際上流行的CMM標(biāo)準(zhǔn)進(jìn)行了介紹,提出了使用PSP和TSP來實(shí)現(xiàn)CMM的方法。本文最后還給出了中小型軟件公司在提高軟件質(zhì)量方面的一個(gè)初步思路?!娟P(guān)鍵字】質(zhì)量管理,軟件開發(fā)過程模型,軟件分析和設(shè)計(jì)方法,軟件測(cè)試,CMM如何提高軟件的質(zhì)量已經(jīng)不是一個(gè)純粹的技術(shù)問題,而是一個(gè)工程的問題。自從計(jì)算機(jī)誕生以來,相應(yīng)的軟件開發(fā)就存在了。由于早期的計(jì)算機(jī)運(yùn)行性能較低,軟件的可編程范圍也較狹窄,因此質(zhì)量問題就沒有那么突出。50年代后期到60年代,高級(jí)語言的相繼誕生并得到了廣泛的應(yīng)用,隨之而來的是軟件規(guī)模也越來越龐大,越來越復(fù)雜。伴隨著軟件應(yīng)用的越來越廣泛,軟件的質(zhì)量問題就變得越來越突出。根據(jù)美國國家宇航局NASA的統(tǒng)計(jì),在80年代初,軟件引起的故障與硬件引起的故障,其比率約為1.1:1.0,到了80年代末,這一比率已達(dá)到2.5:1.0。因此如何提高軟件的質(zhì)量成為軟件工程研究的一個(gè)重點(diǎn)。自從軟件危機(jī)產(chǎn)生以來,出現(xiàn)了很多提高產(chǎn)品質(zhì)量的理論和方法,有的從技術(shù)角度出發(fā),例如:面向?qū)ο蠹夹g(shù)的產(chǎn)生和推廣,第四代語言的誕生等等;有的從自動(dòng)化工具入手,例如:CASE工具、過程控制軟件、自動(dòng)化管理平臺(tái)等;有的從過程模型角度出發(fā),例如:迭代模型、螺旋模型、RUP、IPD、凈室軟件工程等;也有從管理角度出發(fā)的,例如:團(tuán)隊(duì)管理、績效管理、PSP、TSP等;也有從測(cè)試角度出發(fā)的,例如:加強(qiáng)全流程的測(cè)試等;一些相應(yīng)的規(guī)范和標(biāo)準(zhǔn)也孕育而生,例如:ISO9000系列、CMM、QMS等。然而每一種技術(shù)都不是絕對(duì)的,軟件質(zhì)量的提高應(yīng)該是一個(gè)綜合的因素,需要從每個(gè)方面進(jìn)行改進(jìn),同時(shí)還需要兼顧成本和進(jìn)度。一、什么是質(zhì)量?作為軟件產(chǎn)品的銷售人員,市場人員或維護(hù)人員經(jīng)常會(huì)受到客戶這樣那樣的指責(zé)或抱怨,客戶說:你們產(chǎn)品的質(zhì)量太差,不穩(wěn)定等等。那么什么是質(zhì)量呢?我們?cè)撊绾蝸砗饬抠|(zhì)量呢?質(zhì)量具有三個(gè)維度:?符合目標(biāo)。目標(biāo)是客戶所定義的,符合目標(biāo)即判斷我們是不是在做需要做的事情。?符合需求。即產(chǎn)品是不是在做讓它做的事情。?符合實(shí)際需求。實(shí)際的需求包括用戶明確說明的和隱含的需求。ISO關(guān)于質(zhì)量的定義表示如下:“一個(gè)實(shí)體(產(chǎn)品或服務(wù))的所有特性,基于這些特性可以滿足明顯的或隱含的需要?!弊⒁猓谶@個(gè)定義中包含明顯的需求和隱含的需求。而往往我們會(huì)忽略隱含的需求。因此在控制一個(gè)產(chǎn)品的質(zhì)量的過程中必須關(guān)注這些隱含的需求,并給予應(yīng)有的驗(yàn)證。另一方面因?yàn)槲覀兊漠a(chǎn)品是為客戶提供服務(wù)的,因此凡是不滿足客戶需求的,我們都認(rèn)為是一個(gè)失效(failure)。所以我們的產(chǎn)品必須始終圍繞著客戶的需求進(jìn)行開發(fā)和驗(yàn)證。這里我們談到客戶,其實(shí)在一個(gè)軟件的需求收集過程中需要關(guān)注客戶和用戶。而我們經(jīng)常會(huì)忽略客戶與用戶之間的區(qū)別。那么誰是客戶?誰是用戶呢?簡單的來說,客戶是真正能夠決定是否購買你軟件的人,而用戶是實(shí)際使用軟件的人。了解了這個(gè)區(qū)別,對(duì)于你在分析需求的重要性的時(shí)候就可以進(jìn)行參考。同時(shí)在產(chǎn)品質(zhì)量驗(yàn)證的時(shí)候也可以做出不同的權(quán)衡。另一方面我們?cè)诳紤]我們用戶需求的時(shí)候,往往只考慮了實(shí)際使用軟件的人員,而忽略了其它一些人員對(duì)軟件的要求或?qū)浖斐傻臐撛诟偁?,這包括維護(hù)人員的要求、系統(tǒng)管理人員的要求、軟件上下游人員的要求、先前版本的情況、市場上競爭對(duì)手的軟件情況等。每個(gè)人提到質(zhì)量的時(shí)候,經(jīng)常會(huì)遇到下列矛盾,在這些矛盾中隱含著對(duì)質(zhì)量的承諾【5】:?質(zhì)量需要一個(gè)承諾,尤其是高層管理者的承諾。但為了得到質(zhì)量,高層管理者必須和其雇用的員工進(jìn)行緊密合作;?許多人相信沒有缺陷的產(chǎn)品和服務(wù)是不可能的。但是控制在一定級(jí)別的缺陷數(shù)是正常并可接受的;?質(zhì)量經(jīng)常是和成本緊密聯(lián)系在一起,一個(gè)高質(zhì)量的產(chǎn)品同時(shí)也意味著高投入。這是設(shè)計(jì)的質(zhì)量和一致性質(zhì)量的一個(gè)矛盾;?一個(gè)高的質(zhì)量要求需求規(guī)格說明書足夠詳細(xì),以便產(chǎn)品可以根據(jù)這些規(guī)格說明書進(jìn)行定量的分析。然而許多組織沒有能力或者不愿意產(chǎn)生如此詳細(xì)程度的規(guī)格說明書;?技術(shù)人員經(jīng)常相信規(guī)范和標(biāo)準(zhǔn)會(huì)束縛他們的創(chuàng)造力,因此就不遵照標(biāo)準(zhǔn)做事。然而如果要得到高質(zhì)量的產(chǎn)品,就必須遵循良好定義的標(biāo)準(zhǔn)和過程。二、流程對(duì)質(zhì)量的貢獻(xiàn)好了,既然已經(jīng)了解了什么是質(zhì)量,那么怎么才能改進(jìn)軟件產(chǎn)品的質(zhì)量呢?從一個(gè)企業(yè)的長遠(yuǎn)發(fā)展來看,首先應(yīng)當(dāng)從流程抓起,規(guī)范軟件產(chǎn)品的開發(fā)過程。這是一個(gè)軟件企業(yè)從小作坊的生產(chǎn)方式向集成化、規(guī)范化的大公司邁進(jìn)的必經(jīng)之路,也是從根本上解決質(zhì)量問題,提高工作效率的一個(gè)關(guān)鍵手段。軟件產(chǎn)品的開發(fā)同其它產(chǎn)品(如汽車)的生產(chǎn)有著共同特性,即需要按一定的過程來進(jìn)行生產(chǎn)。在工業(yè)界,流水線生產(chǎn)方式被證明是一種高效且能夠比較穩(wěn)定地保證產(chǎn)品質(zhì)量的一種方式。通過這種方式,不同的人員被安排在流程的不同位置,最終為著一個(gè)目標(biāo)共同努力,這樣可以防止人員工作間的內(nèi)耗,極大的提高工作效率。并且由于其過程來源于成功的實(shí)例,因此其最終的產(chǎn)品質(zhì)量能夠滿足過程所設(shè)定的范圍要求。軟件工程在軟件的發(fā)展過程中吸取了這個(gè)經(jīng)驗(yàn)并把它應(yīng)用到了軟件開發(fā)中,這就形成了軟件工程過程,簡單的說就是開發(fā)流程。無論做什么事情,都有一個(gè)循序漸進(jìn)的過程,從計(jì)劃到策略再到實(shí)現(xiàn)。軟件流程就是按照這種思維來定義開發(fā)過程,它根據(jù)不同的產(chǎn)品特點(diǎn)和以往的成功經(jīng)驗(yàn),定義了從需求到最終產(chǎn)品交付的一整套流程。流程告訴我們?cè)撛趺匆徊揭徊饺?shí)現(xiàn)產(chǎn)品,可能會(huì)有那些風(fēng)險(xiǎn),如何去避免風(fēng)險(xiǎn)等等。由于流程來源于成功的經(jīng)驗(yàn),因此,按照流程進(jìn)行開發(fā)可以使得我們少走彎路,并有效的提高產(chǎn)品質(zhì)量,提高用戶的滿意度。目前流行的流程方法有很多種,不同的過程模型適合于不同類型的項(xiàng)目。瀑布模型是應(yīng)用的最為廣泛的一種模型,也是最容易理解和掌握的模型,然而它的缺陷也是顯而易見的。遺漏的需求或者不斷變更的需求會(huì)使得該模型無所適從。然而,對(duì)于那些容易理解但很復(fù)雜的項(xiàng)目,采用瀑布模型會(huì)是比較適合的,因?yàn)槟憧梢园床烤桶嗟娜ヌ幚韽?fù)雜的問題。在質(zhì)量要求高于成本和進(jìn)度要求的時(shí)候,該模型表現(xiàn)的尤其突出。螺旋模型是也是一個(gè)經(jīng)典模型,它關(guān)注于發(fā)現(xiàn)和降低項(xiàng)目的風(fēng)險(xiǎn)【8】。螺旋型項(xiàng)目從小的規(guī)模開始,然后探測(cè)風(fēng)險(xiǎn),制定風(fēng)險(xiǎn)控制計(jì)劃,接著確定下一步項(xiàng)目是否還要繼續(xù),然后進(jìn)行下一個(gè)螺旋的反復(fù)。該模型的最大優(yōu)點(diǎn)就是隨著成本的增加,風(fēng)險(xiǎn)程度隨之降低。然而螺旋模型的缺點(diǎn)是比較復(fù)雜,且需要管理人員有責(zé)任心,專注以及有管理方面經(jīng)驗(yàn)。RUP(RationalUnifiedProcess)是Rational公司提出的一套開發(fā)過程模型,它是一個(gè)面向?qū)ο筌浖こ痰耐ㄓ脴I(yè)務(wù)流程【9】。它描述了一系列相關(guān)的軟件工程流程,它們具有相同的結(jié)構(gòu),即相同的流程構(gòu)架。RUP為在開發(fā)組織中分配任務(wù)和職責(zé)提供了一種規(guī)范方法,其目標(biāo)是確保在可預(yù)計(jì)的時(shí)間安排和預(yù)算內(nèi)開發(fā)出滿足最終用戶需求的高品質(zhì)的軟件。RUP具有兩個(gè)軸,一個(gè)是時(shí)間軸,這是動(dòng)態(tài)的。另一個(gè)是工作流軸,這是靜態(tài)的。在時(shí)間軸上,RUP劃分了四個(gè)階段:初始階段、細(xì)化階段、構(gòu)造階段和發(fā)布階段。每個(gè)階段都使用了迭代的概念。在工作流軸上,RUP設(shè)計(jì)了六個(gè)核心工作流程和三個(gè)核心支撐工作流程,核心工作流軸包括:業(yè)務(wù)建模工作流、需求工作流、分析設(shè)計(jì)工作流、實(shí)現(xiàn)工作流、測(cè)試工作流和發(fā)布工作流。核心支撐工作流包括:環(huán)境工作流、項(xiàng)目管理工作流和配置與變更管理工作流。具體可以參考圖1。RUP匯集現(xiàn)代軟件開發(fā)中多方面的最佳經(jīng)驗(yàn),并為適應(yīng)各種項(xiàng)目及組織的需要提供了靈活的形式。作為一個(gè)商業(yè)模型,它具有非常詳細(xì)的過程指導(dǎo)和模板。但是同樣由于該模型比較復(fù)雜,因此在模型的掌握上需要花費(fèi)比較大的成本。尤其對(duì)項(xiàng)目管理者提出了比較高的要求。圖1RUP工作流程示意圖IPD(IntegratedProductDevelopment)流程是由IBM提出來的一套集成產(chǎn)品開發(fā)流程,非常適合于復(fù)雜的大型開發(fā)項(xiàng)目,尤其涉及到軟硬件結(jié)合的項(xiàng)目。IPD從整個(gè)產(chǎn)品角度出發(fā),流程綜合考慮了從系統(tǒng)工程、研發(fā)(硬件、軟件、結(jié)構(gòu)工業(yè)設(shè)計(jì)、測(cè)試、資料開發(fā)等)、制造、財(cái)務(wù)到市場、采購、技術(shù)支援等所有流程。是一個(gè)端到端的流程。在IPD流程中總共劃分了六個(gè)階段(概念階段、計(jì)劃階段、開發(fā)階段、驗(yàn)證階段、發(fā)布階段和生命周期階段),四個(gè)個(gè)決策評(píng)審點(diǎn)(概念階段決策評(píng)審點(diǎn)、計(jì)劃階段決策評(píng)審點(diǎn)、可獲得性決策評(píng)審點(diǎn)和生命周期終止決策評(píng)審點(diǎn))以及六個(gè)技術(shù)評(píng)審點(diǎn),具體可以參考圖2。IPD流程是一個(gè)階段性模型,具有瀑布模型的影子。該模型通過使用全面而又復(fù)雜的流程來把一個(gè)龐大而又復(fù)雜的系統(tǒng)進(jìn)行分解并降低風(fēng)險(xiǎn)。一定程度上,該模型是通過流程成本來提高整個(gè)產(chǎn)品的質(zhì)量并獲得市場的占有。由于該流程沒有定義如何進(jìn)行流程回退的機(jī)制,因此對(duì)于需求經(jīng)常變動(dòng)的項(xiàng)目該流程就顯得不大適合了。并且對(duì)于一些小的項(xiàng)目,也不是非常適合使用該流程。圖2IPD流程示意圖三、流程與技術(shù)流程和成功不是等價(jià)的。沒有流程就成功是不可能得到保證,但有了流程并不意味著肯定能夠成功。這恐怕是很多迷信于流程的人所不能接受的。但這的確是個(gè)事實(shí)。記得有個(gè)做了將近30多年的需求分析專家說過:即使是一個(gè)已經(jīng)達(dá)到CMM4級(jí)的公司,也完全有可能做不好需求分析。為什么?技術(shù),技術(shù)是成功的另外一個(gè)必要條件。就好比現(xiàn)在你要從上海到北京去,流程給你指出了最短的路徑,技術(shù)提供給你最快的交通工具。兩者結(jié)合就是完美。對(duì)于軟件開發(fā)來說,要保證軟件的質(zhì)量,需要掌握多方面的技術(shù),包括分析技術(shù)、設(shè)計(jì)技術(shù)、編碼技術(shù)和測(cè)試技術(shù)等等。在國內(nèi)有一個(gè)普遍的非正常現(xiàn)象,就是大家覺得只有編程能力才是玩電腦的真正技能。就好像造一套房子,其它都不重要,只要磚瓦匠有高超的技能就行了。盡管這個(gè)比喻會(huì)打擊很多程序員的自尊心,但這的確是一個(gè)事實(shí)。我們?nèi)鄙傧到y(tǒng)級(jí)的工程師,在分析和設(shè)計(jì)方面的工作做得很不扎實(shí)。需求是一個(gè)項(xiàng)目的靈魂。模棱兩可的需求帶來不可避免的后果便是返工——重做一些你認(rèn)為已做好的事情。返工會(huì)耗費(fèi)開發(fā)總費(fèi)用的40%,而70%?85%的重做是由于需求方面的錯(cuò)誤所導(dǎo)致的(leffingwell1997)【10】。想像一下如果你能減少一半的返工會(huì)是怎樣的情況?你能更快地開發(fā)出產(chǎn)品,在同樣的時(shí)間內(nèi)開發(fā)更多、更好的產(chǎn)品,甚至能偶爾回家休息休息。在《軟件需求》一書中關(guān)于如何進(jìn)行需求分析給出了比較詳細(xì)的介紹【7】,RUP中關(guān)于需求的指導(dǎo)也是很實(shí)用的。設(shè)計(jì)是最能體現(xiàn)一個(gè)工程師能力和水平的環(huán)節(jié)。一個(gè)好的設(shè)計(jì)基本上決定了產(chǎn)品的最終質(zhì)量。設(shè)計(jì)是把需求轉(zhuǎn)換成系統(tǒng)的一個(gè)關(guān)鍵步驟,它需要從自然語言描述的需求中尋找出設(shè)計(jì)的基礎(chǔ)單元,構(gòu)建出整個(gè)系統(tǒng)的構(gòu)架。在RUP中關(guān)于系統(tǒng)構(gòu)架師和設(shè)計(jì)師的定位是相當(dāng)高的。關(guān)于設(shè)計(jì)方面的技能涉及面是很廣的,包括傳統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)到面向?qū)ο笤O(shè)計(jì)。設(shè)計(jì)人員需要掌握一定的建模技術(shù)。UML是國際上比較流行的一種建模語言【11】。在嵌入式方面,SDL也是一種非常好的選擇。《設(shè)計(jì)模式》是在設(shè)計(jì)思想方面總結(jié)的非常出色的一本書【6】,作為一名設(shè)計(jì)人員(尤其是面向?qū)ο笤O(shè)計(jì)人員)必須要好好研究一下。但是對(duì)這些模式的應(yīng)用應(yīng)當(dāng)講究一種自然的應(yīng)用,千萬不要因?yàn)槟J蕉ピO(shè)計(jì)模式,否則會(huì)適得其反?,F(xiàn)在的程序員熱中于掌握多種編程語言,或者講究語言的過分技巧化,而往往忽略了編程語言的規(guī)范化。不規(guī)范的語言應(yīng)用給程序的可理解性、可維護(hù)性以及可測(cè)試性帶來了大的傷害,進(jìn)而損害了產(chǎn)品的質(zhì)量。某公司曾對(duì)中國程序員和印度程序員做過一個(gè)測(cè)驗(yàn),這個(gè)測(cè)驗(yàn)要求參加者對(duì)一組數(shù)進(jìn)行排序。測(cè)試結(jié)果發(fā)現(xiàn),印度程序員設(shè)計(jì)的程序使用的算法并不是最優(yōu),但卻是最不容易出錯(cuò)的,并且?guī)讉€(gè)程序員寫出來的代碼如出一轍。而幾個(gè)中國程序員寫出的代碼,有的非常漂亮,很精練,效率很高;有的卻很冗雜,還有錯(cuò)誤。如果大家是在做研究性的項(xiàng)目或純粹興趣性的項(xiàng)目,那么充分發(fā)揮自己的編程天才也無可厚非。然而,對(duì)于一個(gè)軟件公司,產(chǎn)品最終是要交給用戶的,需要遵循的是一個(gè)軟件產(chǎn)品的開發(fā)工程。因此這類軟件的開發(fā)需要遵循一定的編程規(guī)范,畢竟開發(fā)的軟件不是自己用,還需要和別人的集成,還需要給以后版本重用和維護(hù)。測(cè)試的技術(shù)將在第五節(jié)進(jìn)行闡述??傊鞒毯荜P(guān)鍵,技術(shù)也很重要,我的觀點(diǎn)是:魚和熊掌,兩者都不能放。四、全面質(zhì)量管理自從Deming的全面質(zhì)量管理(TQM)原則在日本工業(yè)界獲得了巨大成功之后,這個(gè)原則迅速被傳播到了世界各個(gè)地方,同樣,全面質(zhì)量管理原則也被應(yīng)用到了軟件開發(fā)當(dāng)中。如前面提到的,軟件開發(fā)也是一個(gè)工程性的工作,因此必須提高整個(gè)工程的質(zhì)量。產(chǎn)業(yè)界的大量研究(TRW、NipponElectric和MitreCorp.以及其它一些公司)表明設(shè)計(jì)活動(dòng)引入的錯(cuò)誤占軟件過程中出現(xiàn)所有錯(cuò)誤(和最終的缺陷)數(shù)量的50%到65%。根據(jù)IBM的研究表明,假定在分析階段發(fā)現(xiàn)的錯(cuò)誤其改正成本為1個(gè)單位的話,那么在測(cè)試之前(設(shè)計(jì)編碼階段)發(fā)現(xiàn)一個(gè)錯(cuò)誤的修改成本約為6.5個(gè)貨幣單位,在測(cè)試時(shí)(集成測(cè)試,系統(tǒng)測(cè)試和驗(yàn)收測(cè)試)發(fā)現(xiàn)一個(gè)錯(cuò)誤的修改成本約為15個(gè)貨幣單位,而在發(fā)布之后(已經(jīng)交到用戶手上)發(fā)現(xiàn)一個(gè)錯(cuò)誤的修改成本約為60到100個(gè)貨幣單位。同樣該比例也適用用于發(fā)現(xiàn)一個(gè)錯(cuò)誤需要的時(shí)間。我們可以看下面兩條曲線圖:
單後決陷發(fā)觀時(shí)間單後決庖爆改戰(zhàn)本分折階段說計(jì)階段舗碼階段測(cè)花階段發(fā)布階段圖3缺陷代價(jià)曲線為了提高產(chǎn)品質(zhì)量,縮短產(chǎn)品開發(fā)進(jìn)度,節(jié)約產(chǎn)品開發(fā)成本,必須盡早的進(jìn)行產(chǎn)品質(zhì)量控制。全面質(zhì)量控制要求在過程的每個(gè)階段每個(gè)步驟上都要進(jìn)行嚴(yán)格的驗(yàn)證和確認(rèn)活動(dòng)。什么是驗(yàn)證?驗(yàn)證就是要用數(shù)據(jù)證明我們是不是在正確的制造產(chǎn)品。注意這里強(qiáng)調(diào)的是過程的正確行【12】。什么是確認(rèn)?確認(rèn)就是要用數(shù)據(jù)證明我們是不是制造了正確的產(chǎn)品。注意這里強(qiáng)調(diào)的是結(jié)果的正確性。IEEE給出的驗(yàn)證和確認(rèn)過程可以用下圖來表示。驗(yàn)證和確認(rèn)是一個(gè)廣泛的概念感興趣的讀者可以參考IEEEStd1012-1998。,F(xiàn).gU1■:■干"細(xì)稱世實(shí)在八『「「?/r;Hn=?得□耳*護(hù)■用戶丈捺焉和球性仆折??■昇f;i氓Qi.k:甸-.-逸」-■■rl「叫v間円丿沖八r,F(xiàn).gU1■:■干"細(xì)稱世實(shí)在八『「「?/r;Hn=?得□耳*護(hù)■用戶丈捺焉和球性仆折??■昇f;i氓Qi.k:甸-.-逸」-■■rl「叫v間円丿沖八r1-sw母口■嘴□履比!t喘■用戶文相-sitPF*■■■謎m刊?匕:詢訊門伸陰??丄hW憚it澤世里斤-?A■i^Jt■SHD訊tr(W??□14:文巧-巧戸盤出僭碼列E■mit?“II.:"、i-Tr::r“i■fWlTHv:n<?Jii"51':、--m:||-.-.?.:{■*.£p.-'I-'-.T-■■mn珂遼£謁口軸MX?mrifit口UU科f:?^FIftfffWSVVPSV\Tt■ii;■1I'.?:<-.'片:”':述"4I..誦ft
"艸:丄■■iAitfttTg-*n-:■'?界*世古^V[;-W,-^|e--'Jh-N"ifh"■'濱:ft.■?a皿吊直尊硼即4T5VYF!T丹申*!rtr4la:ftMHJtffrR^Snil'?^i.-ij■■■u-“jMtmtriHiz^InT?'*初5押HP&ftttrtiV&WigS?tftsswf.甘理時(shí)*swrR_*Jtrr-#a#Kw4-it*tfj-ftfrwaTf.l^!圖4驗(yàn)證和確認(rèn)模型五、關(guān)注測(cè)試軟件測(cè)試是軟件質(zhì)量控制中的關(guān)鍵活動(dòng)。業(yè)界的統(tǒng)計(jì)數(shù)據(jù)表明,測(cè)試的成本大約占軟件開發(fā)總成本的50%左右。軟件測(cè)試的目的是要發(fā)現(xiàn)軟件中的錯(cuò)誤。一個(gè)好的測(cè)試是發(fā)現(xiàn)至今沒有被發(fā)現(xiàn)的錯(cuò)誤。傳統(tǒng)的軟件測(cè)試專注于動(dòng)態(tài)測(cè)試范疇,如:單元測(cè)試,集成測(cè)試和系統(tǒng)測(cè)試。而測(cè)試工程的發(fā)展已經(jīng)進(jìn)入到了全流程的測(cè)試,包括開發(fā)過程前期的靜態(tài)測(cè)試。一般我們可以把測(cè)試分為白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試:顧名思義,白盒測(cè)試應(yīng)當(dāng)是透明的。的確,該類測(cè)試是根據(jù)程序代碼的內(nèi)部邏輯結(jié)構(gòu)來設(shè)計(jì)測(cè)試用例進(jìn)行測(cè)試。那么什么是測(cè)試用例?一個(gè)測(cè)試用例就是一個(gè)文檔,描述輸入、動(dòng)作、或者時(shí)間和一個(gè)期望的結(jié)果,其目的是確定應(yīng)用程序的某個(gè)特性是否正常的工作。黑盒測(cè)試:看了白盒測(cè)試的解釋,我想你很快就能猜出黑盒測(cè)試是不考慮程序內(nèi)部結(jié)構(gòu)情況的。事實(shí)上也是這樣。黑盒測(cè)試是根據(jù)規(guī)格說明書進(jìn)行的測(cè)試。規(guī)格說明書記錄了用戶的需求。比如用戶希望在編輯器中增加查找功能,那么我們把該需求寫入規(guī)格說明書,根據(jù)該項(xiàng)要求,直接調(diào)用應(yīng)用程序的該項(xiàng)功能進(jìn)行測(cè)試,而不管其內(nèi)部是用什么算法實(shí)現(xiàn)的。白盒和黑盒這兩類測(cè)試是從完全不同的出發(fā)點(diǎn),并且是兩個(gè)完全對(duì)立點(diǎn),反映了事物的兩個(gè)極端,兩種方法各有側(cè)重,不能替代。但是在現(xiàn)代測(cè)試?yán)砟钪?,這兩種測(cè)試往往不是決然分開的,一般在白盒測(cè)試中交叉使用黑盒測(cè)試的方法,在黑盒測(cè)試中交叉使用白盒測(cè)試的方法。常見的白盒測(cè)試是單元測(cè)試。單元測(cè)試是測(cè)試中最小單位的測(cè)試。簡而言之,就是拿一個(gè)函數(shù)出來,加上驅(qū)動(dòng)模塊,樁模塊,讓它能夠運(yùn)行起來,然后設(shè)計(jì)一些用例測(cè)試其內(nèi)部的控制點(diǎn)(如:條件判斷點(diǎn),循環(huán)點(diǎn),選擇分支點(diǎn)等)。驅(qū)動(dòng)模塊是模擬調(diào)用被測(cè)函數(shù)的函數(shù)。樁函數(shù)是模擬當(dāng)前測(cè)試函數(shù)所調(diào)用的函數(shù)。常見的黑盒測(cè)試包括:集成測(cè)試,系統(tǒng)測(cè)試。集成測(cè)試是在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。系統(tǒng)測(cè)試的測(cè)試用例應(yīng)根據(jù)需求分析說明書來設(shè)計(jì),并在實(shí)際使用環(huán)境下來運(yùn)行。系統(tǒng)測(cè)試的內(nèi)容極其廣泛,包括功能測(cè)試、協(xié)議測(cè)試、性能測(cè)試、壓力測(cè)試、容量測(cè)試等等。有關(guān)測(cè)試方面的概念可以參考本人已出版的《軟件測(cè)試技術(shù)概論》。軟件測(cè)試是產(chǎn)品最終交付到用戶之前的最后一道防線,有著舉足輕重的地位。然而,做好軟件測(cè)試卻是不容易的,一方面你需要同時(shí)掌握軟件開發(fā)的技能和軟件測(cè)試方面的技能;另一方面產(chǎn)品必須給予測(cè)試充分的獨(dú)立性和資源保證。六、成功的鐵三角在一個(gè)軟件企業(yè)中,如果能夠良性的發(fā)展,必須關(guān)注組織,流程和人三者之間的關(guān)系。組織是流程成功實(shí)施的保障,好的組織結(jié)構(gòu)能夠有效的促進(jìn)流程的實(shí)施;流程對(duì)于產(chǎn)品的成功有著關(guān)鍵的作用,一個(gè)適合于組織特點(diǎn)和產(chǎn)品特點(diǎn)的流程能夠極大的提高產(chǎn)品開發(fā)的效率和產(chǎn)品質(zhì)量,反之則會(huì)拖延產(chǎn)品開發(fā)進(jìn)度,并且質(zhì)量也無法得到保證;對(duì)企業(yè)來說,人是最寶貴的財(cái)富,它們是技術(shù)的載體。對(duì)于一個(gè)軟件公司來說,無論是開發(fā)人員還是測(cè)試人員,都非常關(guān)心其今后的發(fā)展通道,如果有一條清晰的技術(shù)發(fā)展線為其指明今后的職業(yè)發(fā)展方向的話,這可以大大激勵(lì)員工的士氣和工作積極性。另外技術(shù)發(fā)展的方向應(yīng)該與現(xiàn)在的開發(fā)流程和規(guī)范相結(jié)合,這樣有利于專業(yè)技能的提高??傊M織,流程和人這三者是一個(gè)企業(yè)成功的鐵三角,理想的情況下它們彼此促進(jìn),糟糕的情況下它們彼此制約。七、國際上流行的質(zhì)量標(biāo)準(zhǔn)最早進(jìn)入國內(nèi)的質(zhì)量標(biāo)準(zhǔn)是ISO系列。在軟件方面主要使用ISO9000系列標(biāo)準(zhǔn)。ISO9000是一個(gè)非常完整的標(biāo)準(zhǔn),并且定義了供應(yīng)商設(shè)計(jì)和交付一個(gè)有質(zhì)量產(chǎn)品的能力所需要的所有元素。ISO9002涵蓋了對(duì)供應(yīng)商控制設(shè)計(jì)和開發(fā)活動(dòng)所認(rèn)為重要的質(zhì)量標(biāo)準(zhǔn)。ISO9003用于證明供應(yīng)商在檢視和測(cè)試期間檢測(cè)和控制產(chǎn)品不一致性的能力。ISO9004描述和ISO9001、ISO9002和ISO9003相關(guān)的質(zhì)量標(biāo)準(zhǔn),并提供了一個(gè)完整的質(zhì)量查檢表。軟件能力成熟度模型是目前國內(nèi)軟件企業(yè)中非常受歡迎的一個(gè)質(zhì)量標(biāo)準(zhǔn)。并且該標(biāo)準(zhǔn)已經(jīng)成為業(yè)界一個(gè)事實(shí)上的標(biāo)準(zhǔn)。CMM為軟件組織提供了一個(gè)指導(dǎo)性的管理框架。在這個(gè)框架的指導(dǎo)下:?軟件組織可以對(duì)其軟件開發(fā)、維護(hù)過程獲得控制。?軟件組織可以推進(jìn)其軟件工程更為科學(xué)、推進(jìn)軟件過程管理更為卓越。?CMM通過確定當(dāng)前軟件過程管理的成熟度,通過標(biāo)識(shí)軟件的質(zhì)量和過程改進(jìn)中關(guān)鍵的、要害的問題,可以指導(dǎo)軟件組織選擇正確的軟件過程改進(jìn)策略。?CMM將其焦點(diǎn),聚焦在一系列具體的軟件過程活動(dòng)上,并以侵略方式(Aggressively)達(dá)到這些活動(dòng)。一個(gè)軟件組織就可以穩(wěn)定地、持續(xù)地改進(jìn)其整個(gè)軟件組織過程,使得其軟件過程管理能力取得持續(xù)地、持久地不斷爭長提高。在CMM中,把軟件工廠分為五個(gè)等級(jí):初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、管理級(jí)和優(yōu)化級(jí)。其中:初始級(jí):軟件過程是未加定義的隨意過程,項(xiàng)目的執(zhí)行是隨意甚至是混亂的。也許,有些企業(yè)制定了一些軟件工程規(guī)范,但若這些規(guī)范未能覆蓋基本的關(guān)鍵過程要求,且執(zhí)行沒有政策、資源等方面的保證時(shí),那么它仍然被視為初始級(jí)。可重復(fù)級(jí):人們根據(jù)多年的經(jīng)驗(yàn)和教訓(xùn),總結(jié)出軟件開發(fā)的首要問題不是技術(shù)問題而是管理問題。因此,第二級(jí)的焦點(diǎn)集中在軟件管理過程上。一個(gè)可管理的過程則是一個(gè)可重復(fù)的過程,可重復(fù)的過程才能逐漸改進(jìn)和成熟??芍貜?fù)級(jí)的管理過程包括了需求管理、項(xiàng)目管理、質(zhì)量管理、配置管理和子合同管理五個(gè)方面;其中項(xiàng)目管理過程又分為計(jì)劃過程和跟蹤與監(jiān)控過程。通過實(shí)施這些過程,從管理角度可以看到一個(gè)按計(jì)劃執(zhí)行的且階段可控的軟件開發(fā)過程。已定義級(jí):要求制定企業(yè)范圍的工程化標(biāo)準(zhǔn),并將這些標(biāo)準(zhǔn)集成到企業(yè)軟件開發(fā)標(biāo)準(zhǔn)過程中去。所有開發(fā)的項(xiàng)目需根據(jù)這個(gè)標(biāo)準(zhǔn)過程裁剪出與項(xiàng)目適宜的過程,并且按照過程執(zhí)行。過程的裁剪不是隨意的,在使用前必須經(jīng)過企業(yè)有關(guān)人員的批準(zhǔn)。管理級(jí):所有過程需建立相應(yīng)的度量方式,所有產(chǎn)品的質(zhì)量(包括工作產(chǎn)品和提交給用戶的最終產(chǎn)品)需要有明確的度量指標(biāo)。這些度量應(yīng)是詳盡的,且可用于理解和控制軟件過程和產(chǎn)品。量化控制將使軟件開發(fā)真正成為一種工業(yè)生產(chǎn)活動(dòng)。優(yōu)化級(jí):的目標(biāo)是達(dá)到一個(gè)持續(xù)改善的境界。所謂持續(xù)改善是指可以根據(jù)過程執(zhí)行的反饋信息來改善下一步的執(zhí)行過程,即優(yōu)化執(zhí)行步驟。如果企業(yè)達(dá)到了第五級(jí),就表明該企業(yè)能夠根據(jù)實(shí)際的項(xiàng)目性質(zhì)、技術(shù)等因素,不斷調(diào)整軟件生產(chǎn)過程以求達(dá)到最佳。美國國防部規(guī)定,重要性級(jí)別高的軟件應(yīng)該由質(zhì)量級(jí)別高的企業(yè)承擔(dān)。不同等級(jí)的軟件公司提交的軟件,其軟件質(zhì)量也相差很大,國外的一份統(tǒng)計(jì)資料如下:表1、CMM級(jí)別與軟件質(zhì)量關(guān)系表格每千行軟件軟件過程成軟件準(zhǔn)時(shí)提每人每月生軟件需要返平均軟件失效的缺陷數(shù)目熟度等級(jí)交的百分比產(chǎn)的程序行數(shù)Z工的百分比時(shí)間(近似)大于10初始級(jí)<=50>=452到60分鐘小于10可重復(fù)級(jí)901.5Z201-160小時(shí)小于1已定義級(jí)992.5Z10不確定小于0.1管理級(jí)降低開發(fā)時(shí)間到1/25Z5不確定小于0.01優(yōu)化級(jí)降低開發(fā)時(shí)間到1/410Z<=2近似完全可靠對(duì)于很多已經(jīng)推行或者準(zhǔn)備推行CMM的公司來說,CMM的起步是很難的,因此Humphrey又提出了PSP(PersonSoftwareProcess)和TSP(TeamSoftwareProcess)【2】【3】。CMM是過程改善的第一步,它提供了評(píng)價(jià)組織的能力、識(shí)別優(yōu)先改善需求和追蹤改善進(jìn)展的管理方式【1】。企業(yè)只有開始CMM改善后,才能接受需要規(guī)劃的事實(shí),認(rèn)識(shí)到質(zhì)量的重要性,才能注重對(duì)員工經(jīng)常進(jìn)行培訓(xùn),合理分配項(xiàng)目人員,并且建立起有效的項(xiàng)目小組。然而,它實(shí)現(xiàn)的成功與否與組織內(nèi)部有關(guān)人員的積極參加和創(chuàng)造性活動(dòng)密不可分。PSP能夠指導(dǎo)軟件工程師如何保證自己的工作質(zhì)量,估計(jì)和規(guī)劃自身的工作,度量和追蹤個(gè)人的表現(xiàn),管理自身的軟件過程和產(chǎn)品質(zhì)量。經(jīng)過PSP學(xué)習(xí)和實(shí)踐的正規(guī)訓(xùn)練,軟件工程師們能夠在他們參與的項(xiàng)目工作之中充分運(yùn)用PSP,從而有助于CMM目標(biāo)的實(shí)現(xiàn)。TSP結(jié)合了CMM的管理方法和PSP的工程技能,通過告訴軟件工程師如何將個(gè)體過程結(jié)合進(jìn)小組軟件過程,并將后者與組織進(jìn)而整個(gè)管理系統(tǒng)相聯(lián)系;通過告訴管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持高質(zhì)量的工作,并且依據(jù)數(shù)據(jù)進(jìn)行項(xiàng)目的管理,向組織展示如何應(yīng)用CMM的原則和PSP的技能去生產(chǎn)高質(zhì)量的產(chǎn)品。軟件的生產(chǎn)過程及其它的許多子過程、軟件的開發(fā)者和用戶、以及系統(tǒng)的使用中存在著巨大的變化和不同,要使一個(gè)軟件過程對(duì)軟件生產(chǎn)的改善真正有所幫助,其框架應(yīng)是由CMM、TSP和PSP組成的一個(gè)完整體系,即從組織、群組和個(gè)人三個(gè)層次進(jìn)行良好的軟件工程和管理實(shí)踐的指導(dǎo)和支持??偠灾?,單純實(shí)施CMM,永遠(yuǎn)不能真正做到能力成熟度的升級(jí),只有將實(shí)施CMM與實(shí)施PSP和TSP有機(jī)地結(jié)合起來,才能發(fā)揮最大的效力。八、如何起步?質(zhì)量改進(jìn)需要花費(fèi)成本,因此改進(jìn)的途徑需要視不同公司的規(guī)模、業(yè)務(wù)、財(cái)務(wù)狀況、人員技術(shù)水平等多方面綜合進(jìn)行考慮。一般建議中型以上的較大的軟件公司實(shí)施CMM體系。而對(duì)于一些小型的軟件公司可以采取比較實(shí)際的,相對(duì)成本較少,且容易操作的方面進(jìn)行,這些方面大致如下:?實(shí)施簡潔的開發(fā)過程體系,根據(jù)不同業(yè)務(wù)特點(diǎn)可以選擇瀑布模型,迭代模型等,并在這些模型上進(jìn)行適當(dāng)?shù)淖兓赃m應(yīng)于短平快的產(chǎn)品開發(fā)特點(diǎn)。?提高需求分析和設(shè)計(jì)方面的技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度園林工程苗木供應(yīng)合同示范3篇
- 2025年版?zhèn)€人信用擔(dān)保藝術(shù)品投資借款合同4篇
- 二零二五年度存量房買賣合同合同法解讀與合同風(fēng)險(xiǎn)防范(2024版)3篇
- 中小企業(yè)法律護(hù)航服務(wù)協(xié)議模板2024版
- 2025年度船舶內(nèi)部裝修工程合同2篇
- 二零二五年度知識(shí)產(chǎn)權(quán)運(yùn)營承包經(jīng)營合同樣本4篇
- 2025年度電商區(qū)塊鏈技術(shù)應(yīng)用服務(wù)合同12篇
- 專業(yè)皮草交易協(xié)議樣式一
- 二零二五年度時(shí)尚街區(qū)攤位使用權(quán)購買與品牌入駐協(xié)議3篇
- 二零二五年度油氣儲(chǔ)罐租賃與安全培訓(xùn)合同4篇
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 人教版(2025新版)七年級(jí)下冊(cè)英語:寒假課內(nèi)預(yù)習(xí)重點(diǎn)知識(shí)默寫練習(xí)
- 2024年食品行業(yè)員工勞動(dòng)合同標(biāo)準(zhǔn)文本
- 2025年第一次工地開工會(huì)議主要議程開工大吉模板
- 全屋整裝售后保修合同模板
- 壁壘加筑未來可期:2024年短保面包行業(yè)白皮書
- 高中生物學(xué)科學(xué)推理能力測(cè)試
- GB/T 44423-2024近紅外腦功能康復(fù)評(píng)估設(shè)備通用要求
- 2024-2030年中國減肥行業(yè)市場發(fā)展分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 運(yùn)動(dòng)技能學(xué)習(xí)
評(píng)論
0/150
提交評(píng)論