軟體全程質量保障

軟體全程質量保障

因此,如何將監理技術和測評技術有機融合,使之成為徹底的信息系統建設的質量保障方案,成為質量保障領域的一個重要課題。 全程缺陷管理:伴隨全程質量控制的實施,軟體項目大量缺陷會被發現,如何對這些缺陷進行有效管理是確保全程質量控制實施效果的關鍵。 軟體開發過程由系統建設方統籌管理,軟體開發方、質量保障方分工合作,相互制約,協同完成。

什麼是TQA

全程質量保障(Total Quality Assurance(TQA) In the system development,以下相同處簡稱TQA)是基於對信息系統建設的再認識構建的,從信息系統規劃與選型、信息系統建設與開發、信息系統交付與驗收和信息系統運行與維護四個階段的質量保障需求出發,定製質量保障內容,有的放矢、精準執行!
全程質量保障整合了山東省軟體評測中心十年來,在數千個實施項目中積累的豐富實踐經驗、服務內容和模式的眾多創新,實現模組級組合,能夠更適套用戶各類項目千差萬別的需求。

2.1 當前在項目建設過程中的問題

在KPMG(畢馬威,國際頂級會計事物所)的一份對失敗項目的統計調查中,我們看到導致項目失敗的前10項影響因素主要有以下幾個(如圖):

圖1項目失敗因素統計
一般系統建設可以劃分為系統規劃、系統建設、系統驗收和運行維護四個階段,我們對這些影響因素作進一步分析發現這些因素分布在系統建設的各個階段(如圖),也就是說在整個信息系統建設過程中每個環節出了問題都有可能導致整個項目的失敗。因此,全程質量控制勢在必行。

圖2失敗因素分布情況
軟體生命周期是一個包括項目規劃、需求分析、軟體設計、系統集成、軟體測試、系統驗收及運行維護幾大階段的長程軟體構建開發過程,從上述統計圖表上我們可以看到這些問題既有前期系統規劃、建設方面的問題,也有後期驗收、維護過程中出現的問題,因此要想確保一個項目成功建設和套用,單純解決某一方面的問題只能是“頭痛醫頭,腳痛醫腳”的短視行為,現代系統建設需要一套科學、全面、有效的質量保障解決方案。
軟體過程質量保障就是針對軟體生命周期的不同階段及其特點,計畫並實施一系列質量管控活動,對軟體產品的開發過程和交付成果進行質量保證和質量控制,這正是構成TQA的兩個核心模組,也是精髓所在。
通過質量保障方案的實施,將完整有效的質量保障手段灌裝到軟體工程的各個階段,才能將軟體開發過程透明化、數位化,軟體質量度量才更有依據、更加可信,項目的有關決策才更加客觀、合理。

2.2 在項目中套用TQA

圖3全程質量保障內容
如何在信息系統建設項目中成功套用TQA呢?圖3是一個一般的系統建設過程模型,我們以事前、事中和事後,對系統建設進行總體三階段劃分,在這個模型中,TQA是如何套用的呢?我們詳述如下:
1) 信息系統規劃與選型
u 系統規劃諮詢:協助進行系統的規劃設計、系統實施方案編寫諮詢、系統可行性報告編寫諮詢、系統可行性評估等;
u 套用系統方案評估:在套用系統建設方案論證時,對方案中的系統架構、可靠性、可擴展性、兼容性、風險、投資成本等內容進行評估,以明確係統建設的風險和可行性,為領導決策提供支持。同時,針對方案中的不足給出改進建議。
u 套用系統成本估算:對系統中的套用軟體根據其規模、結構、技術含量等估算其成本,為項目投資預算或決算提供參考。
u 比對測試:結合客戶的系統套用規劃,建立統一的測試基準,對備選產品進行基準測試,出具權威測試報告,為套用系統選型提供量化判定依據。
2) 信息系統建設與開發
在信息系統建設與開發過程中進行質量控制,具體可分解為以下方面:
u 需求工程諮詢與階段評審:參與系統需求調研與分析、協助構建需求管理與開發規範、需求分析技術與工具的指導等;對階段性需求分析成果進行評審與驗證。
u 設計與開發技術諮詢與技術評審:協助建立編碼規範、系統分析設計方法與工具的指導等;對系統設計的階段性成果進行技術評審和驗證,並對規範落實情況進行跟蹤,對發現的問題提出可行性意見並提出改進措施。
u 軟體測試諮詢與過程測試:改進及構建軟體測試體系、協助建立缺陷管理規範;對軟體開發與實施過程中的各個階段性的開發產品進行測試和確認。根據軟體開發契約或計畫,針對各個階段的產品進行嚴格的測試,包括單元測試、集成測試、系統測試。
u 技術評審與質量保證:對工作成果進行技術評審、定期對工作成果進行質量檢查並提供質量保證報告;
u 項目管理諮詢:協助構建項目管理規範、項目管理工具套用指導等;
u 配置管理諮詢:協助構建配置管理規範、配置管理工具套用指導等;
u 質量管理諮詢:協助構建質量保證規範、質量管理工具套用指導等;
u 軟體過程改進諮詢:構建軟體過程規範、協助實施軟體過程改進。
u 文檔體系諮詢:結合項目實際情況協助構建各類項目文檔的結構體系,提供可行性文檔撰寫模板及案例。
3) 信息系統交付與驗收
在軟體項目的後期,軟體項目經過試運行等工作,表明軟體的開發等工作已基本完成,此時,可以著手準備軟體項目的驗收。軟體開發項目驗收是對整個開發項目的結果的評價,是軟體交付使用前對項目進行評估、認定和總結的過程,包括費用、質量、服務等多個方面。通過驗收工作,來找出項目中可能存在的問題和不足,並進行最後的修正,以使項目成果完美的交付到最終使用人員手中。
u 驗收測試:依據軟體開發商和用戶之間的契約、軟體需求說明書以及相關行業標準、國家標準、法律法規等對軟體的功能、性能、可靠性、易用性、可維護性、可移植性等特性進行嚴格的測試,以找出軟體的缺陷和不足,並提成修改意見,完善項目成果。
u 項目成本評估:為需要對項目成本進行審計、核算的用戶提供項目成本評估,對軟體的成本給出參考性意見。
u 文檔測試:對軟體開發商提供的相關文檔進行審核,並提出修改意見,以便於軟體或系統的使用、維護和移植。
u 履約情況檢查:對契約中規定的進度、服務等項目執行情況進行檢查,以保障雙方的利益。
4) 信息系統運行與維護
u 套用系統風險評估:對套用系統的整體情況進行綜合的評價,包括系統的功能、可靠性、性能、安全性、風險、需投入成本等項目的測試、評價與估算,並給出有針對性改進建議。
u 信息系統性能測試與故障診斷:我們採用套用系統性能、伺服器監測、網路分析等工具實現網路套用系統故障定位和管理,分析關鍵套用的回響時間在客戶端、網路、伺服器的分布,匯總關鍵套用的吞吐量和網路頻寬占用率,揭示引起套用系統故障的真正原因。

2.3 TQA與監理的聯繫與區別

項目監理和第三方評估都是信息系統質量保障的重要手段,但是因為國家主管部門的政策推進,在信息系統建設領域,項目監理有著更高的普及率。但是從近幾年的發展和套用情況來看,監理的核心理念仍然停留在“三控兩管一協調”(投資控制、進度控制、質量控制、契約管理、信息管理和組織協調)上,這種完全複製於建築工程領域的監理思想顯然不能完全滿足信息系統建設領域的監理要求。
信息系統建設有著自身的領域特點,總結如下:
l 需求描述困難,在建設初期難以獲得完整的需求,因而較之於建築工程領域有著更多不確定性和更高的建設風險;
l 設計與開發串列、並行同時存在,難以切割清晰;
l 智力密集型,溝通交流是了解項目和推進項目的主要方式;
l ......
正是因為信息系統建設的以上這些先天特性,造成項目監理在實施過程中面臨諸多困難,難以將監理工作做實。正是認識到項目監理存在先天缺陷,以軟體測試為代表的第三方評估在近年來發展迅猛,成了信息系統建設成果鑑定和確認的主要技術手段。
在現代項目監理髮展進程中,軟體測評技術被認為是信息系統監理的關鍵能力,但是事實上因為職能的關注點不同,信息系統監理單位往往沒有精湛的軟體測評技術,在結果檢驗和過程檢查中更多的依賴於開發單位的書面報告。因此,如何將監理技術和測評技術有機融合,使之成為徹底的信息系統建設的質量保障方案,成為質量保障領域的一個重要課題。
TQA是探索過程規範與軟體測評結合,將軟體測評技術延伸到軟體過程規範的一項研究成果。TQA將專業、豐富的軟體測評技術隨需套用到信息系統規劃與選型、信息系統建設與開發、信息系統交付與驗收和信息系統運行與維護四大階段中,通過專業的測試和度量,徹底解決建設單位、開發單位信息不對稱的問題,將信息系統建設透明化、數位化,從而使過程可見、可控,套用先進的測評技術對開發結果進行高覆蓋測試,儘早發現問題、消除問題,大幅降低系統建設和套用風險,從而使結果可靠、適用。

技術概要

軟體項目全程質量控制的框架(如圖4所示),主要包括以下幾個模組:
l 質量需求及質量需求分析:實施全程質量控制單位案的基礎是質量需求的採集和分析。
l 建立質量保證機制:全程質量控制單位案是一個多方協同的項目實施過程,科學有效的質量保證機制是確保方案順利實施的基本保障。
l 基於過程的質量保證模組:主要包括產品審計、過程檢查、計畫跟蹤和風險評估;
l 基於過程的質量控制模組:主要包括多級別軟體測試(單元測試、集成測試、系統測試、驗收測試及其他性能測試等專題測試)、階段評審和代碼檢查及評審。
l 技術支撐:主要包括過程管理技術(軟體過程管理、項目管理體系套用和技術評審的實施)、軟體測試技術(模型檢測技術、自動用例技術和性能測試技術等);
l 關鍵過程域:全程質量控制主要包括軟體需求過程質量控制、軟體設計過程質量控制、軟體編碼過程質量控制和軟體交付過程質量控制等4個關鍵過程域;
l 全程缺陷管理:伴隨全程質量控制的實施,軟體項目大量缺陷會被發現,如何對這些缺陷進行有效管理是確保全程質量控制實施效果的關鍵。因此,全程缺陷管理是全程質量控制的一個必不可少的組成部分。全程缺陷管理依據缺陷生命周期進行缺陷的跟蹤和控制,採用自動化管理工具實現缺陷的發現記錄、跟蹤消除,確保每一個缺陷得到合理的處置。
l 質量評估:通過全程質量控制的實施,可以積累、採集軟體項目的多個層面的相關開發數據,對這些數據進行科學分析,我們可以對整個項目的過程、成果進行有效評估,從而為各項決策提供有力有理的依據。

圖4TQA技術框架

3.1 ROUTE1:質量保證

l 產品審計:對項目各階段產生的主要工作產品(如項目計畫、軟體需求規格說明書、設計文檔、重要的原始碼、測試文檔、用戶使用文檔等)進行審計,檢驗工作產品是否符合預定需求、在格式和內容上是否符合適當的標準,以此來保證項目實施過程中產生的工作產品的質量。評審標準將採取產品規範與實際需要相結合的方式,提高工作產品的實效性。
l 過程檢查:軟體質量保證活動中的核心工作,其主要目的在於對軟體項目開發過程中重要工程技術活動的工作過程按照預先確定的工作規範和檢查準則進行檢查,發現其中的不符合項,及時通知項目相關方並採取糾正措施,以確保項目過程的質量。
l 計畫跟蹤:在整個項目的開發建設過程中,以《項目計畫》為主線和依據對項目進展情況進行跟蹤與檢查。
l 風險評估:目的在於發現項目進展過程中存在的風險問題並提早做出應對措施,以便降低或減小風險問題給項目造成的影響或損失。風險評估主要根據項目相關方的需要,在項目進展過程的關鍵階段(重大里程碑)進行。

3.2 ROUTE2:質量控制

l 技術評審(Technical Review,TR)的目的是儘早地發現工作成果中的缺陷,並幫助開發人員及時消除缺陷,從而有效地提高產品的質量。
l 代碼檢審包括代碼檢查和代碼審查兩部分內容,主要檢查代碼的編制和設計的一致性,代碼對編碼規範及其他標準的依從性,代碼的可讀性,代碼邏輯表達的正確性,代碼結構的合理性等。通過代碼檢查及時發現違背編碼規範的問題,代碼中不安全、邊界溢出、死代碼等問題。
l 文檔檢查:對於系統建設期間產生的各類文檔應該進行認真的檢查,必要時實施文檔測試。
l 單元測試是對軟體設計的最小單位(模組)進行正確性檢驗的質量控制工作,測試並發現模組在語法、格式和邏輯上的錯誤。用單元測試用例測試程式,將實際結果與期望值進行比較,以驗證模組設計的正確性。
l 集成測試是在代碼審計的基礎上,檢驗在將所有的軟體單元按照設計說明書的要求組裝成模組、子系統或系統的過程中,各部分工作是否達到或實現相應技術指標及要求。
l 系統測試是將通過集成測試的軟體,作為整個基於計算機系統的一個元素,與計算機硬體、外設、某些支持軟體、數據等其他系統元素結合在一起,在實際或模擬運行環境中,對系統進行一系列測試,以發現軟體與系統定義不符合或與之矛盾的地方。
l 專題測試,是根據項目委託方對軟體的特定質量需求,進行有針對性的強化測試。
l 驗收測試主要依據軟體開發商和用戶之間的契約、軟體需求說明書以及相關行業標準、國家標準、法律法規等對軟體的適合性、準確性、互操作性、保密安全性、成熟性、容錯性、易恢復性、易理解性、易學性、易操作性、吸引性、時間特性、資源利用性、易分析性、易改變性、穩定性、易測試性、適應性、易安裝性、共存性、易替換性和依從性方面進行嚴格的測試。

TQA核心價值

全程質量保障方案具有協同、透明、可控、靈活、高效、節約的優勢,具體描述如下:
Ø 軟體開發過程由系統建設方統籌管理,軟體開發方、質量保障方分工合作,相互制約,協同完成。
Ø 軟體過程將變得規範、明晰,系統建設方將可以對項目風險、進度、質量狀態全面了解,使軟體開發過程由一個“黑匣子”變得透明、可控。
Ø 軟體質量得到充分的重視,避免了原有開發方式中,由於成本、進度、利潤等因素,軟體開發商私自壓縮質量保證和測試人員,減少相關工作量的做法,在制度和工作模式上保證了軟體開發的質量。
Ø 軟體質量保障過程可以因項目情況而靈活變動,所有質量保障活動都建立與軟體質量需求和項目進度、成本等要求之上,根據項目要求,規劃質量保障過程,所有質量保障活動可靈活組裝,如質量保證、質量控制可分開進行,質量保證可只進行需求評審,質量控制中可只做系統測試或驗收測試,等等。通過不同組裝,在質量需求、項目進度、項目成本、質量保障之間尋求平衡,力爭以最小代價獲得質量的最優。
Ø 融合多種工程方法思想。質量保障過程,融合了CMMI 3級、RUP、敏捷軟體工程等多種軟體工程方法思想,在吸取了各軟體工程方法精華的基礎上,結合最佳實踐,制訂相應的質量保障規劃。
Ø 全程質量保障方案不會增加成本。軟體開發項目具有固定的成本,該成本中包括了軟體開發過程中需求分析、設計、編碼、測試、管理等各類成本,該方案將軟體開發過程中的各項工作分離出來,由兩個在其各自領域更專業的單位來完成,並沒有增加額外的工作量,也沒有增加相應的成本,反而因專業而提升工作效率,降低成本。(在將所有預算分配給一家單位時,該單位有可能會降低總額度,但他是以軟體質量為代價的。)通過質量的提升,會降低軟體開發、使用成本。軟體質量的提升,將會大量減少後期的維護工作量,避免因缺陷而導致的系統宕機等故障,提升系統可靠性,從而大大降低使用中的維護成本,同時也有利於降低開發商的後期維護服務費用。

5.1 消除阻力

TQA作為一項最新成果,在推廣和實施過程中難免會有一些阻力,因為人們對於軟體本身的獲取還遠高於對其質量的訴求。但是,在新一代的信息系統套用領域,信息系統已經展現出規模擴大化、業務邏輯深入化、數據挖掘與分析的趨勢,在這樣一個更高套用需求的背景下,信息系統如果沒有一個高可靠的質量為基礎,如何能夠支撐這種套用需求呢?對質量的投入,就是對未來的投資!
有遠見的系統建設單位應在項目規劃初期積極引入TQA,為本單位系統建設提供一個可靠有效的質量保障平台,保護己方投資。

5.2 儘早溝通

儘早溝通是消除阻力的一種有效方式,通過TQA專業諮詢人員的講解和引導,將系統建設的質量理念傳達到系統建設單位,形成主動的質量意識。
通過儘早溝通,獲得高階領導的支持,這也是保障TQA工作有效實施的一項必要條件。
通過儘早溝通,對實施TQA進行科學規劃,使TQA的各項進程能夠與系統建設進程緊密結合,形成共同促進的良性循環關係。

5.3 儘早實施

儘早實施是所有質量管理活動的一個重要原則。在TQA中,儘早實施可以有效降低TQA實施成本,主要體現在以下幾個方面:
l 從專業角度協助規劃系統建設單位質量需求,有效理解系統建設單位系統建設目標,從而更好的服務於系統建設單位,促進達成系統建設目標;
l 儘早與系統開發單位達成一致,有效植入我們的最佳實踐經驗,形成完善的質量保證計畫方案,質量保證過程可以得到規範、認可和貫徹;
l 系統建設過程中的問題可以及早發現,從而使問題儘早得到修復,避免問題被累積和放大,形成“雪崩效應”。

相關詞條

熱門詞條

聯絡我們