軟件質量透視_第1頁
軟件質量透視_第2頁
軟件質量透視_第3頁
軟件質量透視_第4頁
軟件質量透視_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第11章軟件質量透視通過對前面的學習,我們對傳統的軟件測試有了一個比較全面的認識。我們認識到測試人員需要對產品的質量負責。那么什么是質量,該如何看待質量?本章重點討論:什么是質量?如何才能提高軟件產品的質量?

Deming的14條質量原則是什么?

CMM、PSP和TSP之間的關系是什么?11.1質量的定義

ISO關于質量的定義表示如下:“一個實體(產品和服務)的所有特性,基于這些特性可以滿足明顯的或隱含的需要。”我們可以引申出質量的3個維度:符合目標目標是客戶提出的,符合目標就是判斷我們是不是在做我們需要做的事情。在這個維度上用戶認為的質量是“產品是否按照用戶的需要運行”11.1質量的定義符合需求檢驗產品是否在做讓它做的事情。軟件產品的需求必須是可度量的,并且產品的需求要么被滿足,要么不被滿足。根據這種度量,質量也應該是二維的狀態,也就是說產品要么是有質量,要么是無質量的。對于開發者而言,他們認為質量就是滿足用戶的需求或規格說明書。在此滿足規格說明書成為了產品本身的一個終點。11.1質量的定義符合實際需求。實際的需求包括用戶明確說明的和隱含的需求。而往往我們會忽略隱含的需求。因此控制一個產品的質量的過程中必須關注這些隱含的需求,并給予應有的驗證。產品是為用戶提供服務的,凡是不滿足客戶需求的,我們都認為是一個失效的產品。所以我們的產品必須圍繞著客戶的需求進行開發和驗證。11.1質量的定義“客戶”和“用戶”的區別:客戶之真正能夠決定是否購買你軟件的人,而用戶是實際使用軟件的人。我們開發軟件是應該更多地站在用戶的角度去開發,要做到讓用戶用得方便、舒服、提高了效率。用戶的意見能直接反饋到客戶那里,作為客戶選購軟件的依據。

了解兩者的區別,在分析需求和進行產品的質量驗證時可以做出不同的權衡。11.1質量的定義當每個人提到質量時,經常會遇到下列矛盾,在這些矛盾中隱含著對質量的承諾:質量需要一個承諾,尤其是高層管理者的承諾。為了得到更高的質量,高層管理者必須和員工進行緊密的合作。許多相信沒有缺陷的產品和服務是不可能的。但是控制在一定級別的缺陷數量是正常的,是可以接受的。11.1質量的定義質量經常是和成本緊密聯系在一起的,一個高質量的產品同時也意味著高投入。這是設計的質量和一致性質量的一個矛盾。一個高的質量要求需求規格說明書足夠詳細,并根據這些規格說明書可進行定量的分析。然而許多組織沒有能力或者不愿意制作如此詳細的規格說明書。技術人員經常相信規范和標準會束縛他們的創造力,因而不愿意遵照標準做事。然而如果要得到高質量的產品,就必須遵循良好定義的標準和過程。11.2質量的預防和檢測

質量管理可以降低產品的成本,這是因為缺陷發現和修改得越早,所花費的成本就越少。盡管在初期時,其成本投入相當大,但是從長遠來看,質量管理將減少后期的維護費用,并最終得到一個高質量的產品。研究表明:維護階段發現和修改一個缺陷的成本時需求階段的70倍甚至更高。一個有效的質量管理成本包括4個部分:預防成本、檢視成本、內部缺陷發現和修改成本、外部缺陷發現和修改成本。11.2質量的預防和檢測預防成本包括防止缺陷最初產生的活動的成本。檢視成本包括測量、評價和審計一個產品或服務是否和標準與規格相一致而花費的成本。內部缺陷發現和修改成本是那些在產品交付之前發現和修改錯誤所投入的成本。

11.2質量的預防和檢測外部缺陷發現和修改成本是產品發布之后發現和修改缺陷所花費的成本。外部缺陷有可能是災難性的,因為它們可能會損害企業的名譽并最終導致銷售的下滑。預防的最大回報是在增加預防成本的同時減少外部缺陷,進而提高產品質量,減少維護成本和產品成本。11.3如何提高軟件產品的質量如何提高軟件的質量已經不是一個純粹的技術問題,而是一個工程問題。自從軟件危機產生以來,出現了很多關于提高產品質量方面的理論和方法:有從技術角度出發的,如面向對象的技術的產生和推廣;有從自動化角度出發的,如CASE工具、過程控制軟件、自動化管理平臺等;有從過程模型角度出發,如:迭代模型、螺旋模型等;11.3如何提高軟件產品的質量有從管理角度出發的,如:團對管理、責效管理等;有從測試角度出發的,如:把Deming的PDCA循環應用到全流程的測試過程上來;一些相應的規范和標準也孕育而生,例如:ISO9000系列,CMM等。然而每一種技術都不是絕對的,軟件質量的提高應該是一個綜合的因素,需要從各個方面進行改進,同時還需要兼顧成本和進度。

11.3.1流程對質量的控制從一個軟件企業的長遠發展來看,如果要提高產品的質量首先應當從流程抓起,規范軟件產品的開發過程。這是一個軟件企業從小作坊的生產方式向集成化規范化的大公司邁進的必經之路,也是從根本上解決質量問題,提高工作效率的一個關鍵手段。11.3.1流程對質量的控制

軟件產品的開發同其他產品(如汽車)的生產有著共同特性,即需要按一定的過程來進行生產。

在工業界,流水線生產方式被證明是一種高效的,且能夠比較穩定地保證產品質量的一種方式。通過這種方式,不同的人員被安排在流程的不同位置,最終為著一個目標共同努力,這樣可以防止人員時間的內耗,極大地提高了工作效率。并且由于其過程來源于成功的案例,因此其最終的產品質量能夠滿足過程所設定的范圍。11.3.1流程對質量的控制

軟件工程在軟件的發展過程中吸取了這個經驗并把它應用到了軟件開發中,這就形成了軟件工程過程,簡稱開發流程。開發流程告訴我們該怎樣一步一步實現產品,可能會有那些風險,如何避免風險等。由于流程源于成功的經驗,因此,按照流程進行開發可以使我們少走彎路,并有效地提高產品質量,提高用戶的滿意度。11.3.1流程對質量的控制

目前流行的流程方法有很多種,不同的流程適合不同類型的項目。瀑布模型該模型是應用最為廣泛的一種模型,也是最容易理解和掌握的模型,但是它的缺陷也是顯而易見的。遺留的需求或者不斷變化的需求會使得該模型無所適從。然而,對于那些容易理解但很復雜的項目,采用瀑布模型比較適合,因為可以按部就班地去處理復雜的問題。在質量要求高于成本和進度時,該模型表現突出。11.3.1流程對質量的控制螺旋模型是一個經典的模型,它關注于發現和降低項目的風險。螺旋型項目從小的規模開始,探測風險,制定風險控制計劃,接著確定下一步項目是否還要繼續,然后進行下一步螺旋的反復。該模型的最大優點是隨著成本的增加,風險程度隨之降低。缺點是比較復雜,且需要管理人員有責任心,專注以及有管理經驗。對管理人員的經驗和素質依賴比較大。11.3.1流程對質量的控制

RUP模型該模型是Rational公司提出的一套開發過程模型,它是一個面向對象軟件工程的通用業務流程。它描述了一系列相關的軟件工程流程,它們具有相同的結構,即相同的流程架構。

RUP為在開發組織中分配任務和職責提供了一種規范方法,其目標是確保在可預計的時間安排和預算內開發出滿足最終用戶需求的高品質的軟件。11.3.1流程對質量的控制

RUP有兩個軸,一個軸是時間,這是動態的;另一個軸是工作流軸,這是靜態的。在時間軸上,RUP分為4個階段:初始階段、細化階段、構造階段和發布階段。每個階段都使用了迭代的概念。在工作流軸上,RUP設計了6個核心工作流程和3個核心支撐工作流。核心工作流軸包括:業務建模工作流、需求工作流、分析設計工作流、實現工作流、測試工作流和發布工作流。核心支撐工作流包括:環境工作流、項目管理工作流和配置與變更管理工作流。RUP流程示意圖11.3.1流程對質量的控制

IPD模型流程是由IBM提出的一套集成產品開發流程,非常適合于復雜的大型開發項目,尤其涉及到軟硬件結合的項目。

IPD從整個產品角度出發,流程綜合考慮了從系統工程、研發(硬件、軟件、結構工業設計、測試、資料開發等)、制造、財務到市場、采購、技術支援等所有流程,是一個端到端的流程。11.3.1流程對質量的控制在IPD流過程中總共劃分了6個階段(概念階段、計劃階段、開發階段、驗證階段、發布階段和生命周期階段),4個決策評審點(概念階段決策評審點、計劃階段決策評審點、可獲得性決策評審點和生命周期終止決策評審點)以及6個技術評審點。IPD流程示意圖11.3.1流程對質量的控制

IPD流程是一個階段性模型,具有瀑布模型的影子。該模型通過使用全面而且復雜的流程來把一個龐大而又復雜的系統進行分解并降低風險。一定程度上,該模型是通過流程成本來提高整個產品的質量并獲得市場的占有。由于該模型沒有定義如何進行流程回退的機制,因此對于需求經常變動的項目,該流程就顯得不太適合了。并且對于一些小項目,也不是非常適合使用該模型。11.3.2流程與技術流程和成功不是等價的。沒有流程,成功就不可能得到保證,但是有了流程并不意味著肯定能夠成功。技術是成功的另外一個必要條件。11.3.2流程與技術對于軟件開發者來說,要保證軟件的質量,需要掌握多方面的技術,包括分析技術,設計技術,編碼技術和測試技術等。在國內有一個普遍的非正常現象,就是大家覺得只有編程才是玩計算機的真正技能。就好像造一套房子,其他都不重要,只要磚瓦匠有高超的技能就行了。我們缺少系統級的工程師,在分析和設計方面的工作做得很不扎實。11.3.2流程與技術需求是一個項目的靈魂。模棱兩可的需求不可避免的后果就是返工——重做一些你認為已做好的事情。返工會耗費總開發費用的40%,而70%~85%的重做是由于需求方面的錯誤所導致的。11.3.2流程與技術設計是最能體現一個工程師能力的地方。一個好的設計基本上決定了產品的最終質量。設計是把需求轉換成系統的一個關鍵步驟,它需要從自然語言描述的需求中尋找出設計的基礎單元,構建出整個系統的構架。在RUP模型中關于系統架構師和設計師的定位是相當高的。關于設計方面的技能是很廣的,包括從系統的結構化設計到面向對象設計。設計人員需要掌握一定的建模技術。11.3.2流程與技術

UML是國際上比較流行的一種建模語言,在嵌入式方面SDL也是一種很好的建模工具。

《設計模式》是一本在設計思想方面總結得非常出色得書,作為一個設計人員,必須好好研究一下。11.3.2流程與技術現在的程序員熱衷于掌握多種編程語言,或者過分講究語言的技巧化,而往往忽略了編程語言的規范化。不規范的語言應用給程序的可理解性、可維護性以及可測試性帶來很大的不便,甚至會損害產品的質量。11.3.2流程與技術如果大家是在做研究性的項目和純粹興趣性的項目,那么大家充分發揮自己的編程天才是可以的。但是對于一個公司,其產品最終是要交給用戶的,需要遵循的是一個軟件產品的開發過程。因此這類軟件的開發需要遵循一定的編程規范,畢竟開發的軟件不是自己用的,還需要和別人集成,還需要給以后版本重用和維護??傊?,流程很關鍵,技術也很重要,“魚”和“熊掌”,兩者都不能放。11.3.3全面質量管理作為全面質量管理的最初倡導者和成功者Deming,其質量理論包括統計理論的使用。統計有助于我們特別關注于問題的主要因素,當問題改正后能極大地提高產品的質量。11.3.3全面質量管理1.Deming的質量原則:第一個原則:要有一個堅定不移的目標為了應用該原則,一個質量保證組織可以:開發一個質量保證計劃,提供一個長期的質量方向;需要軟件測試者為每個項目開發并維護一個一致的測試計劃。鼓勵質量分析人員和測試人員遵循具有革新的方法來最大化產品的質量。致力于不斷改進質量過程。11.3.3全面質量管理第二個原則:吸收新的哲學質量必須成為一個新的信仰。根據Deming的理論:“生存的成本和需要花錢購買的商品和服務是成反比的,如:可靠的服務可以降低成本,延遲和錯誤卻會提高成本?!庇捎谘舆t和錯誤,商品和服務的消費被終止了,這降低了它們存在的標準。在系統中,對可接受的層次和缺陷忍耐程度是質量和產量之間的一個路障。11.3.3全面質量管理為了應用該原則,一個質量保證組可以:提高關于質量的價值和需要;提高質量保證部門的地位,是他們和別的部門同樣重要;糾正對質量部門是“看門狗”的消極看法。11.3.3全面質量管理第三個原則:不要依賴海量檢查傳統的想法認為檢查可以排除糟糕的質量。當難于確定在過程中一個缺陷在哪邊產生時,一個好的方法是通過檢查關注于我們做的如何、而不應針對最終的產品。質量應當時內在的,而不是通過無數的檢查獲得的。為了做到該原則,一個質量保證組織可以:在整個開發生命周期中,提高并使用技術評審、走讀和檢視來獲取質量;在整個組織中灌輸質量意識,并把它作為一個切實的、可度量的工作產品;需要信息技術質量的統計證明。11.3.3全面質量管理第四個原則:結束基于純粹價格標簽裁定的商業實踐“兩個或多個以上的同種商品的供應商會成倍地加劇損害,這些損害是內在必然的,并且對任何一個供應商都是不利的。”為了更好地服務于公司,購買方可以通過和供應商建立一種長期的忠實的關系,并且與一個專門的供應商建立信任關系。為了應用該原則,一個質量保證組織可以:需要軟件質量和測試提供者提供能夠證明他們質量的統計數據。對每一個質量保證工具、測試工具和服務選擇一個最好的供應商,并且建立一個與質量計劃一致的工作關系。11.3.3全面質量管理第五個原則:產品和服務系統穩定地、長期地提高改進不是一時的努力——管理層有責任不斷地提高質量。具體可以:不斷地提高質量保證和測試過程。不要依賴于主觀的判斷。使用統計技術,如測試分析和通過主因及效果分析揭示問題根源等方法。11.3.3全面質量管理第六個原則:建立培訓和再培訓制度在很多公司,很少甚至沒有培訓,工人們不知道何時才能正確地完成他們的任務。Deming強調:只要工作成果無法受到統計控制,并且還能獲得更大的好處時,培訓就不應當被終止。為了應用該原則,可以:建立現代的培訓輔

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論