《融管理社區:2023軟件研發質量管理體系建設白皮書V1.0(131頁).pdf》由會員分享,可在線閱讀,更多相關《融管理社區:2023軟件研發質量管理體系建設白皮書V1.0(131頁).pdf(131頁珍藏版)》請在三個皮匠報告上搜索。
1、1目錄前言 _ 1本白皮書的背景和意義 _1預期讀者 _1策劃和組織本白皮書的團隊 _2第一章 質量管理體系概述 _ 41.1 質量管理體系的定義 _41.2 質量管理體系的原則 _51.3 質量管理體系的目的和意義 _10第二章 確立軟件質量管理體系建設思路 _ 152.1 分析現狀問題 _152.2 確定建設范圍 _152.3 獲取管理支持 _16第三章 制定質量政策和質量目標 _ 193.1 質量政策制定 _193.2 質量目標設定 _21第四章 建立質量型組織 _ 284.1 質量型組織設計 _284.2 質量角色定義 _294.3 質量關系協調 _304.4 質量管理組織架構 _31
2、第五章 定義符合質量管理體系要求的流程 _ 355.1 流程體系設計 _355.2 流程管理實施 _365.3 流程體系優化 _375.4 典型質量管理體系流程 _38第六章 制定質量考核機制 _ 766.1 質量檢查設計 _766.2 質量評估執行 _776.3 質量改進閉環 _2第七章 實施質量培訓和文化建設 _ 817.1 質量培訓計劃 _817.2 質量文化推廣 _82第八章 提供資源保障 _ 868.1 人力資源配備 _868.2 基礎設施建設 _908.3 資源分配保障 _91第九章 持續改進與評審 _ 939.1 內部質量審核(Audit)_939.2 外部質量審核 _949.3
3、 持續改進機制 _95附錄 A 常見的質量管理體系介紹(QMS)_ 98A.1 ISO9001 _100A.2 IATF6949(TS16949)_101A.3 CMMI _104附錄 B 軟件研發質量管理過程常見文檔設計實踐 _112B.1 架構設計文檔編寫 _112B.2 模塊設計文檔編寫 _113B.3 數據庫設計文檔編寫 _114B.4 接口設計文檔編寫 _ 115B.5 數據流圖文檔編寫 _116B.6 詳細算法和數據結構描述 _117B.7 編碼過程文檔 _118B.8 源代碼文檔編寫 _118B.9 編碼規范編寫 _120B.10 單元測試文檔編寫 _121B.11 測試文檔分類
4、 _1前言前言本白皮書的背景和意義本白皮書的背景和意義軟件在現代社會中發揮著越來越重要的作用,但軟件質量問題也越來越受到人們的關注。尤其是在軟件開發的過程中,可能存在的質量問題會導致交付產品質量下降、項目超預算和延遲交付等問題。在這種背景下,建立研發質量管理體系是非常重要的。本白皮書的主要目的是指導團隊如何建立軟件研發質量管理體系,幫助軟件開發團隊提高交付質量,降低缺陷逃逸率和不良質量成本。具體來說,本白皮書為保證軟件研發質量而建立的一套完整的流程、方法、實踐等的整體內容,覆蓋了管理職能、資源管理、產品發布、質量與改進四個方面。通過閱讀本白皮書,讀者將會了解到建立軟件研發質量管理體系的重要性,
5、以及如何建立一套覆蓋全面的、可以有效實施的質量管理流程和方法,以提高整體軟件研發質量。預期讀者預期讀者本白皮書的目標讀者是質量總監、質量經理、軟件開發人員、軟件測試人員、項目管理人員、其他質量保證工作相關人員,以及所有對質量關心的組織成員。1.需要參與質量管理體系建設和管理的管理人員和技術人員:包括 CTO、研發總監、產品總監、質量總監、質量經理、質量保證工程師、測試經理、項目經理、開發人員、產品經理以及測試人員等。本白皮書將為他們提供相關的指導和實踐案例,幫助他們實現高質量軟件開發和管理。2.具有軟件開發和管理背景的專業人士:這些人士對于質量建設和保障的技術層面有深入的理解和實踐經驗,他們需
6、要提升通過組織層面質量管理體系的建設來推動軟件質量和持續改進的能力,以便能夠更好地滿足客戶的需求。3.軟件開發和管理領域的研究人員:白皮書對于軟件開發和管理領域的研究人員也有一定的參考價值。他們可以從本白皮書對實戰的指導中獲得啟發。4.已經或準備進入軟件工程領域的學生:白皮書也適用于存在學習軟件工程相關領域的學生,幫助他們更好地理解質量工程、質量管理體系建設和管理以及軟件開發和項目管理的相關概念和實踐案例。2總之,本白皮書的預期讀者包括從事軟件開發、項目管理、質量管理、軟件測試等相關工作的各類人員,以及對于軟件工程領域有所關注和了解的學生和研究人員。策劃和組織本白皮書的團隊策劃和組織本白皮書的
7、團隊宋濤、孫正亮、陳曉鵬、劉哲、劉冉、周航宇、周玲、何凡、鄭蒙正、郭智杰、盧騰飛、陳磊、徐東偉共同完成了本次白皮書的撰寫(排名按照章節承擔順序)。4第一章 質量管理體系概述1.11.1 質量管理體系的定義質量管理體系的定義全面質量管理的創始人,費根堡姆,將質量管理體系定義為“一個協調組織中人們的質量保持和質量改進努力的有效體系,該體系是為了用最經濟的水平生產出客戶完全滿意的產品?!盜SO9000 給出的定義是指“在組織建立的對質量進行指揮和控制的管理體系(To direct and control an organization with regard to Quality)”。所以說質量管理
8、體系首先是一種管理體系,與人力資源管理體系、財務管理體系類似,是各種要求、資源、治理等有機組成的一個整體,是系統化的,是全局的而不是局部的。其次,質量管理體系是組織內部建立的,是協調組織內部的人、資源,為組織能夠持續滿足客戶需求、提高客戶滿意度而服務的。它是將資源與過程結合,以流程管理方法進行的系統管理。企業根據自身特點,選用若干體系要素加以組合,形成系統。質量管理體系一般包括管理職責、資源保障、價值創造以及度量分析與改進四大要素(見圖 1-1,來自 ISO9001)。其中價值創造(又稱產品工程)涵蓋了從確定顧客需求、設計研制、生產、檢驗、銷售、交付之前全過程的策劃、實施、監控、糾正與改進活動
9、的要求,是企業實現客戶價值的最核心要素,也是企業流程優化的重中之重。圖 1-1 質量管理體系5再次,質量管理體系是為實現質量方針和目標而構建的,與組織的使命和戰略方向是一致,如同環境管理體系是為環境服務的,職業健康安全管理體系是為職業健康和安全服務的,質量管理體系是為實現質量目標所必需的,是組織其他目標,如收入、盈利等的有效支持與保障。最后,質量管理體系采用的手段是管理。所謂管理,是“用來指揮和控制組織的相互協作的活動,達成既定的組織目標”。因此,需要公司自上而下地推進,全員參與,并制度化、標準化,從而形成企業獨特的文化。1.21.2 質量管理體系的原則質量管理體系的原則質量管理體系的有效實施
10、,因不同組織、不同行業的屬性不同,在具體實施方法上會有所不同。但從“道法術器”的基本原理層面,它有著質量管理體系所必備的基本“原則”。作為“原則”,它是一種基本的信念,理論或規則,對完成某項工作的方式具有重大影響。而“質量管理原則”,類似軟件開發的敏捷宣言一樣,是一整套公認的基本信念、規范、規則和價值觀,可以用作質量管理的基礎。國際標準化組織的 ISO9000 標準族定義了質量管理的 7 大原則(在 ISO 9001 質量管理體系 2008 年版及以前的版本中,是用的質量管理八項原則)。而在 ISO 9001:2015 質量管理中,刪減了“系統管理方法”一項,它們是由 ISO/TC176 工作
11、組的國際專家開發和更新的(ISO/TC176 負責制定和維護ISO 的質量管理標準),分別是原則 1以客戶為中心、原則 2領導作用、原則 3全員參與、原則 4流程方法、原則 5持續改進、原則 6循證決策和原則 7關系管理。1.2.11.2.1 原則原則 1 1 以客戶為中心以客戶為中心質量管理的主要重點是滿足客戶需要并努力超越客戶期望。只有當組織能做到吸引客戶,并維持、提振客戶和其他利益相關方的信心時,才可以獲得持續的成功。以客戶為中心,可以提高客戶價值,增加客戶滿意度和忠誠度,從而維持長久的業務關系。通過組織的客戶關注,提升了組織聲譽,從而進一步擴大客戶群體,增加組織的收入和市場份額。以客戶
12、為中心,可以讓企業通過與客戶全方位地互動,為客戶創造更多價值。而這些互動,包括了客戶的溝通,高層的互訪,客戶需求的討論,售后的反饋,客戶的申訴等。每一次互動,提供了了解客戶和其他利益相關方當前和未來需求的機會,保障了組織的持續成功。針對 B 端客戶,常見的客戶聚焦的行動包括了如何識別組織的直接或間接客戶,了解客6戶當前和未來的需要和期望(Needs vs.Want),將組織的管理目標與客戶需要和期望聯系起來,并充分溝通客戶需要和期望。同時,需要組織從產品的規劃、設計、開發、生產到產品的交付和支持及服務,實現制度化、流程化,以滿足客戶的需要和期望,并能夠度量和監控客戶滿意度,采取適當的措施,以積
13、極、主動地管理客戶關系,確定并采取可能影響客戶滿意度的利益相關方的需要和期望。1.2.21.2.2 原則原則 2 2 領導作用領導作用企業各級領導者需要建立統一、一致的使命、愿景和戰略方向。企業領導者應將質量作為組織重要戰略之一,落實在行動中,并努力創造條件,激勵企業全員參與實現組織的質量戰略目標。領導的積極參與和重視,能夠提高實現組織質量目標的效率和效果。企業領導者身體力行地實踐質量管理的理念,能夠讓全體員工“聽其言、觀其行”,自覺實踐領導的意圖,使質量戰略的實施,達到事半功倍的效果。建立統一目標,能夠使組織調配其戰略、政策、流程和資源。通過組織的制度及流程協調資源,改變“人治”的管理模式,
14、改善組織各層級和職能部門之間的溝通,降低溝通成本。同時,創造條件,激勵員工積極參與質量目標建設,則能夠發展與改善組織及其員工交付預期結果的能力,集中優勢,有效實現其目標。不同企業,其管理風格各不相同,但歸納總結起來,質量管理成功的企業,如豐田、摩托羅拉、寶馬等,都能夠做到:及時、準確地傳達組織的使命、愿景、戰略、政策和流程;對組織各層級的行為做出規范,創建并維持公平的環境,建立共享的價值和道德規范,并培育信任和誠信的文化。企業應該鼓勵整個組織對質量的承諾,各級領導起到模范帶頭作用。企業的領導作用還包括為員工提供所需的資源、培訓。并充分授權、激發、鼓勵、認可員工的貢獻。1.2.31.2.3 原則
15、原則 3 3 全員參與全員參與擁有具備競爭力的、高度授權、高度投入的團隊是整個組織持續創造和交付客戶價值的關鍵所在。通過認可每一個人的貢獻,并建立授權機制和完善的培養體系,這可以提高每一個個體的能力,從而促使每個人都參與實現組織的質量目標。全員參與,重要的是尊重每一個個體都是“不一樣的煙火”,要使所有人都參與進來。7這樣,組織的全體成員能夠更好地理解組織的質量目標,激發實現該目標的動力。通過全員參與,能夠促進人們積極參與質量改善活動,從個人方面,可以提高個人主動性和創造力,有益于個人職業發展。對組織而言,能夠在組織中增強信任與合作,提高員工對共享價值的關注,有利于整個組織文化的形成。要實現全員
16、參與,組織的管理風格及人事制度可以從幾個方面強調:溝通透明:讓組織的每一位成員了解,作為個體,對質量目標實現的重要性及其貢獻的價值;文化倡導:在組織中倡導“協作”而不是“背鍋”的文化,鼓勵員工謹慎冒險精神,贊賞、認可員工的貢獻;工作氛圍:創建公開透明的工作氛圍,鼓勵知識和經驗的共享。如有可能,實施員工滿意度調查,及時溝通調查結果并采取改進措施;評價體系:讓員工能對個體目標作出自我評價,并自驅改進,并對其進步及時正向反饋。1.2.41.2.4 原則原則 4 4 過程(過程(ProcessProcess)方法)方法“過程(Process)”,在某種意義上,被某些自媒體、宣傳媒介妖魔化,被定性為外資
17、企業在國內發展不順的絆腳石。然而,作為工業革命的重要產出物,我們需要意識到,只有將企業經營活動理解為相互關聯、相互依賴的過程,以流程管理作為中樞神經,才能促使企業各部門如同一部精密鐘表的零部件一樣,相互協調、密切合作,成為一個連貫的,高效的系統。只有這樣,企業交付的產品或服務質量才能更穩定,從而提振干系人對未來預期的信心,而不必擔心出現飄忽不定的大起大落。企業的經營活動是由一系列相互關聯、相互依賴的過程活動構成的一個有機整體。而質量管理體系則是描述這些企業活動過程,包括但不限于必要的體系文檔,過程交互,資源管理,度量系統,人員配置等。所以,只有理解質量管理體系的內涵,系統化地管理該體系,組織才
18、可以優化其經營活動,提高組織產出。應用流程管理的方法,就是促使組織對滿足內、外客戶需求的理解保持一致性,企業經營、生產和研發過程強調對客戶的增值而不是部門利益保護。流程管理的方法需要根據客觀事實、數據及信息對經營、生產和研發過程持續改進,確保流程與時俱進,提高組織的適配性和敏捷性。通過流程管理的方法,可以最大化地利用資源,優化企業經營表現,打穿部門墻,降低部門間的內耗。而流程體系化,將企業主要的客戶增值流程通過質量管理體系顯性表達,能夠聚焦于重要的和關鍵的客戶增值流程及其改進機會,使各8經營活動之間順暢銜接,保障了企業交付的一致性及穩定性,減少了內卷,提振了企業干系人對企業經營的效果及效率的信
19、心。需要強調的是,流程管理方法,不是簡單地把經營活動文檔化。實際上,流程管理更像產品的設計,需要高屋建瓴的系統化思維,從架構設計到詳細設計、各流程域、流程模塊要環環相扣,如同齒輪一樣,協調運作。流程體系的建設,可按下列五步法進行:(1)行動前,了解組織目前的能力和資源約束、管理干系人的期望。(2)確定流程體系的目標并識別達成該目標所需要的必要流程。(3)確定流程之間的依存關系。(4)系統化管理流程及其相互關聯的流程,對單個流程的修改要分析其對整個系統的影響。(5)建立流程管理的職責及授權和問責制度,保障流程體系能夠制度化、標準化,并落地執行。通常,在傳統 B 端行業,如汽車行業,這部分職責落在
20、質量管理部門。除此之外,在實施流程管理方法過程中,我們還需要:確保信息的透明、通暢。對整個系統進行監控、分析和績效評估;針對可能影響流程和整體質量管理體系輸出成果的風險進行管理。1.2.51.2.5 原則原則 5 5 持續改進持續改進成功的組織是非常關注持續改進的。只有持續改進與優化,組織才能保持當前的績效水平,對內部和外部環境的變化及時做出反應并創造新的機遇。持續改進是組織自我愈合、自我改進的重要原則。如質量原則 QMP 4 所言的流程化管理,只有通過持續改進,才能保障流程性能改進,組織能力提升和客戶滿意度增強。如果想要進行持續改進,就需要了解持續改進的方法和技巧,培養組織及員工追根溯源的精
21、神,定義并執行糾正、預防措施的能力。同時,增強了對內部和外部的風險、機遇的預期和反應能力,以及組織的創新能力。持續改進,可以是自上而下的改進,也可以是自下而上的改進。通常,系統性的重大改進或對組織影響深遠、范圍廣泛的改進,都需要自上而下的領導力支持,以確保改進的效果。但不管何種改進,都需要組織在各個級別建立改進目標,倡導組織持續改進的文9化;都需要定義和部署持續改進相關的流程,遵循項目管理的方法,在組織中實施改進項目。同時,從技能上,為確保人們有能力成功地促進和完成改進項目,應在各個層次上教育和培訓員工如何應用基本的持續改進工具和方法,例如,質量管理基本工具、精益工具、六西格瑪工具等,來實現改
22、進目標。在改進文化成熟的公司中,常見的持續改進的方法通常遵循一下原則:(1)識別改進的機會(problem statement)。(2)得到利益相關方的支持,成立改進項目。(3)跟蹤、評審和審計改進項目的計劃、實施、完成和交付物,確保改進的效果。通常,改進過程的實施可以按照 DMAIC1的小迭代模式快速推進。(4)如果改進效果顯著,將改進事項應用到新的商品、服務和流程中,并將之制度化,確保改進成果能夠保持。(5)認可并表揚改進項目團隊。1.2.61.2.6 原則原則 6 6 循證決策循證決策基于數據和信息的分析和評估,能夠讓我們的決策更有可能產生預期的結果。我們都知道,決策是一個復雜的過程。它
23、的復雜性在于決策時太多的不確定性因素。這些因素通常涉及多種類型和來源的輸入,以及對輸入的主觀解讀。所以,了解事物的深層因果關系及可能的、預期之外的后果,對決策是非常重要的。通過事實、證據和數據分析,推理預演可能各種方案,可以有效提高我們對決策的客觀性和決策信心。循證決策,可以幫助我們改善決策的流程和效率、有效度量流程的績效及組織取得既定目標的能力。循證決策,還可以提高我們的運營效率,通過對歷史經驗數據的分析,沉淀知識,增強組織自我審查、挑戰各種決策選項的能力。要支持循證決策,組織需要利用系統化的管理手段,制定、測量和監控與組織管理績效相關的關鍵指標,收集、萃取數據,并能夠最大程度地做到數據的透
24、明,促使全員可以有效方便地訪問數據,確保人員有能力根據需要分析和評估數據。循證決策需要數據,但并不是完全依賴數據。由于數據在收集過程中可能被污染,我們需要確保數據和信息足夠準確、可靠和安全。要使用適當的方法,比如假設檢驗、帕累托圖(Pareto)、散1DMAIC:是六西格瑪管理中流程改善的重要工具,指定義(Define)、測量(Measure)、分析(Analyze)、改進(Improve)、控制(Control)五個階段構成的過程改進方法,一般用于對現有流程的改進,包括制造過程、服務過程以及工作過程等等。10點圖等圖表、回歸預測等,全面分析評估數據和信息。同時,根據證據做出決定并采取行動,需
25、要結合過去的經驗和直覺而不是完全放棄。1.2.71.2.7 原則原則 7 7 關系管理關系管理為了獲得持續的成功,組織需要管理與利益相關方(例如供應商)的關系。利益相關方是組織生態環境的重要組成部分,包括了供應商、合作伙伴、戰略聯盟、加盟商、投資伙伴、社區等。他們的績效會直接影響組織的績效。當組織管理與所有相關方的關系,優化其對自己績效的影響,則更有可能獲得持續的成功。其中,對供應商和合作伙伴的關系管理尤為重要。管理完善的供應鏈,可提供穩定的商品和服務。通過對供應商和合作伙伴的關系管理,可以有效識別增強組織績效。與利益相關方理解彼此的目標和價值,甚至通過共享資源、技能以及管理與質量相關的風險,
26、增強為利益相關方創造價值的能力。要對利益相關方進行管理,首先,組織需要確定誰是利益相關方及其與自己的關系。常見的利益相關方包括供應商、合作伙伴、客戶、投資者、員工以及整個社會。其次,我們需要確定需要管理利益相關方關系的優先級。同這些利益相關方建立長期戰略與短期利益的平衡關系,與其共享信息、專業知識和資源。最后,需要度量利益相關方的績效并酌情向其提供績效反饋,建立改進計劃,與供應商、合作伙伴和其他相關方共同進步。當然,對供應商和合作伙伴的成就及進步也要及時鼓勵和認可。1.31.3 質量管理體系的目的和意義質量管理體系的目的和意義1.3.11.3.1 質量管理體系重要性質量管理體系重要性質量管理體
27、系為廣大企業完善管理、提高產品和服務質量提供了科學指南,同時為企業走向國際市場找到了“共同語言”。近些年,各行各業將加快推進國際標準化進程,“標準貫徹”變得更加迫切。毋庸置疑,“標準貫徹”不是萬金油,不能包治百病,但通過質量管理體系的建立及其符合國際標準的選?。?.增強了企業全體員工的質量意識與管理意識,明確了各項管理的職責和工作的程序,促使企業的管理工作由“人治”轉向“法治”,真正做到了凡事有人負責、凡事有章可循、凡事有據可查、凡事有人監督,實現了“以預防為主”。112.規范了企業的作業程序,明確了各部門和全體員工的職責和權限,預防并控制了不合格的發生,降低了企業質量管理成本。3.通過定期組
28、織質量檢查、質量審核活動,能夠及時發現和找出經營管理活動、服務質量方面存在的問題和薄弱環節,并進行有效糾正,提高了企業整體經營管理水平和質量監控能力,為企業實施全面的科學管理奠定了基礎。4.貫徹了“以人為本”的原則,全面提高了員工的業務技能和綜合素質,為企業長遠發展打下了堅實的基礎。5.圍繞“讓客戶滿意”及時認真地處理客戶投訴或意見,不斷滿足客戶需求與期望,贏得客戶信任,提高客戶滿意度,提升企業的社會形象和市場競爭力。1.3.21.3.2 質量管理體系的收益質量管理體系的收益質量管理體系的作用,如果企業能夠真正踏踏實實將其落地執行,將會得益良多,大大節省成本,提高效率。1.1.提高組織的形象和
29、信譽提高組織的形象和信譽當顧客看到您被認可的認證機構認證,他們會明白,您已經實施了一個以滿足顧客要求和改進為關注焦點的體系。他們會更加相信您的承諾。2.2.提高顧客滿意提高顧客滿意質量管理體系的一項主要原則是識別并滿足顧客要求和需要,以提高顧客滿意為關注焦點。顧客滿意度提高了顧客的回頭率也就相應提高。3.3.全面整合的過程全面整合的過程質量管理體系原則要求過程方法,您不僅看到組織中的各個過程,也看到這些過程的相互作用,這樣就更容易識別到組織內需要改進和節約資源的領域。4.4.使用基于證據的決策使用基于證據的決策確保在證據充分的基礎上作出決策,是質量管理體系成功的關鍵。確保決策有充分的證據支持,
30、就可以把資源用到刀刃上,以最好的效果糾正問題、改進組織的效率和效益。5.5.創造持續改進的企業文化創造持續改進的企業文化12以持續改進作為質量管理體系的主要輸出,您在時間、資金和其他資源上的節省可見日益增加。將持續改進作為企業文化,可將員工的工作重點放到對他們直接負責的過程的改進。6.6.員工參與員工參與在某個過程中工作的員工,是改進該過程的最好幫手。調整員工的工作重點,讓他們不僅管理,而且還參與改進過程,他們會更加與組織休戚與共。1.3.31.3.3 軟件企業質量管理體系的作用軟件企業質量管理體系的作用建立好的研發質量管理體系對于企業的軟件開發和研發工作非常重要。1.1.提供高質量的軟件產品
31、提供高質量的軟件產品企業最終要提供的是能夠滿足客戶需求的軟件產品,在軟件開發過程中,建立好的研發質量管理體系,通過各種規范和標準將研發過程的每個環節予以衡量和標識,從而掌握產品開發并控制系統開發風險,能夠在代碼、需求、文檔、測試等方面綜合考慮,確保軟件質量(參閱 ISO25010 中有關軟件質量的定義)達到客戶預期。強調高品質的開發過程,具有在項目中提高軟件產品質量標準,降低產品缺陷率的能力。在市場競爭激烈的今天,這一點對于企業的成功至關重要。2.2.提高軟件開發效率和降低成本提高軟件開發效率和降低成本通過研發質量管理體系著重的質量內建(Build-In Quality)、模塊化和重用性,高質
32、量的研發成果相關的潛在危險和維護成本將降低,從而系統性的降低整個的開發成本。在長期的軟件開發過程中,缺陷率更低的軟件需要更少的維護工作,節約開發成本,同時提高了開發的質量。3.3.提高客戶滿意度和信任度提高客戶滿意度和信任度通過完善的研發質量管理體系,提供高品質的軟件產品,讓客戶對企業的開發和研發能力產生信任,提高客戶對企業品牌和產品的滿意度,為企業長期的發展壯大奠定良好的基礎。從而推動企業的長期穩定發展。4.4.強制自我評估和改進強制自我評估和改進建立研發質量管理體系過程中,普遍會針對流程文檔和內部標準和規程進行自我評估、調整和改進。研發質量管理體系要求及時發現研發中的問題,能夠更快地提高研
33、發過程13的質量,為最終產品提供更好的品質保證。長期的一個處于不斷成長和改進狀態的研發質量管理體系能夠有力地支持研發過程。研發質量管理體系的建立對于企業來說具有非常高的實踐價值。通過建立研發質量管理體系,能夠確保軟件開發的高品質,提高開發效率和降低整個研發過程的成本,并且提升公司在市場中的競爭力。15第二章 確立軟件質量管理體系建設思路2.12.1 分析現狀問題分析現狀問題分析現狀問題是指對當前軟件研發過程的質量狀況進行全面的分析和評估,找出存在的問題和不足之處。以下是分析現狀問題的一些要點:1.1.收集數據收集數據收集軟件研發過程中的各種數據,包括缺陷率、任務完成時間、代碼質量等。這些數據可
34、以反映軟件研發過程的質量狀況,為后續的問題分析提供依據。2.2.分析問題分析問題對收集到的數據進行深入分析,找出軟件研發過程中存在的問題和不足之處??梢圆扇《喾N分析方法,如趨勢分析、因果分析、魚骨圖分析等,以便更好地挖掘問題的本質和原因。3.3.歸納總結歸納總結將分析結果進行歸納和總結,找出主要的問題和瓶頸環節。針對不同的問題,可以采取不同的解決方案和方法,如改進流程、優化工具、提升技能等,以便更好地提升軟件研發過程的質量。需要注意的是,分析現狀問題需要全面、客觀、準確地進行,以確保分析結果的真實性和有效性。同時,需要根據實際情況不斷調整和完善,以便更好地適應軟件研發過程的變化和需求。2.22
35、.2 確定建設范圍確定建設范圍確定建設范圍是指在進行軟件研發質量管理體系建設時,明確建設的范圍和目標,以便有針對性地進行建設工作。以下是確定建設范圍的一些要點:1.1.明確建設目標明確建設目標確定軟件研發質量管理體系建設的目標,如提高軟件質量、降低缺陷率、優化研發流程16等。建設范圍應該圍繞這些目標進行規劃和設計。2.2.確定建設范圍確定建設范圍根據建設目標,確定軟件研發質量管理體系的建設范圍,包括需要涵蓋的部門、團隊、流程等。建設范圍應該根據實際需求進行合理劃分,避免過于寬泛或過于狹窄。3.3.確定建設內容確定建設內容根據建設范圍,確定軟件研發質量管理體系的建設內容,包括需要建立的質量管理流
36、程、質量保證措施、質量評估標準等。建設內容應該與建設目標相匹配,以便有效實現建設目標。4.4.確定建設周期確定建設周期根據建設范圍和建設內容,確定軟件研發質量管理體系的建設周期,包括建設開始時間、建設結束時間、建設周期內的具體計劃等。建設周期應該合理安排,以便在保證建設質量的同時,盡快實現建設目標。需要注意的是,確定建設范圍是軟件研發質量管理體系建設的重要環節,應該根據實際需求進行合理規劃,確保建設工作的有效性和可行性。同時,在建設過程中應該不斷調整和完善,以便更好地適應軟件研發過程的變化和需求。2.32.3 獲取管理支持獲取管理支持獲取管理支持是指在進行軟件研發質量管理體系建設時,獲取高層管
37、理者的支持和參與,以確保建設工作的順利推進和成功實施。以下是獲取管理支持的一些要點:1.1.明確管理支持的重要性明確管理支持的重要性向高層管理者介紹軟件研發質量管理體系建設的重要性,包括提高軟件質量、降低風險、提升組織能力等。使高層管理者認識到他們在建設工作中的重要性和作用。2.2.建立溝通渠道建立溝通渠道與高層管理者建立有效的溝通渠道,及時匯報建設進展、解決問題、獲取支持等。保持良好的溝通,使高層管理者能夠了解建設工作的具體進展和困難,并提供必要的支持和幫助。173.3.展示成果和效益展示成果和效益在建設過程中,及時展示取得的成果和效益,如降低缺陷率、提高軟件質量、提升客戶滿意度等。讓高層管
38、理者看到建設工作的實際效果,以便更好地獲得他們的支持和認可。4.4.培訓和管理層參與培訓和管理層參與對高層管理者進行軟件研發質量管理的培訓,使他們了解建設工作的具體內容和流程。同時,邀請高層管理者參與建設工作中的重要活動和會議,以便更好地推動建設工作的開展。5.5.定期匯報和監控定期匯報和監控定期向高層管理者匯報建設工作的進展情況、存在的問題和解決方案等。同時,建立監控機制,及時發現和解決問題,確保建設工作的順利進行。需要注意的是,獲取管理支持是軟件研發質量管理體系建設的關鍵環節,應該高度重視并與高層管理者保持有效的溝通和合作。同時,在建設過程中應該不斷調整和完善,以便更好地適應軟件研發過程的
39、變化和需求。19第三章 制定質量政策和質量目標3.13.1 質量政策制定質量政策制定質量政策是對組織質量理念的高層次詮釋和承諾,指導質量管理體系建設的方向。制定質量政策需要注意以下實踐步驟:1.1.調研分析階段調研分析階段通過調查和訪談,分析現有質量問題和需求改進的方面,確定質量政策需要重點關注的領域。2.2.政策草稿階段政策草稿階段起草質量政策的內容框架,明確質量政策需要表達的理念、原則和價值取向。內容上要簡潔明確,易于傳播。3.3.征求意見階段征求意見階段將質量政策草稿發布,在公司內部廣泛征求員工和管理層的意見建議,吸收整合有價值的想法。4.4.評審修改階段評審修改階段組織評審會,由公司高
40、層和質量管理團隊組成的專家進行評審,提出修改意見,進一步優化完善。5.5.發布實施階段發布實施階段質量政策經過評審后,由最高管理者發布和批準,并在公司范圍內傳達貫徹。通過培訓、議事等使員工理解質量政策。6.6.持續評估階段持續評估階段實施一段時間后,評估質量政策的實際成效,如產生的影響和改變,根據情況對政策進行動態調整和更新。20質量政策的樣式應該簡短和原則性。這主要基于以下考慮:質量政策定位為高層方針,其作用是闡釋和導向,而不應過于具體;簡潔的語句可以增強可傳播性和可記憶性;原則性指導可以適應組織的變化和長期發展;具體執行要求應在質量目標和質量管理流程中展開;但是,過于空泛的質量政策也會顯得
41、形式化和宣傳式,為使質量政策兼具指導性和可操作性,建議:在簡潔原則的前提下,增加某些具體的管理訴求;結合組織實際,使政策內容更具針對性;在政策中連接到質量目標,形成閉環;不時復核政策,確保與組織發展方向一致。如果能在簡潔和具體之間找到平衡,使質量政策既有原則性又有可操作性,就能夠使之成為真正有價值的指導文件。質量政策示例質量政策示例 1 1:A A 公司質量政策公司質量政策我們公司立志成為最值得信賴的軟件解決方案提供商,致力于為客戶提供高質量、高效率的軟件產品和服務。為達成這一愿景,我們公司堅持以下質量理念:以客戶為中心,傾聽客戶聲音,持續優化客戶體驗;培育質量優先文化,使質量意識深入員工日常
42、工作的方方面面;加強過程管控,落實質量管理體系,持續改進軟件生命周期中的各環節;強化預防理念,從源頭減少缺陷的產生;開展持續的質量改進,確保產品和服務持續進步和超越客戶期望。21我們全體員工將致力于貫徹這些質量理念,以贏得客戶信任和滿意度。公司管理層也將提供全力支持和資源保障,以實現質量政策中闡述的承諾。質量政策示例質量政策示例 2 2:B B 公司質量政策公司質量政策我們公司立志成為業界公認的高質量軟件提供商。為實現這一目標,我們將遵循以下質量方針:以客戶為中心,深入理解客戶需求,提供可靠、高效的軟件解決方案;培育全員質量文化,營造積極主動的質量改進氛圍;強化過程管控,持續優化全生命周期質量
43、管理流程;加強質量數據監測和分析,及時發現和解決質量問題;開展質量培訓和交流,提升全員質量管理意識;加大質量管理基礎設施建設投入;鼓勵創新,運用新工具、新技術提高質量效率;與客戶和合作方保持高度的質量共識。我們全體員工承諾恪守質量政策,與客戶和合作伙伴一起,持續提升產品和服務的質量水平。3.23.2 質量目標設定質量目標設定3.2.13.2.1 概述概述質量目標的設定是質量管理的關鍵環節之一,合理的質量目標將指導質量管理實踐的開展。質量目標設定分為長期和短期。長期質量目標是組織對產品質量的承諾,也是組織持續改進產品質量,傳播質量文化,提高客戶滿意度的指南針。短期質量目標是組織在年內需要達成的具
44、體質量目標,短期質量目標可以是組織級的復合指標,也可以是項目級別的項目交付質量目標。22組織質量目標,需要分解落實到具體的戰略行動或項目,并清晰確認責任人/單位,確保目標的逐步,有序順利實現。設定質量目標時,需要注意以下幾點:1.1.質量目標要具體、可測量質量目標要具體、可測量質量目標不能停留在語義模糊的階段,要設定具體的、可測量的目標指標,如“降低產品缺陷率到 0.5%”??蓽y量的目標便于衡量進度和考核達成情況。2.2.質量目標要與業務目標相聯動質量目標要與業務目標相聯動質量目標要緊密服務于業務目標,比如降低質量成本、提升用戶滿意度等。要進行業務影響分析,評估質量目標對業務結果的促進作用。3
45、.3.重點關注客戶需求重點關注客戶需求質量目標的制定要以客戶需求為導向,比如提高產品易用性、用戶體驗等??梢酝ㄟ^客戶調研、質量數據分析等確定客戶關注的質量要點。4.4.考慮現有資源約束條件考慮現有資源約束條件在設定質量目標時,要考慮現有的資源條件、能力限制,不要設定超出可實現范圍的目標。目標要與現狀匹配,同時也要有適當的提升空間。設定質量目標時,需要考慮對應的質量指標的數據收集的可行性和采集成本,如有必要,實施改進項目,實現數據采集的數字化手段。5.5.質量目標要層層分解質量目標要層層分解高層的質量目標需要分解為各部門、團隊的質量目標,還要分解為每個人員的質量目標,形成全員參與的目標體系。6.
46、6.開展質量目標評審開展質量目標評審設定的質量目標需要提交評審,由質量管理團隊、相關部門主管進行評審,確保質量目標合理、可實現。還可以組織專題評審會進行討論。7.7.持續監控和評估目標達成情況持續監控和評估目標達成情況23質量目標達成情況要定期進行監控,如果出現需要調整的情況,要及時更新和調整質量目標,做到動態管理。3.2.23.2.2 常見質量目標指標常見質量目標指標1.1.產品完成度產品完成度(1)需求通過率(已通過需求/已計劃需求),體現需求的完成度,也可以統計為測試用例通過數/計劃的測試用例總數計算(用測試用例計算隱含了默認用例覆蓋是完全的這樣的前提條件)。(2)功能點通過率(已通過功
47、能點/已測試功能點),同上,當需求規模比較大時,功能點統計會更有價值,難點在于,需求功能點需要有額外的過程進行確認,一般在測試分析階段統計拆分功能點。(3)風險規避情況(已規避風險/已預估風險),產品已知風險的應對情況,需要風險分析過程的支持。(4)需求穩定性(需求變更數/需求總數),衡量一個周期內需求的穩定性。2.2.產品質量產品質量(1)測試通過率(已執行測試數/已計劃測試數),比較直觀的數據,通過測試的通過率來衡量產品質量。(2)缺陷密度(缺陷總數/千行代碼數),缺陷密度對于產品質量而言是非常直觀有價值的,但由于千行代碼數這一度量并不多用,對測試而言也可能獲取存在難度,所以經??梢赞D化為
48、(缺陷總數/功能點數)*100%、(缺陷總數/對應模塊)(缺陷分布率)、(缺陷總數/交付需求數)*100%等計算方式,但是具體選擇哪一種計算方式還需要依據團隊相關實踐來決定。(3)缺陷嚴重級別分布(對應嚴重級別缺陷數/缺陷總數),缺陷的數量并不能總是體現出產品實際質量,比如最嚴重級缺陷過多顯然是一個問題,所以缺陷統計應該體現數量和嚴重級別的二維分布。(4)缺陷類型分布(對應類型缺陷數/缺陷總數),通過對應缺陷類型分布比例來衡量軟件某一方面的質量。24(5)缺陷模塊分布(對應模塊缺陷數/缺陷總數),通過對應缺陷模塊分布比例來衡量軟件某個模塊的質量。(6)缺陷修復率(已修復缺陷數/缺陷總數),缺陷
49、已被修復的比例統計。3.3.測試完成度測試完成度(1)用例覆蓋率(已設計用例數/計劃設計用例數),用于監控測試設計的進度情況。計劃設計用例數這一數字比較模糊可能來自估算??梢圆捎米韵露系姆绞绞占杭醋屇K測試負責人進行局部數據收集,再匯總統計。(2)測試執行率(已執行的測試數/計劃執行的測試數),測試已被執行的情況,用于測試進度跟蹤。執行率并不關注測試失敗情況,進一步細化可以展開統計測試通過、失敗、阻塞和未執行的比率。(3)測試通過率(已通過測試數/計劃執行的測試數),測試通過比率。4.4.研發過程質量研發過程質量(1)缺陷生存周期(缺陷生存總時長/缺陷數),通過統計缺陷從打開到關閉的平均時
50、長,衡量研發團隊的缺陷修復能力。(2)測試用例命中率(缺陷數量/用例數量),通過用例發現的缺陷數量統計,衡量測試設計的有效性。(3)二次故障率(缺陷二次重開數量/缺陷總數量),缺陷多次重開會造成缺陷修復周期拉長,說明 1.開發修復缺陷能力存好 2.測試團隊缺陷壓量存好 3.開發理試之間溝通效率存好,需要具體分析。(4)缺陷有效率(有效缺陷數量/缺陷總數量),測試團隊提交的缺陷有多少比重是有效缺陷,應該就具體缺陷失效原因進行分析。(5)缺陷移除率(缺陷當階段移除數量/當階段引入缺陷數量),用干統計研發等階段的缺陷數量和在當階段被解決的比例,實際是測試盡量介入的體現,比如需求中的缺陷需要在當階段通
51、過需求評審等手段探測并解決,此數據統計起來有一定難度。255.5.計劃偏離度量計劃偏離度量(1)工作量偏離(實際工作量-計劃工作量)/計劃工作量),用于衡量計劃的合理度,是否有大量計劃外工作未被納入估算當中。26(2)工作進度偏離(已超出計劃進度的時間),通過統計工作進度的偏離來揭示項目時間風險。(3)預算使用比例(已花費測試預算(人/天)/計劃總測試預算),用于計算測試預算的花費情況。(4)問題等待時間(具體問題等待解決時間),等待時間通常難以被計劃,通過計算等待時間可以幫助衡量項目瓶頸所在,并為后續項目組織提供思路??杉毣癁樾枨蟮却龝r間,測試阻塞時間等。6.6.產品質量趨勢產品質量趨勢(1
52、)缺陷到達率(缺陷數量/時間周期),周期性的缺陷接出數量,比如月缺陷到達率,周缺陷到達率,通過持續時間的到達率監控,可以體現項目產品的趨勢。(2)缺陷收斂度(缺陷遺留數量/時間周期),通過統計遺留缺陷隨時間推移的趨勢,判斷后續產品質量的走向。理想情況下,單迭代周期內缺陷數量經過集中爆發后,應呈持續走低態勢。(3)缺陷引入率(新增缺陷數量/新增千行代碼數),用以衡量產品的增量和修改對于質量的影響,也為后續產品的更新迭代提供參考指標。28第四章 建立質量型組織4.14.1 質量型組織設計質量型組織設計質量型組織設計是指在一個組織內部建立一種質量文化,并通過合理的組織結構和職責分工,確保軟件研發過程
53、的質量。以下是質量型組織設計的一些要點:1.1.質量型組織結構的確定質量型組織結構的確定根據軟件研發規模和組織規模,設計合適的組織結構,明確各級別之間的職責和關系。例如,可以設立質量管理部門或質量保證小組,負責軟件研發質量管理體系的建立和實施。2.2.質量職責的分配質量職責的分配將質量職責分配給各個部門或崗位,確保每個部門或崗位都能夠承擔相應的質量責任。例如,開發部門負責編碼和測試,質量管理部門負責質量保證和質量控制。3.3.質量流程的設計質量流程的設計設計合理的質量流程,包括代碼審查、測試、缺陷管理等,確保每個環節的質量得到有效控制。同時,需要明確每個環節的責任人和流程執行的標準,以便在具體
54、實施過程中進行統一的指導和要求。4.4.質量工具的配備質量工具的配備根據需要配備相應的質量工具,例如自動化測試工具、代碼審查工具、缺陷跟蹤工具等。同時,需要明確每個工具的責任人和使用方法,確保工具的有效使用和順利運行。5.5.質量計劃的制定質量計劃的制定制定軟件研發的質量計劃,明確軟件研發的質量目標、質量標準、質量保證措施等。同時,需要明確質量計劃的執行人和執行時間,確保計劃的有效實施。需要注意的是,質量組織設計需要根據具體的組織規模、研發流程和質量要求進行具體的設計和實施。同時,需要根據實際情況不斷調整和完善,以確保軟件研發過程的質量得到有效控制。294.24.2 質量角色定義質量角色定義質
55、量角色定義是指在一個組織內部明確與軟件研發質量相關的各個角色及其職責和權力。以下是質量角色定義的一些要點:1.1.質量經理質量經理質量經理是軟件研發質量管理體系的核心角色,負責制定和執行軟件研發的質量策略,監督和管理軟件研發過程的質量,確保軟件產品的質量符合要求。2.2.質量工程師質量工程師質量工程師是負責軟件研發質量的技術專家,負責軟件研發過程中的質量保證和控制,包括缺陷預防、缺陷檢測、缺陷分析和修復等。3.3.需求分析工程師需求分析工程師負責收集、分析和管理項目需求,與產品經理和研發團隊緊密合作,確保需求的準確性和一致性。4.4.產品經理產品經理產品經理是負責軟件研發需求質量的技術專家,確
56、保將客戶需求,準確,清晰,完整地轉化為組織內部技術需求。典型的質量相關的行動包括產品定義評審,產品走查,產品驗收等。5.5.軟件架構師軟件架構師架構設計是軟件質量的基石。軟件架構師是負責軟件產品架構的質量的技術專家,確保軟件產品的架構設計的合理性,平衡軟件產品成本,產品架構的生命周期,技術實現手段與軟件質量屬性,如可用性,易用性,安全性等之間的平衡。6.6.開發工程師開發工程師開發工程師是軟件研發的主要實施者之一,負責按照軟件研發的質量要求進行編碼和測試,確保軟件產品的質量。7.7.測試工程師測試工程師30測試工程師是負責軟件測試的專業人員,負責制定測試計劃、設計測試用例、執行測試、反饋問題和
57、跟蹤缺陷等。8.8.配置管理員配置管理員配置管理員是負責軟件配置管理的專業人員,負責配置管理過程,包括版本控制、變更管理、構建和發布管理,確保軟件配置的正確性、可追溯性和一致性。9.9.項目經理項目經理項目經理是軟件研發項目的管理者,負責協調和管理整個項目的進度和質量,確保項目按照預定的時間和質量要求完成。需要注意的是,質量角色定義需要根據具體的組織結構和研發流程進行具體的設置和分配。同時,需要根據實際情況不斷調整和完善,以確保軟件研發質量的全面管理和有效控制。4.34.3 質量關系協調質量關系協調質量關系協調是指在一個組織內部協調與軟件研發質量相關的各個關系方之間的關系,以確保軟件研發過程的
58、順利進行和軟件質量的提高。以下是質量關系協調的一些要點:1.1.內部關系協調內部關系協調內部關系協調主要指在組織內部協調各個部門之間的關系,包括開發部門、測試部門、質量管理部門等。質量管理部門可以作為各部門的橋梁和紐帶,協調各部門之間的合作和溝通,確保軟件研發過程的質量得到全面管理和控制。2.2.外部關系協調外部關系協調外部關系協調主要指與組織外部的相關方之間的關系協調,包括客戶、供應商、第三方機構等。在與客戶的協調中,需要明確客戶的質量要求和期望,并確保軟件研發過程的質量能夠滿足客戶的要求。在與供應商的協調中,需要確保供應商提供的產品和服務符合質量要求,并協調供應商與組織內部的相關方之間的溝
59、通和合作。在與第三方機構的協調中,需要確保第三方機構的評估和審核符合質量要求,并協調第三方機構與組織內部的相關方之間的溝通和合作。3.3.質量問題協調質量問題協調31質量問題協調主要指在軟件研發過程中協調解決質量問題的方式和流程,包括缺陷管理、問題跟蹤、質量反饋等。在缺陷管理中,需要確保缺陷得到及時報告和反饋,并協調相關方解決和處理缺陷。在問題跟蹤中,需要跟蹤和監控質量問題,并及時向相關方反饋問題和建議解決方案。在質量反饋中,需要收集和分析質量反饋信息,并協調相關方改進和優化軟件研發過程的質量。需要注意的是,質量關系協調需要根據具體的組織結構和研發流程進行具體的協調和管理。同時,需要根據實際情
60、況不斷調整和完善,以確保軟件研發過程的順利進行和軟件質量的提高。4.44.4 質量管理組織架構質量管理組織架構4.4.14.4.1 質量管理團隊組織方式質量管理團隊組織方式質量團隊的組織方式通常是建立一個專門的質量管理團隊,負責質量管理活動和流程的執行。這個團隊通常由一些經驗豐富的專業人員組成,他們在質量管理領域具有專業知識和技能,以下是一些常見的質量團隊組織方式。1.1.質量管理部門質量管理部門建立一個獨立的質量管理部門,該部門負責整個組織的質量管理活動。這個部門通常由質量經理或質量總監領導,負責質量管理策略的制定、質量目標的設定以及質量管理過程的規劃和執行。2.2.組織級質量管理小組組織級
61、質量管理小組組織內部設立的一個專門的組織級虛擬質量管理小組,通常由質量管理部門牽頭,由各相關部門代表組成,他們具備所需質量管理知識和技能,共同制定和推動質量管理策略、指導項目團隊進行質量管理活動,以及監督和評估質量績效。比如按 CMMI 標準設立的EPG 小組,甚至是為特殊的目的成立的質量問題解決小組都屬于此類。3.3.項目級質量負責人項目級質量負責人在每個項目中指定一位質量負責人,負責項目級質量管理工作。這些負責人通常是具備質量管理背景和經驗的人員,他們負責制定和執行符合組織級質量要求的項目級質量計劃、監控項目級質量目標的實現,并協助項目團隊進行質量審核和改進活動。項目級質量負責人也有可能虛
62、線匯報給組織級質量管理小組或者質量管理部門中的成員,形成質量管理的層級關系。324.4.組織級質量管理委員會組織級質量管理委員會這是由組織級最高領導者組成的組織級虛擬委員會,該委員會確保:對組織質量管理體系的有效性承擔責任;確保制定質量管理體系的質量方針和質量目標,并與組織環境和戰略方向相一致;確保質量管理體系要求融入組織的業務過程;促進使用過程方法和基于風險的思維;確保獲得質量管理體系所需的資源;溝通有效的質量管理和符合質量管理體系要求的重要性;確保實現質量管理體系的預期結果;促使、指導和支持員工努力提高質量管理體系的有效性;推動改進;支持其他管理者履行其相關領域的職責。組織級質量管理委員的
63、具體開展形式可能是單獨的會,由質量部門最高領導牽頭,也有可能與其他最高領導層會議,例如總經理辦公會,事業部運營會議等合并。這些組織方式的選擇取決于組織的規模、結構和需求。不同的組織可能采用不同的方式或結合多種方式來建立和組織質量團隊,以確保質量管理活動得到有效執行和協調。重要的是要建立明確的角色和責任分工,以確保質量團隊能夠有效地推動質量管理工作并實現持續的質量改進。4.4.24.4.2 團隊角色團隊角色不同的質量團隊組織方式,其角色也有一定的差異性,以下給出一些角色建議。1.1.質量管理部門質量管理部門質量經理/質量總監:負責領導和管理質量管理部門,制定質量管理策略和目標,監督33質量管理活
64、動的執行,并與組織高層管理層溝通和協調。質量管理專員/質量管理工程師:協助質量經理進行質量管理工作,包括制定和更新質量管理計劃、指導和培訓團隊成員,監控和評估質量績效,收集和分析質量數據等。2.2.質量管理小組質量管理小組質量小組負責人:領導和協調質量管理小組的工作,包括制定質量管理策略和目標,分配任務,指導團隊成員,確保質量管理活動的執行和進展。質量管理專家:提供專業的質量管理知識和經驗,參與制定和改進質量管理過程和方法,指導和培訓團隊成員,協助質量問題的解決和質量改進活動的推動。3.3.質量管理代表質量管理代表項目質量管理代表:作為項目團隊的一員,負責項目的質量管理工作。制定和執行質量管理
65、計劃,監督和檢查質量控制活動,收集和報告質量指標,協助質量審核和改進活動,確保項目團隊按照質量管理要求進行工作。功能團隊質量管理代表:作為功能團隊的一員(實線或者虛線),負責功能團隊內部的質量活動,培訓輔導組織新人對流程的理解與答疑解惑,監督審核團隊成員組織級工作流程符合性,宣傳組織質量文化,培養團隊成員的質量意識,推動組織和產品質量的持續改進。4.4.質量管理委員會質量管理委員會委員會主席:主持質量管理委員會的會議,制定議程,確保會議的有效進行,促進成員之間的合作和溝通;部門代表:來自各個部門的代表,負責將部門的質量管理需求和問題提供給委員會討論,分享和推廣最佳實踐,參與質量管理政策和流程的
66、制定,協調解決組織層面的質量問題。在團隊組織方式下,質量團隊角色成員有可能存在跨職能合作,目的是共同推動質量管理和質量改進。同時團隊角色需要根據組織的具體需求和特點,進一步調整和補充角色和責任分工,以適應項目和組織的實際情況。35第五章 定義符合質量管理體系要求的流程5.15.1 流程體系設計流程體系設計設計質量管理流程體系時,需要注意以下實踐方面:1.1.流程范圍確定流程范圍確定根據組織情況和質量管理需求,確定流程體系需要覆蓋的范圍,是否包括需求、設計、編碼、測試、發布等全部軟件生命周期過程,以及需規劃的輔助性質量保證流程。2.2.現狀流程分析現狀流程分析通過流程繪制、觀察、訪談等手段,調研
67、當前的質量管理流程情況,找出存在的問題和改進點。3.3.標桿流程研究標桿流程研究研究行業內優秀公司的質量管理流程模式,借鑒其中可行的元素。同時,參考質量管理標準中對流程的規定。4.4.流程架構設計流程架構設計根據研究結果,設計流程體系的總體框架和結構,確定關鍵流程和關聯關系。采用流程圖或模型描述流程架構。5.5.細節流程設計細節流程設計在架構基礎上,詳細設計每個流程的具體內容和步驟、輸入與輸出、職責分配、資源需求等。制定流程規范文件。6.6.流程評審優化流程評審優化組織進行流程評審,由流程專家和相關角色負責人參與,提出優化意見。并根據反饋進行迭代優化。7.7.流程支撐系統設計流程支撐系統設計3
68、6考慮在流程設計時融入信息系統支持,如質量數據收集和分析系統。提高流程執行效率。8.8.流程改進計劃制定流程改進計劃制定根據設計結果,制定未來流程優化改進和持續改進的具體行動計劃。9.9.流程培訓計劃準備流程培訓計劃準備規劃對員工開展流程培訓的范圍、方式、時間等,確保員工理解并能貫徹新的流程。5.25.2 流程管理實施流程管理實施為了有效實施質量管理流程,需要注意以下實際操作方面:1.1.制定實施計劃制定實施計劃針對不同流程,確定實施的范圍、階段、時間表、資源及工作分解,形成詳細的實施計劃。2.2.組織實施小組組織實施小組由相關部門負責人及員工組成實施小組,明確小組成員的角色和責任。3.3.開
69、展培訓開展培訓對涉眾員工進行流程培訓,確保他們理解新的流程要求。4.4.完善支持系統完善支持系統配套建設或改進相關的 IT 系統,提供流程執行所需的系統支持。5.5.流程規范發布流程規范發布通過手冊、在線 Wiki 等方式,發布流程規范,便于員工查詢。6.6.組織內部分享交流組織內部分享交流通過召開流程說明會等方式,引導員工就新流程進行討論和經驗分享。377.7.規范測試運行規范測試運行在試運行階段,監督員工按規范執行,記錄問題,及時優化。8.8.正式實施正式實施通過部門會議等方式正式宣布啟動新流程,并監督落實。9.9.結果評估結果評估實施后適當時間,評估實施效果,是否達到質量和效率提升的預期
70、。10.10.持續改進持續改進根據評估結果,繼續優化流程,使之成為組織的一種習慣。5.35.3 流程體系優化流程體系優化在質量管理流程正式實施后,還需要建立常態化的流程優化和改進機制,具體實踐包括:1.1.優化機會識別優化機會識別通過員工建議、客戶反饋、質量數據分析、流程評審等方式,識別流程存在的問題點和優化機會。2.2.優化方案提出優化方案提出對應優化點,由流程管理團隊和相關角色提出具體的優化建議方案。方案需要論證優化的意義和效果。3.3.定量和定性效果分析定量和定性效果分析評估方案的效果影響,包括對質量、效率、成本等的定量和定性影響。明確優化的價值。4.4.管理層評審管理層評審由高層管理者
71、對優化方案進行評審,確定是否有必要投入資源進行優化。5.5.優化實施優化實施38對獲批準的優化方案,制定具體實施計劃,安排流程調整和員工培訓等工作,將優化落到實處。6.6.效果跟蹤驗證效果跟蹤驗證優化實施后,監測流程指標變化,以驗證優化效果是否達到預期。持續跟蹤效果。7.7.標準化和推廣標準化和推廣將經驗證的優化方案,進一步擴展推廣到其他相關流程,并形成標準化的最佳實踐。8.8.持續優化文化培育持續優化文化培育通過持續的優化實踐,培育員工的流程改進意識,使之成為組織文化的一部分。5.45.4 典型質量管理體系流程典型質量管理體系流程5.4.15.4.1 需求管理需求管理明確用戶需求和產品功能,
72、并確保需求和功能能夠被追蹤和滿足。設計并維護需求跟蹤矩陣和需求變更控制。需求評審內容和需求分工。1.1.需求質量管理的定義需求質量管理的定義需求質量管理是指通過管理和控制產品需求,確保最終產品或服務能夠滿足用戶的需求和期望。2.2.需求質量管理的重要性需求質量管理的重要性需求質量管理在整個產品開發過程中起著至關重要的作用:(1)提高產品質量:通過清晰、明確的需求,確保項目團隊在開發過程中準確地實現需求,從而提高產品質量。39(2)降低成本:有效的需求管理可以避免項目團隊在開發過程中出現偏差,確保產品設計和開發的方向正確,從而節省糾正錯誤的成本。(3)減少風險:通過保持需求的一致性和完整性,降低
73、項目中的成本和風險。(4)增強市場競爭力:提供高質量的產品可以增加客戶的滿意度,以及在市場上獲得競爭優勢。3.3.需求質量管理的流程需求質量管理的流程需求質量管理流程包括以下步驟:(1 1)需求獲取需求獲取需求的收集、分析、細化、核實并組織的步驟,并將它編寫成文檔。這個活動包括了編寫項目視圖和范圍文檔、用戶群分類、選擇用戶代表、建立核心隊伍、確定使用實例、召開聯合會議、分析用戶工作流程、確定質量屬性、檢查問題報告和需求重用等。(2 2)需求分析需求分析根據需求獲取中得到的需求文檔,分析系統實現方案。這個活動需要完成下面幾個任務:繪制關聯圖,用于定義系統與系統外部實體間的邊界和接口的簡單模型;創
74、建開發原型,當開發人員或用戶不能明確某些需求時,開發一個系統原型,這樣使得許多概念和可能發生的事更為直觀明了;分析可行性,在允許的成本、性能要求下,分析每項需求實施的可行性,明確每項需求實現相聯系的風險,包括與其它需求的沖突,涉及各類用戶的利益平衡,對外界因素的依賴和技術障礙;確定需求優先級:分析方法來確定使用實例、系統特性或單項需求實現的優先級別,以優先級為基礎確定產品版本將包括哪些特性或哪類需求;為需求建立模型,為需求建立圖形分析模型是軟件需求規格說明極好的補充說明,可以為系統需求從多個角度建模;編寫數據字典,創建數據字典數據字典是對系統用到的所有數據項和結構的定義,以確保開發人員使用統一
75、的數據定義;40應用質量功能調配,將系統特性、屬性與對客戶的重要性聯系起來,提供了一種分析方法以明確哪些是客戶最為關注的特性。(3 3)編寫需求規格說明書編寫需求規格說明書需求開發的最終成果是客戶和開發小組對將要開發的產品達成一致協議,這一協議就是通過文檔化的需求規格說明書來體現。需求規格說明書包括項目視圖和范圍文檔說明了系統的業務需求,而使用實例文檔則說明了用戶需求。這個活動需要完成下面幾個任務:采用模版:編寫軟件需求規格說明書等文檔定義一種標準模板,該模板為記錄系統需求和各種其它與需求相關的重要信息提供了統一的結構;指明需求來源:為了讓所有項目風險承擔者明白需求規格說明書中為何提供這些功能
76、需求,要能追溯每項需求的來源,來源可能是一種使用實例或其它客戶要求,也可能是某項更高層系統需求、業務規范、政府法規、標準或別的外部來源,這些來源應該記錄在需求的跟蹤能力矩陣中;為每項需求注上標號:為了滿足軟件需求規格說明的可跟蹤性和可修改性的質量標準,必須唯一確定每個軟件需求,制定一種慣例來為需求規格說明書中的每項需求提供一個獨立的可識別的標號或記號;記錄業務規范:指關于系統的操作原則,比如誰能在什么情況下采取什么動作,將這些編寫成需求規格說明書中的一個獨立部分或一獨立的業務規范文檔;創建需求跟蹤能力矩陣:建立一個矩陣把每項需求來源、定義與實現、測試它的設計和代碼部分聯系起來,這有利于需求的管
77、理和需求變更影響范圍的評估。(4 4)需求驗證需求驗證需求的驗證是為了確保需求說明準確、完整,表達必要的質量特點,需求將要作為系統設計和最終驗證的依據,因此一定要保證它的正確性。需求驗證務必確保符合完整性、正確性、靈活性、必要性、無二義性、一致性、可跟蹤性及可驗證性這些良好特征。這個活動需要完成下面幾個任務:審查需求文檔,對需求文檔進行正式審查是保證軟件質量的有效的方法。組織一個由不同代表(如用戶,分析人員,設計人員,測試人員)組成的小組,對需求規格說明書及相關模型進行仔細地檢查;依據需求編寫測試用例,根據用戶需求所要求的產品特性寫出系統的功能測試用例作為系統測試依據;41編寫用戶手冊,在需求
78、開發早期即可起草一份用戶手冊,用它作為需求規格說明的參考并輔助需求分析;確定合格的標準,需求說明中描述什么樣的產品才算滿足用戶的要求和適合用戶使用的,將合格的測試建立在使用情景描述或使用實例的基礎之上。(5 5)需求管理需求管理需求管理是一種用于組織、控制和文檔化需求的系統化方法,也是一種建立和維護用戶和開發組織對于改變系統功能的協議。需求開發的結果經驗證批準就定義了開發工作的需求基線,這個基線在客戶和開發人員之間就構筑了一個需求約定,需求管理包括在項目進展過程中維持需求約定一致性和精確性的活動?,F在很多商業化的需求管理工具都能很好的支持需求管理活動。這個活動需要完成下面幾個任務:確定變更控制
79、過程,建立需求跟蹤矩陣(Requirement Traceability Matrix,RTM):它可以幫助團隊成員跟蹤每個需求的狀態,以便進行變更影響范圍分析和驗證。RTM通常以表格或圖形形式表示,其中包含了每個需求的標識符、狀態、相關任務、實現人員等信息。通過 RTM,團隊成員可以快速了解每個需求的相關信息,并及時發現和解決可能出現的問題。通過需求跟蹤矩陣,確定一個選擇、分析和決策需求變更的過程,所有的需求變更都需遵循此流程;建立軟件變更控制委員會(SCCB,Software Change Control Board):組織一個由項目風險承擔者組成的小組作為變更控制委員會,由他們來評估和確
80、定需求變更;進行變更影響分析:評估需求變更對項目進度、資源、工作量和項目范圍以及其它需求的影響;跟蹤變更影響的產品:當進行某項需求變更時,參照需求跟蹤能力矩陣找到相關的其它需求、設計文檔、源代碼和測試用例,這些相關部分可能也需要修改;建立基準和控制版本:需求文檔確定一個基線,這是一致性需求在特定時刻的快照,之后的需求變更就遵循變更控制過程即可;維護變更的歷史記錄:記錄變更需求文檔版本的日期以及所做的變更、原因,還包括由誰負責更新和更新的新版本號等情況;跟蹤每項需求的狀態:這里狀態包括“確定”、“已實現”、“暫緩”、“新增”、“變更”等。建立一個數據庫,其中每一條記錄記錄一項需求。425.4.2
81、5.4.2 軟件設計和編碼軟件設計和編碼在全面質量管理時代,軟件研發不僅需要注重結果質量,過程質量同樣重要。軟件設計與編碼階段是研發過程中十分關鍵的環節。我們需要制定詳盡的軟件設計與編碼規范,為研發人員提供依據,持續改進研發工作質量,指導團隊成員更高效、更高質量地進行研發,最終呈現給用戶體驗良好、性能優異、穩定性高、安全性高的產品。本階段遵循以下原則:預防于未然,培育質量意識,降低缺陷率和維護成本。通過嚴密的過程控制和規范指引,從源頭上消除質量問題;統一標準,提高協作效率。制定詳盡的規范和標準,為研發人員設計和編碼提供明確指南,最終實現設計和代碼的高度一致。這可以顯著提高團隊協作效率;追求工匠
82、精神,打造精品代碼。要求研發人員以工匠的態度對待設計和代碼,追求精益求精,生成高質量的精品設計和代碼。通過嚴謹的代碼評審與檢查,不斷優化以產出高質量代碼。1.1.軟件設計與編碼流程管理軟件設計與編碼流程管理本階段流程圖如圖 5-1:圖 5-1 軟件設計與編程流程圖43(1 1)需求獲取與變更需求獲取與變更在需求管理階段,軟件研發團隊與需求提出方共同評估相關需求的技術實現可行性,確定最終需求,形成了原型設計和需求規格說明書。當需求方提出需求變更請求時,研發團隊首先需要評估技術實現的可行性,其次需要考慮對現有產品邏輯和代碼架構的影響。對原有產品和代碼有重大影響的變更,需要進行全面、徹底的回歸測試。
83、每次需求變更需由需求管理人員修改相關文檔,并提交研發團隊審核確認,最終版本文檔由研發團隊管控與存檔。(2 2)架構設計架構設計基本原則:在設計架構、應用程序或類時,要考慮代碼的擴展性,而不僅僅是實現某些基本功能。常用的設計原則包括:SOLID 原則(單一職責原則、開放封閉原則、里氏替換原則、接口隔離原則、依賴倒置原則)。根據需求,確定所選用的相關技術和框架,例如前端語言及框架、后端語言及框架、數據庫、緩存、消息中間件等。依據產品需求規格說明書,設計對應的模塊和功能流程,采用適當的設計模式,由研發負責人組織研發工程師制定架構設計圖。(3 3)代碼開發代碼開發搭建初始框架后,按照架構設計圖中設計的
84、模塊和模式編寫相應代碼。項目中推薦采用配置管理平臺對配置值進行集中管理。(4 4)單元測試單元測試研發過程中,對于常用或核心的模塊和算法,應編寫相應的單元測試用例。研發人員在開發自身負責的功能模塊時,應在交付測試前自行完成測試驗證。(5 5)代碼重構代碼重構研發工程師可對基礎模塊提出重構申請,或研發負責人在現有代碼審核后提出重構要求,評估后安排研發工期。代碼重構的最佳實踐可以參考重構改善既有代碼的設計一書。該書闡述了許多代碼重構的技巧與方法,如提煉函數、內聯函數、拆分變量、消除重復代碼、簡化條件表達式等,助于理解代碼重構的具體操作與收益。442.2.代碼管理代碼管理采用統一的代碼管理服務器管理
85、和維護研發項目代碼。通常研發過程中,配置多個代碼分支,比如開發分支、測試分支、預發布分支、發布分支,可以在開發分支上開發,相關功能在測試分支經過審核和測試確認無誤后,合并到預發布分支,產品上線發布時則使用發布分支。(1 1)代碼審核機制代碼審核機制1)上級審核:部門上級對下屬提交的代碼進行抽查。不符合規范的代碼將退回,要求相關人員修改后重新提交。審核時間根據開發時間制定,比如兩周一次。審核結果記入代碼審核記錄表,作為后續績效評估依據。2)代碼互查:部門成員之間采取代碼互查。對不規范代碼可以告知相關人員進行修正,拒不修改的代碼可向上級部門報告?;ゲ闀r間根據開發時間制定,比如一周一次?;ゲ榻Y果記入
86、代碼審核記錄表,作為后續績效評估依據。3)審核重點:查看代碼邏輯是否與需求規格說明書中的功能描述一致;查看代碼中是否存在嚴重影響性能的邏輯(如構建大量對象、死循環等,濫用線程sleep 等);邊界值判斷是否考慮周全(如非空判斷);檢查其他常見問題。(2 2)代碼注釋規范代碼注釋規范為了保證相關代碼邏輯清晰,方便功能擴展、代碼維護和問題修復,代碼注釋規范如下:1)核心邏輯部分:相關類、方法、字段都必須添加相應注釋;方法內部代碼塊必須添加相關邏輯描述文字。2)其余部分:盡可能多添加相關代碼注釋。(3 3)代碼命名規范代碼命名規范45為確保研發項目整體編碼風格的統一,方便團隊成員之間的協作和代碼維護
87、,應該有組織級的代碼命名規范。組織級的代碼命名規范一般都是遵循各語言通用的命名規范:如類名通常采用大駝峰命名法,JavaScript、Python、Java 方法名采用小駝峰命名法,C#方法采用大駝峰命名法等。具體可以參考以下規范:谷歌代碼風格指南;Vue 風格指南;.NET 設計指南;阿里巴巴移動端開發手冊;阿里巴巴 Java 開發手冊。(4 4)接口安全規范接口安全規范為確保單個系統的內部安全,系統對外提供接口時,需遵循以下接口安全規范:接口設計采用參數加密+超時處理+私鑰驗證+HTTPS 機制實現安全性;對于無需登錄驗證的公開接口,后臺需要做好反爬等限流機制以防止服務器過載;對于包含密碼
88、、手機號、身份證等敏感信息的接口,敏感信息應進行加密處理,切勿明文傳遞。(5 5)接口文檔規范接口文檔規范為減少編寫文檔時間,方便團隊成員之間的協作開發,推薦使用 Swagger 在線文檔工具。接口文檔規范如下:文檔應包含接口功能說明、接口名稱、請求路徑、訪問類型、請求參數說明、返回參數說明、返回錯誤碼說明及作者信息等;對涉及加解密相關的接口,密鑰應通過內部郵件、U 盤等方式傳遞而非在接口說明中公開;生產環境接口應屏蔽 Swagger 接口說明。463.3.數據管理數據管理(1 1)數據管理數據管理采用統一的代碼管理服務器管理和維護項目代碼。未經部門領導和公司同意,嚴禁將工作相關代碼、資源和數
89、據上傳至外部代碼倉庫、網盤,嚴禁分享給公司外部人員。違者按違反保密協議進行處理。一般情況下,也不通過聊天工具傳輸代碼。根據業務流程和規則,采用規范的數據建模工具設計數據庫表結構、字段屬性和約束條件。通過數據建??梢灾贫ǔ龊啙嵡曳蠘I務需求的數據庫設計。數據庫設計直接影響軟件的性能、擴展性和可維護性。制定數據校驗機制,如唯一鍵約束、非空約束、外鍵約束等,確保數據的準確性、有效性和業務邏輯正確性。并定期對數據庫數據進行校驗,發現并修復不一致和異常數據。在系統版本升級或業務需求變更時,可能會涉及到數據的遷移和不同系統的數據集成。制定數據遷移計劃和方案,選擇合適的工具執行遷移,并在遷移后驗證數據的正確
90、性和一致性。對不同系統的數據進行匹配、清洗和匯聚集成,實現跨系統的數據共享和使用。運維人員根據實際需求,按固定周期(小時或天)備份生產環境數據庫。定期備份數據庫操作記錄等。(2 2)數據庫操作管理數據庫操作管理禁止在生產數據庫上直接通過數據庫管理工具或 SQL 語句進行數據的增加、修改和刪除等操作。如遇特殊情況,需要提前備份相關數據。操作前,需要找另外的研發人員核對相關 SQL 語句邏輯是否正確。操作完成后,需要核對相應數據,確保沒有對范圍外數據造成影響。軟件設計與編碼是軟件研發質量控制的核心部分之一。良好的設計與編碼標準可以大大提高軟件質量,減少維護成本,促進研發效率。本部分系統地闡釋了代碼
91、、接口與數據等方面的規范與管理,為軟件研發質量過程控制提供指導與依據。研發團隊需要在具體項目中執行這些規范,定期評審實施效果,并根據需要進行持續改進。475.4.35.4.3 軟件測試軟件測試軟件測試是指在軟件開發過程中對軟件系統進行驗證和驗證的過程。它旨在發現和糾正軟件中的錯誤、缺陷和問題,并確保軟件在發布之前達到預期的質量標準。軟件測試可以涉及多個方面,包括功能測試、性能測試、安全性測試、兼容性測試等;從測試層次來看可以區分單元測試、集成測試、系統測試、驗收測試等。圖 5-2 測試流程481.1.測試流程測試流程軟件測試生命周期是一個反復的、循環的過程,其目的是防止軟件中的錯誤。它包括測試
92、分析、計劃、設計、設置、執行和測試結束等活動。由于軟件的復雜性,如果只進行一次測試,不可能保證產品沒有錯誤。因此,在軟件測試生命周期的每個階段都要進行多項測試。(1 1)測試需求分析測試需求分析這個階段從測試角度檢查功能和非功能需求,以確定可測試的需求。測試團隊與客戶、解決方案架構師、技術負責人、業務分析師和其他利益相關者與質量保證團隊溝通,理解客戶的要求,以便根據客戶的規格制定測試方案。在本階段確保對業務需求的正確理解,識別和確定測試需求。(2 2)測試計劃測試計劃這個階段根據測試需求,明確測試的目標和范圍,選擇要進行的測試類型和測試方案;針對測試需求確認和分配角色和責任,以及需要的測試資源
93、和設備。計算測試活動所需的工作量和時間計劃表,并與開發人員和產品經理同步。測試計劃一般包含測試所需資源,測試工作分工,研發提測節點,回歸測試節點等。(3 3)測試用例的編寫測試用例的編寫測試用例的表現形式直接影響了它的可讀性,可維護性。因為一套不易讀,冗長繁瑣且沒有統一規范的測試用例會直接導致測試用例難以閱讀和維護;其次還會直接影響到測試執行和結果的正確性。下面總結了三種經典的測試用例編寫方法。但是由于不同的團隊和不同的項目情況不同,所以沒有一種最佳方法適合于所有團隊。測試用例編寫人員需要根據自己團隊和項目的特點和情況,選擇適合并且實用的測試用例編寫方法,從而更好的維護和執行測試。方法一:操作
94、和執行步驟方法一:操作和執行步驟這是一種常規的測試用例編寫方法,通過描述操作和執行系統的步驟來描述測試用例。其優點是非常直觀,而缺點是過于繁復。如果操作和執行步驟經常更改的情況下,其維護成本就非常高。所以它適合一些比較穩定,業務需求和執行步驟變更較少的項目。下面是兩個實例,展示了兩個申請新用戶的用例。實例:49用例 1:申請一個新賬號成功Given 準備申請一個新的賬號When打開“注冊”頁面并點擊“下一步”Then“用戶信息”頁面成功打開When完成填寫“用戶信息”頁面并點擊“下一步”Then“審核”頁面成功打開When用戶信息審核完成并點擊“下一步”Then“申請”頁面成功打開用例 2:申
95、請一個新賬號失敗Given 準備申請一個新的賬號When打開“注冊”頁面并點擊“下一步”Then“用戶信息”頁面成功打開When完成填寫“用戶信息”頁面并點擊“下一步”Then“審核”頁面成功打開When用戶信息審核完成并點擊“下一步”Then“申請”頁面成功打開方法二:系統或者用戶行為方法二:系統或者用戶行為在行為驅動開發(BDD)出現后,越來越多的測試用例通過系統行為來編寫。其優點是相對于方法一,它非常簡練。所以在修改和維護時成本較低。但是它有一個前提,就是50測試執行人員必須了解功能細節的前提下,才能通過行為描述來進行測試。所以這種方法寫出的測試用例多數用于自動化測試。下面是將方法一種的
96、兩個實例通過行為驅動開發重寫后的實例。實例:用例 1:申請一個新賬號成功Given 準備申請一個新的賬號When完成新賬號申請流程Then新賬號創建用例 2:申請一個新賬號失敗Given 準備申請一個新的賬號When完成新賬號申請流程Then新賬號創建方法三:用代碼思維編寫測試用例方法三:用代碼思維編寫測試用例方法一和方法二都存在不同程度的重復,不易復用。為了改善或者解決這兩個問題,從而進一步增強測試用例的可維護性,降低新增用例和維護已有用例的成本,需要使用代碼思維來進行測試用例編寫。其核心是盡可能抽象出通用的操作步驟或者系統行為的領域特定語言(DSL),然后通過參數化的方式來進行測試數據傳遞
97、,從而復用領域特定語言。下面是通過本方法重寫方法一和方法二后的實例,它主要體現了眾多代碼思維中的其中一種,即邏輯與數據分離。步驟實例:用例集 1:申請一個新賬號Given 準備申請一個新的賬號51When打開“注冊”頁面并點擊“下一步”Then“用戶信息”頁面成功打開When完成填寫“用戶信息”頁面并點擊“下一步”Then“審核”頁面成功打開When用戶信息審核完成并點擊“下一步”Then“申請”頁面成功打開數據集:|用戶|結果|描述|理查德|成功|他是一名管理員|尼奧|失敗|他是一名黑客|行為實例:用例集 1:申請一個新賬號Given 準備申請一個新的賬號When打開“注冊”頁面并點擊“下一
98、步”Then“用戶信息”頁面成功打開When完成填寫“用戶信息”頁面并點擊“下一步”Then“審核”頁面成功打開When用戶信息審核完成并點擊“下一步”Then“申請”頁面成功打開52數據集:|用戶|結果|描述|理查德|成功|他是一名管理員|尼奧|失敗|他是一名黑客|(3 3)用例評審用例評審在編寫測試用例之后,進行審查和驗證。邀請其他團隊成員、開發人員或領導者參與審查過程,以確保測試用例的準確性、完整性和可理解性。(4 4)測試環境準備測試環境準備1)確定測試環境拓撲結構:根據測試需求和系統架構,確定測試環境的拓撲結構。這涉及到服務器、客戶端、數據庫、網絡設備和其他相關組件的布局和連接方式。
99、2)環境配置和安裝:根據測試環境需求和拓撲結構,配置和安裝必要的軟件和組件。這可能包括被測軟件版本、操作系統安裝、數據庫配置、Web 服務器設置、網絡連接等。3)數據準備和導入:根據測試需求,準備測試所需的數據。這可能涉及創建測試數據集、導入現有數據、生成模擬數據等。確保測試數據的完整性、準確性和合理性。4)第三方集成和模擬:如果軟件系統需要與第三方系統進行集成,確保第三方系統在測試環境中可用。對于無法直接訪問的第三方系統,可能需要使用模擬數據或模擬服務進行集成測試。5)環境驗證和確認:在測試環境準備完成后,進行環境驗證和確認。確保環境的穩定性、可用性和正確配置。執行一些基本測試,例如網絡連通
100、性、服務器訪問權限、軟件安裝驗證等。(5 5)測試執行測試執行1)執行測試用例:根據測試計劃和測試用例,按照預定的步驟和操作順序執行測試。記錄每個測試用例的執行結果,包括輸入、實際輸出和預期結果。2)記錄測試結果:在測試執行過程中,及時記錄每個測試用例的執行結果,保存原始53測試日志等相關記錄。這包括記錄通過的測試用例、失敗的測試用例以及遇到的問題和異常情況。3)跟蹤和管理缺陷:如果在測試執行過程中發現軟件缺陷,及時記錄并報告給相應的負責人或缺陷跟蹤系統。包括準確描述缺陷、提供復現步驟和截圖,以便開發團隊進行修復,驗證缺陷是否修復。4)進行回歸測試:在所有功能提交測試通過后,執行回歸測試,確保
101、驗證相關功能是否正常工作,是否引入其他未知缺陷,是否具備版本發布條件。5)如果規劃了性能或負載測試,執行性能和負載測試:根據需求和測試策略,執行性能測試和負載測試,評估軟件系統在不同負載和壓力下的性能和穩定性。(6 6)測試報告測試報告測試報告是測試工作的重要成果之一,它提供了測試執行的詳細結果和評估,以便項目團隊和相關利益相關者了解軟件質量和測試覆蓋范圍。測試報告的一般內容為:報告概述、測試執行數據、缺陷分析數據、測試結果和評估、性能和負載測試結果(如有)、風險評估、總結和建議,附錄和支持文檔(測試用例、測試數據、缺陷詳情、環境配置)。2.2.測試方法與工具測試方法與工具(1 1)單元測試單
102、元測試單元測試是一種集中測試最小單元(通常是函數、方法或模塊)、獨立性和隔離性強、功能驗證和正確性驗證的測試方法;由開發人員執行,旨在提高軟件質量、減少錯誤和缺陷,并支持軟件開發過程的可靠性和可維護性。常用的單元測試方法包括:白盒測試、邊界值測試、參數測試;單元測試常采用自動化方式進行。(2 2)集成測試集成測試集成測試是驗證多個組件或模塊在整體上正確集成和協同工作的測試方法,以確保系統的功能和接口符合預期,并檢測潛在的問題和缺陷。涵蓋系統的主要功能和關鍵路徑,驗證系統與外部系統或服務的集成,如數據庫、網絡服務等。它是軟件開發過程中的重要環節,幫助確保系統的穩定性、可靠性和互操作性。常用的集成
103、測試方法包括:自頂向下集成測試、自底向上集成測試、并發集成測試、Big Bang 集成測試、逐步集成測試等。(3 3)系統測試系統測試54系統測試的目標是測試整個軟件系統,包括其各個組件、模塊和子系統之間的集成和協作。它著重于驗證系統的功能、用戶界面、性能、安全性、可靠性、兼容性等方面,以確保系統在各種使用場景和負載條件下的正常運行。系統測試可以分為以下幾個方面:1)功能測試:驗證系統的各項功能是否符合規格和需求,包括核心功能、輔助功能和特定的用戶場景。2)性能測試:評估系統在不同負載條件下的性能和響應能力,包括吞吐量、響應時間、資源利用率等指標。3)安全性測試:檢查系統的安全性和保護機制,驗
104、證系統對潛在威脅的防御能力,如授權驗證、數據加密、漏洞掃描等。4)兼容性測試:測試系統在不同操作系統、瀏覽器、設備和網絡環境下的兼容性和可用性。通常手動在不同操作系統、瀏覽器和設備上進行測試。5)可靠性測試:驗證系統的穩定性和可靠性,包括錯誤恢復、容錯機制、日志記錄等。6)用戶界面測試:評估系統的用戶界面的易用性、可訪問性和一致性,確保用戶能夠輕松使用系統并滿足其期望。(4 4)驗收測試驗收測試驗收測試的目標是確保軟件系統滿足業務需求,具備所定義的功能、性能和質量要求。它著重于從最終用戶的角度對系統進行測試,以確定系統是否滿足用戶的實際使用需求和預期效果。驗收測試通常由最終用戶、客戶或業務代表
105、來執行,他們代表了最終使用軟件的利益相關者。在驗收測試過程中,用戶執行一系列測試用例或場景,模擬真實業務操作,驗證軟件的功能、界面、性能、安全性等方面是否符合預期。3.3.測試用例管理測試用例管理(1 1)介紹介紹在軟件測試工作中,測試用例是其最為重要的基礎。一個良好的測試用例可以幫助測試人員更容易閱讀、理解、修改并管理它,從而提高測試工作的質量和效率。要編寫好的測試用例,首先需要對業務需求和驗收標準進行深入的分析,并確定業務需求和驗收條件的正確性和合理性。然后對其進行測試分析,并完成整體測試用例的設計55和編寫,其中包括功能測試用例,端到端測試用例,異常測試用例等等。在分析和設計用例的過程中
106、,可以通過啟發式測試策略模型(HTSM)這類方法來進行分析,并通過等價類、邊界值、決策表、PairWise 等方法來設計測試用例。其中的難點是如何讓測試用例盡可能覆蓋到驗收標準,從而完成驗收功能的高覆蓋測試率。并且還要盡可能找到業務需求、技術架構等系統相關的各種限制,通過分析限制可以得到更多的測試用例,包含異常測試用例。對于設計好的測試用例需要進行分類并管理,然后根據不同的分類進行分層測試。通常情況下可以將測試分為端到端測試,功能測試,集成測試,單元測試等。根據這個分類方法,可以方便進行測試分層管理,就是某些測試用例放在端到端測試類型里面,而有些測試用例則放到集成測試類型里面。而根據測試用途還
107、可以將某些類型的測試分類成回歸測試、驗收測試、健全測試和冒煙測試等。由于一個測試用例可能既屬于回歸測試,又屬于冒煙測試,所以這種情況下就需要一個良好的測試管理系統或者管理方法來對大量的分類后的測試用例進行管理。編寫和管理測試用例是測試用例工作中工作量最大、最為繁瑣的部分。其質量的高低直接影響到測試工作是不是能高效和順利地進行并完成。所以結合產品的類型和團隊的情況,選擇適合自己團隊的用例編寫和管理方式,從而事半功倍。(2 2)測試用例分類測試用例分類測試用例在來源方面可以分為兩大類,即驗收測試用例和探索測試用例;在執行方式方面可以分為手動測試用例和自動化測試用例;在用途方面可以分為功能測試用例和
108、非功能測試用例。但是對測試用例進行管理,需要對不同類型的測試用例進行系統化的管理。而對于一個軟件系統的測試用例體系化,需要注意以下幾個重點:1 1)測試用例分類的三個難點測試用例分類的三個難點難點一,明確清晰的驗收條件。難點一,明確清晰的驗收條件。驗收測試用例的核心就是驗收條件,對于明確清晰并且細化到足夠程度的驗收條件,可以直接轉換為或者作為測試用例來使用。但是往往很多情況下驗收條件沒有細化,甚至不夠明確和清晰,存在歧義,從而導致很難設計出足夠的用例來映射到所有驗收條件,稱之為 AC Mapping。難點二,功能測試覆蓋率。難點二,功能測試覆蓋率。56對于整個軟件系統來講,由于很多驗收條件都是
109、一些分散的點,而如何通過分析業務需求和驗收條件等來設計測試用例,保證測試用例對于系統功能或者端到端功能場景的全覆蓋是一個難點。難點三,功能和系統限制。難點三,功能和系統限制。它的核心是如何通過分析驗收條件、業務流程、技術架構等信息,發現某個功能或者系統級別的限制,只要突破這個它們即開始在做探索性測試,它們也可以叫探索性測試用例。無論驗收測試用例還是探索性測試用例,都可以使用各種基礎的測試用例方法來分析和設計測試用例,比如等價類、因果圖、錯誤推測法或者場景法等等。所以一般情況下,可執行的功能測試用例全集等于驗收測試用例與探索式測試用例之和。2 2)測試用例分類的一些注意事項測試用例分類的一些注意
110、事項對于手動測試用例和自動化測試用例,它們只是執行方式的不同。并且大部分情況下,自動化測試用例是從手動測試用例中選出來的一部分子集。除了必須執行的功能測試用例以外,一個軟件系統還存在大量的非功能測試用例,比如安全測試、性能測試、易用性測試、兼容性測試等等。對于驗收測試用例和探索式測試用例,以及手動測試用例和自動化測試用例,都應該進行統一化管理;對于非功能測試,一般需要與功能測試用例分開進行管理。而對于測試用例本身,需要使用代碼化的思維來進行編寫、維護和管理,其目標就是易讀、易維護、易執行和易管理。為了達到這個目標,還需要克服以下測試用例的難點:自然語言的多樣性、數量大、自動和手動難統一。大部分
111、情況下的測試用例都會使用自然語言進行描述。而自然語言的多樣性和歧義,可能會讓用例設計和編寫者以外的手動測試執行人員或者自動化測試開發人員產生誤解,從而理解錯測試用例,并得到錯誤的測試過程和結果。其次當測試用例的數量增大以后,比如幾千上萬的時候,維護和管理的問題也隨之困難起來,其中還包括如何統一管理自動化測試和手動測試用例,從而減少對于重疊測試用例的維護和管理。為了解決這些問題,需要用多一些方法,其中包括使用代碼式思維來編寫測試用例,比如用 DSL 語言、測試步驟和測試數據分離等,其次還需要強大的測試用例管理系統等等。4.4.測試用例測試用例分類與分類與管理管理編寫和管理測試用例一直是一件十分繁
112、瑣又很難降低成本的工作,為了盡可能降低其成本,測試用例需要具有以下特性:易閱讀、易維護、易執行、易管理。而難點也比較突出,其中包括語言的歧義性和多樣性導致的不易閱讀和理解;手動測試和自動化測試用例很難統一管理和統一執行;當測試數量很大的時候,如果測試用例管理系統不易用,測試用例的復用性也不高,則會導致測試用例不易維護,從而會極大的增加了其管理成57本。所以測試用例的編寫需要用到代碼思維,比如高內聚、低耦合、易復用、清晰的模塊劃分等。再加上自動和手動測試用例的統一管理系統,則可以使測試管理更加容易。(1 1)測試用例的管理方法測試用例的管理方法測試用例管理是一項繁瑣的工作,所以需要明確的管理流程
113、,下面是一個經典的測試用例管理流程(如圖 5-3),項目可以根據自己的特定和需求對這個流程進行修改和定制。圖 5-3 測試用例管理流程其次測試用例有四種經典管理方法方法,分別是文件管理、系統管理、代碼活文檔和系統活文檔。與編寫用例一樣,沒有一種用例管理方法是銀彈,適合所有不同的團隊和不同的項目。所以了解它們的特點,再根據自己團隊和項目的實際情況,選擇適合的才是最佳實踐。方法一:文件管理方法一:文件管理本方法是中小型項目中比較常見的測試用例管理方法。其優勢是簡單易用,而劣勢是需要自己對測試用例模版進行定制,并且當測試用例過多的時候管理成本會急劇增加。其次對于本地文件模式,則很難讓多人進行協作編寫
114、,但是在線文檔沒有這個問題。下面是一個 Excel 實例,如圖 5-4:58圖 5-4 Excel 管理實例圖方法二:系統管理方法二:系統管理此類方法一般是中大型項目中最為常用的管理方法,其優勢是管理系統提供了強大的管理和協作功能,如協作編寫用例、協作執行用例、測試步驟管理、截圖管理、測試迭代管理,以及豐富的測試用例和測試結果報表等。因此,它有一定的學習曲線,并且基本上都是界面操作,相對比較煩瑣,有些修改很難跟蹤,如測試步驟、測試數據的更改等。另外,這種系統一般需要一個獨立服務器來部署和運行,相對成本比較高。方法三:代碼活文檔,自動化測試框架和代碼版本工具方法三:代碼活文檔,自動化測試框架和代
115、碼版本工具本方法適合于有足夠軟件技術工程實踐的團隊和個人,因為它需要使用到代碼版本管理工具、集成開發環境(IDE)、自動化測試框架、持續流水線等實踐才能高效的編寫、維護、執行、管理測試用例、測試日志和測試結果。本方法的優勢是可以同時管理自動化測試用例和手動測試用例,并且更容易跟蹤測試用例和測試數據的更改。而劣勢是需要測試工程師有足夠的工程技術能力來實現。方法四:系統活文檔,方法二結合方法三方法四:系統活文檔,方法二結合方法三本方法是將代碼活文檔和系統管理結合,通過測試管理系統編寫和管理測試用例,然后59會自動生成代碼模式的測試用例。也可以只編寫代碼模式的測試用例,然后自動同步到測試管理文檔中。
116、自動化測試在持續集成流水線執行,通過流水線進行展示并同步到測試管理系統中。手動測試人員執行了手動測試后,將測試結果通過測試管理系統或者在測試代碼中進行記錄,并最終匯總到測試管理系統的進行統一展示,從而實現了讓不同人員可以一起協作分析、設計、管理和執行測試用例的工作。下面是本方法的架構設計圖(圖 5-5、圖 5-6)。圖 5-5 系統活文檔架構圖 60圖 5-6 系統活文檔架構圖 25.5.總結總結測試用例是測試工作的根本,不管是手動測試還是自動化測試的成功,都十分依賴于測試用例的質量。但是只有充分的做好測試分析、設計、編寫和管理才能產出一套合格甚至優秀的測試用例套件。從保證測試工作可以高效正確
117、的進行,為產出高質量軟件保駕護航。5.4.45.4.4 缺陷管理缺陷管理缺陷的定義可以追溯到 IEEE729-1983 中的描述:“從產品內部看,缺陷是軟件產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背?!比毕菔钱a品與規定要求不相符的部分,會存在于軟件產品的整個生命周期中,通過測試活動及早發現軟件系統中的缺陷,并確保缺陷被有效標識、跟蹤、和修改,保證軟件系統能夠達到要求的質量。611.1.缺陷的生命周期缺陷的生命周期缺陷的生命周期就是一個缺陷從新建到關閉的過程,這是一個典型過程(如圖 5-7)。在實踐應用過程中由于不同的測試管理平臺,不
118、同團隊的內部實踐都會有些細微調整。圖 5-7 缺陷的生命周期(1 1)新建新建缺陷發現后,由測試工程師或者其他發現缺陷的人員新建缺陷(推薦采用有缺陷管理功62能的系統來維護,也可以用電子表格維護)。缺陷新建后,提交前可以反復編輯,補充缺陷記錄的信息。新建缺陷描述的要求為分類準確、敘述簡潔、步驟清楚、有實例、可再現、復雜問題有據可查(截圖或上傳附件的形式),具體要求為:單一:盡量一個報告只針對一個軟件缺陷;簡潔:每個步驟的描述應簡潔明了;再現:描述重現的步驟和條件,比如具體輸入參數值,以便進行回歸驗證。應提供截圖;期望結果:有期望結果描述;實際結果:有實際結果描述;其它信息,可依實際情況增加。(
119、2 2)提交提交測試工程師確認缺陷已經表述清楚,可以提交缺陷。提交后的缺陷狀態時“已提交”。缺陷提交前必須分配一個具體的缺陷處理負責,如果測試工程師不確定誰負責,可以把缺陷分配給開發負責人或者項目負責人,由開發負責人重新分配責任人。(3 3)處置處置開發工程師確認缺陷是自己負責后,開始著手處理,并修改缺陷的狀態為“打開”,表示缺陷正在處理中。如果開發工程師無法復現或者認為測試工程師的描述不是一個缺陷,可以將缺陷狀態改成已駁回,這樣缺陷就退回給測試工程師進行再次的驗證或豐富的輔助信息描述,再重新進入對應的流程。如果不需要駁回,開發工程師就需要確定是否在當前迭代完成修復,這個一般都是基于缺陷的修復
120、難度、缺陷的影響范圍等經團隊負責人、需求負責人商討后做出的判斷,如果需要延期修復那么將缺陷狀態修改成“延期處理”,缺陷生命周期處理結束,等待下次進入解決階段后,進入后續處理流程。否則開發工程師完成對應缺陷的修復,在對缺陷處置完成后,需做處置記錄:原因:說明缺陷產生的原因,比如:設計考慮不周,邊界處理不嚴密,邏輯判斷不合理。要求描述具體簡潔,以便總結經驗;解決方法:修改稿涉及的文件、源代碼、配置、腳本等;概括:缺陷是否可能存在于其他位置,或引起其他問題。63已打開的缺陷也可以修改負責人。(4 4)解決解決問題解決后,填寫解決處理記錄,寫明造成缺陷的原因和解決方案,改變缺陷狀態為“已解決”。如果開
121、發工程師發現如下情況,可以把缺陷駁回給測試工程師:缺陷不可再現;與先前登記的缺陷重復;不是缺陷,是測試人員理解錯誤;缺陷輕微,且修改困難、或修改易導致更大的潛在問題。如果按照開發計劃,缺陷發生的功能不屬于當前開發階段必須完成的(需與項目負責人確認)。(5 5)驗證驗證測試工程師對“已解決”狀態的缺陷進行重新測試,測試步驟應當按照等級的可重現步驟進行。(6 6)關閉關閉測試工程師確認缺陷已經解決后,關閉缺陷。對于被開發工程師駁回的缺陷,測試人員需和項目負責人討論,項目負責人同意的可以關閉,否則需駁回給開發人員。(7 7)重開重開驗證測試不通過的缺陷,應當駁回給開發人員,狀態為“重新打開”。關閉了
122、的缺陷再次出現時(通常因為解決缺陷的方法導致相同位置出現不同形式的缺陷時),測試人員重新打開缺陷,開發人員需要繼續解決。2.2.缺陷的編寫規范缺陷的編寫規范缺陷描述的清楚與否,可以很好的幫助開發工程師快速定位、解決問題,而且還可以提64高測試工程師基本測試技能。因此,建立標準的缺陷描述規范是十分重要、也是十分必要的。首先清晰的缺陷描述可以幫助開發人員快速定位、解決問題。軟件測試部門中員工的水平各有不一,對于缺陷的認知、描述側重面也會存在不同。因此,如同一個問題,由不同測試工程師描述缺陷,就有可能會存在描述不一致的問題。這就會造成讓開發工程師理解不清晰,從而延誤解決問題的周期。其次標準的缺陷描述
123、可以提高測試工程師的基本測試技能。如有新入職員工,他可以先從缺陷中查找缺陷了解公司產品的整個開發、研制中產生的問題。而標準清晰的缺陷描述可方便快速的使其盡早、盡快地融入測試部門。另外,對于缺陷的追蹤驗證時,由于是不同測試工程師進行驗證,所以規范的缺陷描述,可以提高測試工程師驗證問題的效率。編寫一個缺陷需要的必要信息有標題、詳情、屬性。其中標題是用簡潔的話描述該缺陷,主要是讓開發知道這是一個什么樣的缺陷,主要從功能操作和缺陷現象上描述。詳情描述便于開發重現和定位問題,需要描述在什么樣的測試環境中,通過什么測試數據,用那幾個步驟發現的缺陷,并且要針對缺陷站在測試工程師的角度描述這是一個什么樣的缺陷
124、,和預期結果產生了什么樣的偏差,過程中盡量提供截圖、視頻等方式給開發直觀的缺陷表述,截圖或者錄制視頻要進來的提供全頁面的圖像,避免局部截圖;屬性重點包含驗證程度、狀態、優先級、提交人等等信息。表 5-8 缺陷的嚴重程度及說明嚴重程度嚴重程度標示標示含義含義例子例子致命1導致軟件無法使用問題,例如整個程序崩潰,導致無法使用,測試阻塞。1.問題會自發的影響整個系統。2.用戶使用正常的操作步驟,就會影響整個系統提供的服務。3.具有操作先后順序的功能,已開始的步驟出現故障,導致后續步驟無法使用。1.系統無法訪問,崩潰2.死循環3.數據庫死鎖4.因錯誤操作導致的程序中斷5.數據庫連接異常656.主要功能
125、缺失嚴重2某個功能未實現或導致一個特性或導致一個特性不能運行并且沒有替代方案1.功能與需求不相符2.系統接口設計錯誤3.數據庫表、業務規則、缺省值沒有完整性約束等4.主要功能錯誤一般3錯誤導致了一個特性不能運行但可有一個替代方案。功能特征設計不符合系統的需求,不影響系統的業務,并且有相應的補救方法。1.操作界面問題2.格式、顯示問題3.刪除沒有二次提醒4.數據庫大量空字段建議4建設性的意見或建議。需求文檔沒有規定的特性,如果實現會對系統功能或易用性有所提高。1.輔助性說明不清晰2.提醒交互信息不明確3.UI 設計不符合規范表 5-9 缺陷的狀態及說明缺陷狀態描述初始狀態測試或開發人員提交一個新
126、的缺陷,等待開發人員或項目經理分配66修改負責人確認已經確定是 BUG,但是還沒開始修改激活確認了 BUG,并開始修改 bug已解決缺陷已被開發人員修復,等待測試人員驗證關閉測試人員驗證已修復的缺陷表 5-10 缺陷優先級優先級優先級標示標示含義含義立即解決P0如果故障妨礙開發人員的進一步開發活動,應立即修復。如果阻塞測試,應立即修復。高度重視P1必須修改,版本發布前必須修正正常處理P2必須修改,不一定馬上修改,但需確定在某個特定版本發布前必須修正低優先級P3如果時間允許應該修改675.4.55.4.5 配置管理配置管理配置管理是貫穿與整個軟件生命周期,為軟件研發提供了一套管理辦法與活動原則,
127、它是一種 IT 管理流程,用于跟蹤 IT 系統的各個配置項目,通過使用配置識別、配置控制、配置狀態記錄與報告、配置審計等手段,建立并維護工作產品的完整性,以此為所有過程域提供支持。配置管理是一個系統工程流程,用于跟蹤和監視對軟件系統配置元數據的更改,它強調了對項目的所有的相關產物及其之間的關系都要進行有效管理,從而實現管理項目中的變化,實現不同角色之間的高效協同,并且實現全部的制品過程的可追溯、可審計,從而達到持續的又快又好的交付的目標。配置管理可以提煉成三個方面的內容分別是版本控制、變更控制和過程支持。在應用層面上,配置管理主要包含了代碼和制品的配置管理、環境的配置管理和應用的配置管理。代碼
128、和制品的配置管理主要包含了組織采用的分支策略,使用的版本管理系統,管理制品的制品庫的選擇以及對于二方、三方包的依賴管理;環境的配置管理主要是針對應用對外提供服務需要依賴的軟硬件、外部系統級依賴等的管理;應用的配置管理是對應用中的一些環境配置、服務配置、數據庫配置等。1.1.配置管理及其質量要素配置管理及其質量要素(1 1)代碼和制品的配置管理代碼和制品的配置管理系統的變更從代碼變更開始,那么針對代碼的版本控制主要依托于某種版本控制系統。這里特別需要注意的是,版本控制中所說的代碼并不僅僅是業務實現代碼,還包含了數據庫變更代碼、測試代碼、構建腳本、部署腳本等。先定好一個版本控制系統后,就需要決定團
129、隊采用的分支模型,管理變更交付過程中代碼倉庫中各個分支的關系。針對不同的團隊、不同的系統以及不同的交付模式,都應該有最合適的一個分支模型,并沒有一個公認的最好的分支模型,“因地制宜”才是最優解。在分支模型的實施過程中,需要將靜態代碼掃碼、單元測試等質量保證活動的結果加入到分支合并的一些質量門禁當中,從而防止代碼腐化。從版本控制的代碼,經歷了構建、測試最后交付到了制品庫,完成制品的版本管理。從上面的描述中可以看出制品就是一系列的構建產物(例如二進制包等),制品更加推薦使用制品庫管理系統進行管理。在現在制品晉級的理念之下,一次構建多個環境部署的方式越來越收到業界認可,制品庫除了管理團隊自我構建的包
130、以外,還可以用來管理項目依賴的二方或者三方包。無論是哪一種制品,都推薦有版本控制和語意化版本命名方68式。語意化版本其實是為了能夠一樣就能看出來版本的變更內容做的一個版本上的定義,一般我們把版本定義為 X1.X2.X3 的三段位,其中 X1 是主版本號,當做了不兼容的修改的時候,才會升級改版本,X2 是次版本號,當做了向下兼容的功能性新增的時候升級這一位,X3 是修訂號,當做了向下兼容的問題修正的時候,升級這個版本號。對于制品庫中的制品,通??梢允褂枚M制的一些掃碼工具,針對二進制包的安全性進行保證。(2 2)環境配置管理環境配置管理環境配置管理伴隨著軟件規模的不斷增大,持續交付廣泛實施變得越
131、來越重要。交付在當前工程實踐領域并不再單獨交付一個系統,而是交付一個可以對外提供服務的應用,這其中就包含了應用對外提供服務的硬件、操作系統、中間件、數據庫等一系列基礎設施。通過一些工具可以很方便的定義在那個環境中安裝什么軟件,啟動那個服務,使用那個配置,測試過程需要保證在這些環境管理工具上的環境配置是冪等的、有效的、安全的。(3 3)應用配置管理應用配置管理應用配置管理能夠將一切應用程序的運行依賴參數標準化,并可以注入部署包中的服務。應用通過配置的變更管理、推送等功能實現了一次構建多次運行,通過集中管理所有應用環境中的配置,降低分布式系統中管理配置的成本,并降低因錯誤的配置變更造成可用性下降甚
132、至發生故障的風險。測試工程師要驗證應用配置的可用性、有效性,保證對應環境的對應配置是正確的和起效果的。2.2.配置管理的質量約束配置管理的質量約束雖然有格式各樣的系統保證配置管理的過程,降低了操作成本提高了自動化程度,但是很多生產故障都和配置參數錯誤有關,因此對配置參數的變更需要有嚴格的控制過程和驗證流程。配置參數的驗證往往是伴隨制品晉級的過程進行驗證的,也是通過開發、測試、用戶驗收后才能進入生產環境。同時在變更過程中需要加入人工評審環境,變更的多重保證機制的存在可以從不同角度保證交付的質量,尤其是針對通過某一種開關機制可以控制的配置,其多種控制方式、多種參數參數的交叉驗證更應該是不能忽略的配
133、置管理中的質量驗證點。針對一次構建,多次部署的應用,不同環境的配置文件需要嚴格驗證,尤其是程序內部需要調取后才能運行的參數,要充分驗證不同環境對應參數的有效性和正確性,對于參數配置和應用服務的先后升級關系一定要在團隊內達成共識,建立統一約束,統一操作,避免配置文件更新程序讀取老配置的常見問題。配置文件驗證中最重要的一個環境就密鑰、密碼的保密性設置,常規是通過配置文件的人工評審來保證的。695.4.65.4.6 發布管理發布管理1.1.發布條件發布條件軟件發布前需要滿足一定條件,才允許啟動發布流程,其中有這幾方面報告要求。功能要求:是否進行充分測試活動,是否滿足項目期初期制定目標;性能需求:是否
134、進行性能測試,評估性能指標是否實現;安全性需求:項目實現規范性是否滿足,對于安全性指標實現情況;易用性及 UI 需求:需經過特定角色驗證并達標。發布項目文件、程序等需經過評審會評審通過,其中參與角色包括但不僅限于技術部門、測試部門、產品部門、業務部門等。2.2.發布前準備發布前準備一個項目或版本發布需要有相關的配套文檔作為支撐。其中包括:發布說明、產品白皮書、產品說明書、技術說明書、對內培訓文檔、對外培訓文檔、用戶操作手冊、安裝說明書、運維手冊等。程序版本:確定版本號并進行程序打包;對原程序進行備份;對上線過程進行模擬演練;數據準備:對與歷史版本和數據備份、上線驗證數據準備、數據預埋;風險管理
135、:應急預案(包含版本回滾)、上線風險點評估;場景設定:針對不同應用場景設定不同的驗證方式和驗證角色及時間。3.3.發布過程管理發布過程管理版本號管理:新版本版本號管理;70驗證管理:按照上線文檔進行分布部署并分步對發布產品進行驗證,驗證過程需區分哪些功能由什么角色驗證、什么時間段驗證、預埋數據和驗證時間;對于驗證過程中出現的問題需要按照應急預案進行處理,并將問題及處理方式和結果進行記錄;過程文檔記錄:對于發布的程序進行了哪些驗證;對于上線測試用例執行了哪些以及結果如何進行記錄;對于無法驗證的部分進行歸類并闡明原因,最終形成產品上線驗證報告。4.4.發布后管理發布后管理版本管理:新版本進行備份;
136、驗證跟蹤:針對產品特點,在產品發布后,有些功能需長時間跟蹤驗證,并對結果進行收集、反饋和處理分析;尤其對于上線驗證報告中的問題,需重點進行跟進,并及時和相關人員同步處理狀態和結果;問題收集處理:產品發布后設定問題收集機制,經收集到的問題區分功能性、非功能性、優化性等進行問題歸類,按照線上問題處理機制做出不同的處理決策,并且問題及處理結果,可用于整體項目產品發布質量的考核指標之一,也可用于回顧會上來進行全面深度分析,從而更好的提升團隊產品產出質量;運維:產品發布后需要運維長期的跟蹤支持,以提升產品口碑,同時不斷地進行優化處理提升產品質量。需要格外注重運維服務質量和效率。5.4.75.4.7 回顧
137、與總結回顧與總結軟件質量管理體系的一個重要環節就是回顧與總結,通過回顧與總結對過去一段時間內的軟件工作進行總結和反思,以評估軟件的質量,找出質量保證過程中的問題和不足,并通過建立改進計劃、技術改進需求完成團隊的自我成長。1.1.迭代回顧會中質量回顧迭代回顧會中質量回顧在項目的迭代過程中,迭代中的質量回顧和總結是在迭代回顧會中完成的,通過總結本次迭代中質量保證相關的經驗、教訓并進行改善,從而提高團隊的交付質量。迭代回顧會中的針對質量的回顧和總結部分是為了達到如下的一些目的:評估上一個迭代中的質量保證相關的流程、活動、工具方面問題和優秀實踐;71對發現的問題進行分析,指定改進計劃;對優秀實踐進行總
138、結,留存到知識庫。迭代回顧會上針對質量保證的回顧可以推動內建質量的文化,提高團隊的質量意識。因此在團隊針對質量的回顧過程中,大家要避免相互指責、推脫責任,而是要建立一種相互支持、相互鼓勵的氛圍。迭代回顧會從名字中就可以看出每個迭代結束后都會進行的一個環節,因此在回顧會的形式上、相對時間上、參會人員上以及內容環節上是相對固定并且一致的。在參會的人員上比較提倡和項目制品過程相關的所有人都要參加,有一名主持人主持會議,主持人可以是任意角色,不需要固定,但是要有輪值計劃,讓下一次迭代會的主持人事先就知道自己未來的角色。迭代回顧會應該在迭代完成后盡快召開,在回顧會上鼓勵團隊成員對質量保證環境、測試流程等
139、任何和交付質量相關的活動進行回顧,提出問題甚至給出改進意見。對于測試工程師,應該針對本次迭代的制品過程中的質量和生產質量做出整體的回顧,針對問題進行總結,并給出改進計劃,從而落實 PDCA。團隊的負責人則應該關注交付過程中的協作、質量門禁的流程卡點做回顧總結,總體上管控交付過程。兩周一個迭代的項目回顧會時長在 1 小時以內,回顧會不要超過 1 個小時,測試工程師的質量回顧不要超過 10 分鐘為宜,針對其他迭代周期的回顧,可按需采納會議時長。具體取決于迭代的時間長度以及團隊完成的工作量。改進項可以整理成技術需求故事卡,進入團隊的待辦事項列表,在后續迭代中進行交付?;仡檿S?5 段式討論完成,分
140、別是預設會議基調、收集數據、激發靈感、決定做什么和結束會議,具體的實施方法以及其他回顧會的套路、方法可以參加更多的敏捷實踐。2.2.月度、季度、年度的質量回顧和總結月度、季度、年度的質量回顧和總結整體的質量回顧和總結一般會按照月度、季度、年度的時間階段,雖然時間跨度不一致,但是形式、內容方面還是相對一致的,對于月度、季度、年度質量回顧和總結可以從如下幾個方面進行確定:目的:為了提高軟件產品的交付質量,增加客戶滿意度,促進團隊學習和成長;對象:是軟件項目或者軟件產品在不同的階段或者周期范圍的的制品過程質量和交付質量;內容:對軟件項目或者產品在需求、設計、編碼、測試、發布等方面的質量保證活動和質量
141、結果進行評價,分析問題原因和影響,總結經驗教訓和優化建議;72形式:根據實際情況選擇合適的方法和工具,例如文檔、匯報、會議等,參與人員包括項目相關人員、客戶代表等;結果:形成一個回顧與總結報告或者記錄,包含了項目或者產品的質量數據、缺陷分析數據、經驗教訓數據和改進計劃數據等,如果有可轉換成技術需求卡的可以講需求卡的訪問鏈接一并記錄在回顧和總結報告中。將月度、季度、年度的回顧和總結進行標準化會是一種更好的實踐方式,這樣隨著團隊不斷的實踐和積累有助于團隊資產的積累并增強團隊成員之間的信任。也鼓勵團隊成員對內容、方式給出更多的改進想法,鼓勵更多的成員參與,保持會話的活躍度??傮w來說這種時間跨度比較大
142、的回顧和總結重點就是發現優秀的質量表現、挖掘質量實踐,建立質量回溯機制,如圖 5-11 所示。圖 5-11 回顧和總結從而通過制品過程中的質量保證和質量問題的回溯達到了質量回顧和總結的閉環。質量保證目的是質量水平的保持,質量回溯目的是質量保證水平的提高。5.4.85.4.8 文檔管理文檔管理1.1.介紹介紹在軟件研發的質量管理中涉及的文檔有多種多樣,包含了記錄軟件系統設計信息的軟件開發設計類規范性文檔,在過程中記錄、留痕信息的研發過程文檔以及記錄質量結果相關文檔等。規劃文檔管理部分的工作是確保組織能夠有效地管理和控制所有相關文檔,以支持業務的順利運作和質量管理的實施,文檔管理主要涉及了文檔標準
143、和流程、文檔73分類和存儲、文檔的訪問和權限約束、文檔的審計和改進。2.2.文檔標準和流程文檔標準和流程在組織內部需要有適用于組織的文檔標準和流程,包含文檔的創建、評審、批準、發布、修訂等流程,這些標準和流程需要組織內部全員推廣,接受審計。(1)創建:確定需要創建的文檔類型和內容,并制定相關的標準和要求,這里面包含了文檔的命名要求、特定的文檔模板、統一的文檔結構、組織級的文檔格式和樣式等。(2)評審:在文檔創建之后,進行文檔評審以確保其準確性、合規性和可行性。評審可以由相關部門或指定的人員進行,他們將評估文檔的內容、語法、技術要求、法規要求等方面。(3)批準:經過評審后,文檔需要獲得批準以確保
144、其適用和可靠性。文檔批準的過程可能需要相關領導或專門的批準人對文檔進行評估并簽署批準意見。(4)發布:批準的文檔將被發布給相關人員或部門,以確保他們能夠訪問、使用或參考。文檔發布可以通過內部網絡、共享文件夾、文檔管理系統等方式進行。(5)修訂:在使用過程中,文檔可能需要進行修訂以反映變更、修復錯誤或改進內容。修訂的過程應遵循變更控制的原則,包括記錄變更的日期、版本號、修訂內容和修訂人。(6)注銷和銷毀:當文檔不再需要時,可以根據規定的保留期限進行注銷,并銷毀。無論是電子文檔還是紙質文檔都需要確保文檔的安全銷毀,以防止機密信息泄露或不當使用。3.3.文檔分類和存儲文檔分類和存儲文檔的分類和存儲主
145、要是通過文件管理系統提供一種方式來組織文件,通過目錄、子目錄等層次結構為文件建立合適的組織方式,根據項目、主題、日期等相關因素進行分類,以便于快速的查找、訪問和方便的管理。該部分一些常見的方法包含文檔的分類和命名、文件的索引和元數據、安全存儲和備份、歸檔、訪問控制、版本控制和物理文檔的管理。(1)文檔的分類和命名:使用目錄、子目錄來建立層次化的組織結構。目錄可以按照項目、部門、主題、日期等不同的分類方式進行創建,以便將相關文檔組織在一起。同時也需要制定一致的文件命名規則,以便于識別和查找文檔。命名規則可以包括項目代碼、日期、文檔類型等關鍵信息,以確保文件名的描述性和唯一性。74(2)文件的索引
146、和元數據:應該為文檔建立索引和元數據,從而可以提供更加豐富的搜索和篩選的能力,元數據的定義可以包括文件名、作者信息、創建的日期、修改的日期、關鍵字、文檔內容摘要等等能夠幫助搜索、篩選能力的內容,從而可以實現快速的定位和篩選所需要的文檔。(3)安全存儲和備份:文檔是組織級別資產,要確保存儲截止的穩定和可靠,確保文檔的安全存儲和備份,以防止意外丟失或損壞。這可能涉及使用網絡存儲、服務器存儲、云存儲等技術,以及定期進行數據備份和恢復測試。歸檔:在不同行業,不同公司對過期、過時文檔都應該有對應的歸檔處理,對不再活躍或已過時的文檔進行歸檔和保留。歸檔的文檔應該按照指定的保留期限進行管理,并采取適當的安全
147、措施來保護其完整性和可訪問性;訪問控制:設置適當的文檔訪問權限,以確保只有經授權的用戶可以訪問和修改文檔。這包括定義不同用戶角色和權限級別,并進行權限管理和訪問審計;版本控制:確保文檔版本控制的實施,以防止混淆和誤用舊版本的文檔。這可以包括使用版本號、修訂日期、修訂記錄和變更控制表等工具來管理文檔的變更歷史和版本跟蹤;物理文檔管理:對于紙質文檔,可以使用物理存儲方法,如文件柜、文件夾、標簽等,以及檔案管理流程來進行分類、存儲和維護。4.4.文檔的訪問和權限約束文檔的訪問和權限約束文檔的訪問和權限約束是對文檔的使用價值描述,確保文檔的訪問權限受到適當的管理和控制,以保護機密信息和遵守數據隱私法規
148、。制定合適的權限級別和角色,并實施適當的訪問控制措施,主要包含用戶角色和權限級別、訪問控制、目錄權限等方面。(1)用戶角色和權限級別:定義不同的用戶角色和權限級別,根據用戶的職責和需要確定其可訪問和操作的權限范圍。確??稍L問的用戶有對應的權限,無法訪問的用戶無對應權限。(2)訪問控制:建立基于角色的訪問控制規則,將用戶分配到特定的角色,每個角色都有與之關聯的權限。這樣可以簡化權限管理,并根據用戶角色的變化自動更新權限,推薦使用訪問控制列表(ACL)進行角色和缺陷的控制。(3)目錄權限:除了針對單個文檔的權限控制,還需要約束對整個目錄以及結構層次的權限約束。這樣可以實現對目錄下所有文檔的批量權限
149、管理。76第六章 制定質量考核機制6.16.1 質量檢查設計質量檢查設計組織常見的質量檢查設計包括了組織內部的質量審核,項目關鍵里程碑的質量評審,版本發布的決策評審等活動。無論何種形式,質量檢查的目的是保護客戶不被劣質質量的產品所困擾,并能夠及早發現,預防問題的漏出,降低組織內耗,提升組織利潤率。設計有效的質量檢查機制,需要注重以下實際操作細節:1.1.檢查標準制定檢查標準制定根據過程的輸入和輸出要求,制定對應的檢查標準,如代碼規范檢查標準、文檔質量檢查標準。2.2.檢查表檢查表/列表設計列表設計將檢查標準化為可操作的清單,明確檢查內容、評分機制、不符項處理等。3.3.檢查時機確定檢查時機確定
150、確定關鍵節點進行檢查,如需求評審、代碼提交檢查、文檔評審等。4.4.抽查范圍確定抽查范圍確定根據資源情況,確定抽查的樣本量和比例,如抽查 10%的代碼提交。5.5.檢查人員確定檢查人員確定考慮相關角色的專業能力尤其是檢查人員,如測試人員檢查測試用例。6.6.檢查結果記錄檢查結果記錄記錄檢查發現的問題和改進機會,以進行跟蹤和進行數據分析。7.7.質量數據收集質量數據收集77收集質量檢查相關的數據,如發現問題的數量、類型和次數等。8.8.改進閉環設置改進閉環設置根據檢查結果,推動對應改進計劃,形成“檢查-改進”的閉環。9.9.檢查效果評估檢查效果評估定期評估檢查機制的效果,如問題發現效率和項目質量
151、提升情況。6.26.2 質量評估執行質量評估執行實施質量評估需要關注以下方面:1.1.評估計劃制定評估計劃制定明確評估的范圍、對象、時間線、資源及方法。評估可面向流程執行效果、產品質量達成程度等。2.2.評估團隊組建評估團隊組建由熟悉業務與質量管理的資深員工組成評估小組。也可外聘專業評估機構。3.3.評估標準準備評估標準準備依據組織質量目標與標準,制定量化的評估指標與考核標準。4.4.評估實施評估實施采用文檔檢查、過程觀察、數據統計等方式,收集評估證據信息。5.5.評估報告撰寫評估報告撰寫匯總評估結果,形成評估報告。報告需量化結果,確保結論客觀公正。6.6.改進機會識別改進機會識別識別評估中發
152、現的質量問題及改進機會,區分不同類別,按優先級排列。787.7.改進計劃制定改進計劃制定針對主要問題制定改進方案,確定負責人,考慮所需資源與時間。8.8.改進執行監督改進執行監督跟蹤改進計劃的執行進度,必要時采取措施,確保改進落地見效。9.9.評估效果確認評估效果確認在下一輪評估中,驗證前一輪改進效果,確保問題得到糾正,達到持續改進。6 6.3.3 質量改進閉環質量改進閉環建立質量改進的閉環機制需要注意以下方面:1.1.問題識別問題識別通過各種渠道收集質量問題、客戶反饋、員工建議,質量目標的錯失,客戶審核改進項等,從中識別質量改進機會。2.2.根本原因分析根本原因分析對關鍵問題進行根本原因分析
153、,找到問題產生的根源,而非僅治標。3.3.改進方案制定改進方案制定針對分析結果,由相關部門、團隊集體制定改進方案。4.4.執行計劃確定執行計劃確定明確改進方案的執行步驟、時間表、資源及職責分配,制定詳細計劃。5.5.改進執行改進執行按計劃組織實施改進措施,確保各項行動落到實處。6.6.效果評估效果評估79在改進后適當時間對效果進行評估,判斷問題是否得到解決。7.7.標準化和推廣標準化和推廣將經驗證的改進方案應用到更廣范圍,并形成規范,避免問題重復出現。8.8.持續改進文化培育持續改進文化培育不斷完善閉環流程,使質量改進成為一種組織文化和習慣。81第七章 實施質量培訓和文化建設7.17.1 質量
154、培訓計劃質量培訓計劃質量團隊的培訓是提升團隊技能和知識水平的關鍵環節。培訓內容包含且不限于以下幾方面:1.1.質量管理基礎質量管理基礎提供質量管理的基本概念和原則的培訓,包括質量規劃、質量控制、質量改進和度量等方面的知識。團隊成員需要了解質量管理的基本流程和技術。2.2.質量管理過程培訓質量管理過程培訓培訓對質量管理過程的要求,包括質量規劃、質量控制、質量度量和績效評估、質量改進等方面。團隊成員需要理解并熟悉這些過程的實施步驟和技巧。3.3.領域相關的培訓領域相關的培訓根據團隊所在的行業和項目類型,提供領域相關的培訓,例如軟件開發方法、測試技術、需求工程等。這些培訓可以幫助團隊成員在具體的質量
155、管理活動中應用相關的領域知識。4.4.軟件配置管理培訓軟件配置管理培訓如果團隊負責軟件配置管理,需要提供相關的培訓,包括配置管理的基本原理、工具和技術的使用方法、版本控制、變更管理等方面的知識。5.5.溝通和協作培訓溝通和協作培訓團隊成員需要具備良好的溝通和協作能力,因此可以提供溝通和協作技巧的培訓,包括團隊合作、有效溝通、沖突解決等方面的內容。為了更好的組織質量團隊培訓,建議采取以下步驟:1.1.確定培訓需求確定培訓需求根據團隊成員的角色和職責,確定每個成員需要接受的培訓內容,并結合項目和組織的82需求進行評估。2.2.制定培訓計劃制定培訓計劃根據培訓需求,制定詳細的培訓計劃,包括培訓內容、
156、培訓形式(例如面對面培訓、在線培訓、研討會等)、培訓時間和地點等。3.3.確定培訓資源確定培訓資源確定培訓所需的資源,包括培訓師資、培訓材料、培訓設施等??梢钥紤]內部培訓師、外部專家或培訓機構的合作。4.4.組織培訓活動組織培訓活動根據培訓計劃,安排培訓活動的時間和地點,并發送邀請給參與培訓的團隊成員。確保培訓活動的順利進行,包括提供必要的培訓設施和技術支持。5.5.提供培訓材料提供培訓材料為培訓參與者提供相關的培訓材料,包括課程大綱、參考資料、案例研究等。這些材料可以幫助參與者更好地理解和掌握培訓內容。6.6.進行培訓評估進行培訓評估在培訓結束后,進行培訓效果評估,收集參與者的反饋和意見。根
157、據評估結果,對培訓進行改進和優化,以提高培訓的質量和效果。7.7.持續學習和發展持續學習和發展質量團隊應鼓勵成員進行持續學習和發展,提供進一步的培訓機會和資源,幫助團隊成員不斷提升質量管理的能力和水平。需要注意的是,培訓計劃應根據組織的實際情況進行定制化,根據團隊成員的角色和職責、項目特點和質量管理需求進行調整。同時,培訓應注重實踐和案例分析,以幫助團隊成員將所學知識應用到實際工作中,并促進知識的分享和交流。7.27.2 質量文化推廣質量文化推廣構建一個積極健康的質量文化對于質量團隊的成功至關重要。以下方式建議能幫助大家83構建一個良好的質量文化:1.1.高層發聲高層發聲由高管在重要會議和場合
158、發表關于質量的講話,釋放推進質量文化的信號,在整個組織中強調質量意識的重要性。這可以通過培訓、宣傳和激勵機制來實現。質量意識的根本是每個團隊成員都要理解他們的工作對最終產品質量的影響,并對提供高質量的成果負責。2.2.宣傳推廣宣傳推廣通過內部刊物、宣傳海報、郵件等多種方式進行質量文化宣傳。3.3.實施質量管理過程實施質量管理過程確保團隊遵循一套規范化的質量管理過程,包括質量計劃、質量控制和質量改進。這些過程可以幫助團隊識別和解決質量問題,并確保在項目的各個階段都有適當的質量控制措施。4.4.鼓勵團隊合作鼓勵團隊合作建立一個團隊合作的環境,鼓勵團隊成員之間的溝通和協作。團隊成員應該能夠自由地分享
159、知識和經驗,并共同解決質量問題。這可以通過定期組織團隊會議、知識分享活動和跨部門合作來實現。5.5.典型案例示范典型案例示范總結和展示質量管理良好實踐的正面案例,樹立典型,進行橫向推廣。6.6.目標考核目標考核確保團隊對質量目標有清晰的理解,并提供可衡量的指標來評估和監控團隊的績效。這有助于激勵團隊成員努力達到高質量標準,并及時糾正任何潛在的問題。將質量目標納入員工和部門績效考核體系,強化質量意識。7.7.培訓強化培訓強化繼續深化質量管理理念培訓,使員工形成共同理念。8.8.經驗共享經驗共享84鼓勵知識共享和學習,使團隊成員能夠不斷提升自己的技能和知識水平。這可以通過組織培訓課程、工作坊和交流
160、活動來實現。團隊成員應該被鼓勵參與專業社區,并將新的最佳實踐引入到團隊中。9.9.授權激勵授權激勵對在質量管理中表現突出的員工給予授權和激勵。10.10.領導力示范領導力示范管理者以身作則,在日常工作中踐行質量優先。11.11.持續改進持續改進鼓勵團隊成員積極參與持續改進活動。建立一個開放的反饋機制,鼓勵團隊成員提出改進建議并參與改進實施。這可以通過定期審查團隊的績效、收集客戶反饋和組織內部審核來實現。86第八章 提供資源保障8.18.1 人力資源配備人力資源配備8.1.18.1.1 人力資源配備要點人力資源配備要點在質量管理體系中,需要關注人力資源的以下配備:1.1.質量管理團隊配備質量管理
161、團隊配備設立獨立的質量管理部門,或在各部門設立質量管理角色,確保質量工作的推進。2.2.培養質量專業人才培養質量專業人才通過內部培養和外部招聘,獲取具備質量管理專業知識和技能的人才。3.3.質量管理崗位設計質量管理崗位設計設計質量經理、質量工程師、質量審核員等質量管理崗位,明確崗位職責。4.4.質量考核激勵質量考核激勵建立質量目標責任制,將質量指標納入員工績效考核,形成質量激勵。5.5.供應商質量人員交流供應商質量人員交流與重要供應商開展質量管理人員的交流,提升供應鏈質量意識。6.6.人力資源培訓規劃人力資源培訓規劃根據組織質量目標,制定相應的質量管理培訓規劃。7.7.質量協作機制建設質量協作
162、機制建設通過工作組等形式,促進與其他部門的質量管理人員協作。878.8.質量人才梯隊建設質量人才梯隊建設關注質量人才的職業規劃,建立質量管理人才梯隊。8.1.28.1.2 人員管理人員管理要想做好質量管理,需要關注所謂的“鐵三角”人、流程、技術,而這三個維度缺一不可。本節主要討論的就是關于“人”的維度,因為人的因素往往是這三個維度中最重要的。怎樣才能進行有效的人員管理,我們可以借鑒人力資源管理領域的四個環節“選、用、育、留”來闡述如何對人員進行管理。1.1.選選“選”就是要選擇合適的人員團隊。需要注意的是這里提到的“合適”并不是說指要選擇資深人員,因為資深人員一般成本會比較高,對于項目而言是需
163、要考慮投入產出比的,所以一個團隊不可能全都由“高手”組成。關于如何才能選到合適的人,有以下幾點實踐可以供讀者參考:(1)要明確招聘需求:即要清晰地知道團隊需要招什么類型、什么技能、什么背景的人。只有需求清晰了,招聘同事或獵頭在尋找候選人的時候才能精準地找到相應合適的人。(2)引入多元化的招聘渠道:不僅僅依賴傳統的招聘渠道,如招聘網站和招聘中介,還可以考慮利用社交媒體、校園招聘、員工推薦等渠道,以擴大招聘范圍,吸引更多優秀的候選人。(3)簡歷篩選要注意細節、“管中窺豹”:比如我們在看簡歷的時候可以檢查中文和英文的內容是否對應,以此推論這個候選人是否細心。因為從事質量管理工作的人如果不夠細心是做不
164、好的,如果對自己簡歷中的問題都熟視無睹,那就很難證明他可以做好質量管理。(4)進行有效的面試和評估:設計有針對性的面試問題,結合崗位要求和能力評估,進行綜合性的評估??梢圆捎貌煌问降拿嬖?,如行為面試、案例面試等,以獲取更全面的了解候選人的能力和潛力??梢赃M行多輪次面試,并讓多個面試官參與評估候選人。不同的面試官可以提供不同的觀點和評估維度,有助于更全面地評估候選人的能力和適應性。(5)進行背景調查和參考核實:在最后決定前,進行背景調查和參考核實,聯系候選88人的前雇主、直屬上司或同事,了解他們的工作表現、團隊合作能力和職業操守等方面的信息。(6)注重文化匹配:除了技能和經驗,確保候選人與組織
165、的價值觀和文化相匹配??紤]候選人的工作風格、溝通方式、適應能力等因素,以確保他們能夠融入并與團隊協作。(7)態度和自學能力比當前所知更重要:我們不要因為候選人個別問題答不出,就斷定該候選人不適合?,F在不會不代表以后也不會,關鍵是候選人要有誠懇的態度、主動的意識和較好的自學能力。只要具備這些品質,假以時日,經過一段時間的鍛煉后他一樣可以成為合格的質量管理人員。2.2.用用“用”是指要用好這些人才,最大化的發揮每個人的能力。關于“用”以下有一些實踐可以供讀者參考:(1)適應性培訓:按照所到的團隊培訓對應內容,為員工提供適應性培訓,幫助他們快速適應組織文化、工作流程和團隊合作方式。培訓可以包括組織介
166、紹、崗位培訓、工作流程說明等,以幫助他們盡快上手。(2)要把合適的人放在合適的崗位中,人盡其才:有人天生就喜歡鉆研技術,那可以安排偏技術方向的工作崗位;有人屬于外向型,喜歡與人溝通,那就可以安排多與客戶或者外部對接的崗位,從而可以發揮溝通能力強的優點。只有把每個人放在自己喜歡而且適合的位置,他才會有很強的主動性。而如果位置放錯了,那么這個人不僅會喪失主動性,而且可能還會導致人員流失的風險。(3)做好績效管理:建立明確的績效管理體系,設定明確的目標和績效標準。定期進行績效評估和反饋,幫助員工了解自己的表現,并提供改進和成長的指導。3.3.育育“育”就是要考慮如何培養人員,幫助他們提升自我。關于“
167、育”有以下一些實踐可以供讀者參考:(1)采用激勵的方式而不是懲罰的方式來培養人才:使用激勵方式將會收到更加明顯地效果,因為懲罰的方式短期內或許有效,但可持續性不強。激勵的方式可以很多種,比如可以搞些內部競賽贏大獎之類的活動,一方面可以活躍團隊氣氛,另一方面也可以提高成員學習熱情從而增長知識。需要注意的是在進行獎勵時物質和精神獎勵同樣有效。89其實有時候,員工對于領導的認可和表揚可能比給它發點獎金的激勵更加有效。(2)建立導師制度:建立導師制度,將新員工與經驗豐富的員工或領導者進行配對,進行經驗分享和指導。導師可以提供實踐經驗、指導建議和職業支持,幫助新員工更好地融入和發展。(3)注重對新員工的
168、培養:一般來說新員工剛進公司,對環境比較陌生,心理上會有不安全感。這時如果能對員工多加關心和愛護、幫助員工一起設計和規劃未來發展的方向,這對員工以后的成長非常重要。一方面能迅速消除新員工的陌生感,盡快融入團隊;另一方面可以按照團隊要求的方向去發展,一張白紙總是比涂滿色彩的紙張能畫出更美麗的圖案。(4)定期評估和反饋:進行定期的績效評估和反饋,與員工討論他們的職業發展和培訓需求。根據評估結果,制定進一步的培訓計劃和發展機會。(5)建立學習型組織文化:鼓勵學習和知識共享的文化,在組織中營造一個積極的學習環境。提供資源和平臺,讓員工可以分享經驗、學習新知識,并互相支持和合作。4.4.留留“留”就是要
169、留住對團隊有價值的人員。對團隊沒有價值或者是“害群之馬”,當然需要從團隊中移除出去。如何才能留住人才,有以下幾點實踐供讀者參考:(1)要讓成員了解團隊風格,幫助其適應風格:每個公司、每個組織、每個團隊都有自己的風格。作為團隊中的一分子,只有適應這個風格,融入到這種風格,才能在團隊中穩定下來。如果成員發現不能適應目前團隊的氛圍,那是很難能留得住人的。(2)主管要多與團隊成員溝通:管理學有過一個研究,員工的離職,90%是和他的頂頭上司有關。作為團隊主管,需要經常性和下屬進行溝通,不管是正式的還是非正式的溝通。溝通可以讓員工的情緒得到宣泄,起到防微杜漸的效果,比如可以規定自己每周需要和三名下屬進行溝
170、通聊天,可以一起喝咖啡或者一起聚餐,這樣在相對放松的環境下,員工往往會比較容易敞開心扉,也有助于他釋放負面情緒,起到穩定團隊的作用。(3)創造內部崗位輪換的機會:有些崗位做了很長一段時間后人就會疲憊,變得沒有動力。這時可以考慮團隊內部進行輪換。這樣一方面讓成員保持新鮮感,另一方面也讓成員有機會接觸和學習新的東西。(4)提供職業發展和晉升機會:為員工提供良好的職業發展和晉升機會。制定明確的晉升路徑和發展計劃,為他們提供挑戰性的項目、培訓機會和導師指導,幫助他們實現90個人和職業目標。人員管理只要做好選、用、育、留四個環節,團隊就會變得穩定,人員素質就會變得更好,而整個團隊效率就會變得更高。8.2
171、8.2 基礎設施建設基礎設施建設質量管理體系需要以下基礎設施建設:1.1.質量管理信息系統質量管理信息系統選擇或開發質量數據收集、分析和報告的信息系統平臺。通常與項目管理信息系統 PMIS合二為一。2.2.質量知識庫建設質量知識庫建設構建質量管理知識庫,收集質量技術文件、最佳實踐等。3.3.質量工具配備質量工具配備配備質量控制統計工具、質量函數展開工具、質量成本核算工具等。4.4.測試環境建設測試環境建設提升軟件測試環境的覆蓋度,配置模擬生產環境中不同軟硬件版本,滿足測試對環境的要求。5.5.質量管理平臺建設質量管理平臺建設創建質量管理可視化展示平臺,展示質量目標、進度和關鍵質量指標。6.6.
172、智能質量管理應用智能質量管理應用采用圖像識別、大數據分析等新技術提升質量管理能力。7.7.質量管理專家庫建設質量管理專家庫建設建立內部質量管理專家庫,開展經驗傳遞。918.8.質量管理文化場館質量管理文化場館建設質量管理主題環境、展覽等文化場館。8.38.3 資源分配保障資源分配保障要確保質量管理體系建設取得進展,需要在以下方面提供資源保障:1.1.預算投入保障預算投入保障在年度預算中,確保質量管理項目和基礎建設的資金需求。2.2.人員配備保障人員配備保障根據質量組織結構和崗位設置,逐步補充質量管理人員編制。3.3.能力建設保障能力建設保障按照人員培訓規劃,逐步擴大培訓規模,提升能力。4.4.
173、設備投入保障設備投入保障根據信息化、自動化需求,配備質量管理信息系統。5.5.激勵考核保障激勵考核保障將質量目標完成情況納入員工績效考核體系,形成質量激勵。6.6.組織協同保障組織協同保障建立質量管理與其他部門的協作機制,爭取組織資源協同支持。7.7.過程管控保障過程管控保障優化質量管理各項流程,提高資源使用效率。93第九章 持續改進與評審9.19.1 內部質量審核(內部質量審核(AuditAudit)內部質量評審指組織內部針對質量管理體系進行的評審活動,開展內部質量評審需要注意以下要點:1.1.評審范圍確定評審范圍確定明確評審質量管理體系的范圍,如某項流程、關鍵崗位活動等。2.2.評審計劃制
174、定評審計劃制定確定評審的時間區間、資源投入、評審小組等,形成評審實施計劃。3.3.評審標準擬定評審標準擬定根據質量管理體系要求,擬定評審的檢查項和評分標準。4.4.評審小組組建評審小組組建由質量管理和相關部門經驗豐富的員工組成評審小組。5.5.開展評審開展評審通過訪談、抽查、數據分析等方式,收集評審證據信息。6.6.不合格項處理不合格項處理對發現的不符合項,要求相關方面限期整改。7.7.評審報告撰寫評審報告撰寫撰寫評審報告,記錄評審結果、發現問題及整改情況。8.8.評審效果評估評審效果評估94評估評審的覆蓋率和效果,不斷優化評審工作。9.29.2 外部質量審核外部質量審核外部質量考核是指由組織
175、外部的獨立機構或個人對軟件研發過程和成果進行評估和考核。與內部質量評審相比,外部質量考核更注重客觀性和公正性,因為外部機構或個人通常不具備組織內部的各種利益關系和主觀因素干擾。外部質量審核可以簡單分類為“二方審核”或“三方審核”。二方審核通常是由甲方客戶或者甲方客戶委托的第三方對組織進行的審核;而“三方審核”是由獨立的,經過授權的第三方機構對組織進行的審核。以下是外部質量考核的一些要點:1.1.審核審核機構選擇機構選擇選擇具備相關經驗和資質的外部機構或個人進行質量考核,確保其能夠進行客觀、公正的評估。2.2.審核范圍確定審核范圍確定明確外部質量考核的范圍,包括需要評估的軟件研發階段、流程、成果
176、等。同時,需要確定考核的目標和期望的結果,以便在考核過程中進行有針對性的檢查。3.3.審核標準制定審核標準制定根據軟件研發質量管理體系的要求,制定具體的考核檢查項和評分標準。這些標準應該與軟件研發過程的具體環節相對應,以便在考核過程中進行準確的評估和判斷。4.4.考核實施考核實施由外部機構或個人對軟件研發過程和成果進行評估和考核,通過訪談、抽查、數據分析等方式,收集能夠證明軟件研發質量管理體系符合性的證據信息。5.5.不合格項處理不合格項處理在考核過程中發現的不符合項,需要要求相關方面限期整改。對于嚴重的不符合項,可以采取現場糾正措施或者進行跟蹤管理,確保不符合項得到及時有效的解決。956.6
177、.審核審核報告撰寫報告撰寫考核報告是外部質量考核的重要成果之一,需要詳細記錄考核結果、發現問題及整改情況??己藞蟾鎽撉逦?、準確、完整地反映考核過程和結果,以便相關方面了解軟件研發質量管理體系的現狀和改進方向。7.7.審核效果評估審核效果評估最后,需要對外部質量審核的效果進行評估。評估的內容包括考核的覆蓋率、發現問題的數量和質量、整改措施的有效性等。通過評估,可以發現外部質量考核的不足之處,并采取相應的措施進行改進和優化,提高軟件研發質量管理體系的整體水平。需要注意的是,外部質量考核通常是基于特定的目的和要求進行的,例如認證、評估、審核等。因此,在具體的實施過程中,需要根據外部機構或個人的要求
178、和標準進行針對性的評估和考核。9.39.3 持續改進機制持續改進機制持續改進機制是指在一個組織內部建立一種機制,通過不斷監測、評估、反饋和改進,推動軟件研發質量管理體系的持續優化和提升。以下是持續改進機制的一些要點:1.1.建立持續改進的文化建立持續改進的文化在組織內部建立持續改進的文化,鼓勵員工積極參與質量改進活動,并營造一種不斷追求卓越的氛圍。2.2.監測和分析監測和分析通過各種數據監測和分析手段,收集和分析軟件研發過程中的數據,包括缺陷率、任務完成時間、代碼質量等,以了解軟件研發過程的問題和改進空間。3.3.評估和反饋評估和反饋通過定期的評估和審核,對軟件研發質量管理體系進行全面的檢查和
179、評估,發現并反饋存在的問題和不足之處,提出改進建議和方向。4.4.建立問題跟蹤機制建立問題跟蹤機制建立問題跟蹤機制,對發現的問題進行跟蹤和管理,確保問題得到及時有效的解決。同96時,對解決問題的過程進行記錄和總結,為將來的改進提供參考和依據。5.5.推廣最佳實踐推廣最佳實踐總結和推廣軟件研發過程中的最佳實踐,將成功的經驗和方法進行分享和傳播,以推動在整個組織內部的經驗交流和知識共享。6.6.激勵和獎勵激勵和獎勵建立激勵和獎勵機制,對積極參與改進活動并取得明顯成果的員工進行表彰和獎勵,以激發員工的積極性和創造性。7.7.持續改進循環持續改進循環持續改進機制是一個不斷循環的過程,需要不斷監測、評估
180、、反饋和改進。通過不斷優化和提升軟件研發質量管理體系,可以提高軟件研發的效率和質量,為組織的長期發展提供保障和支持。98附錄 A 常見的質量管理體系介紹(QMS)不同的行業,價值創造流程會不一樣。不存在一套流程適用所有的行業,所以,逐漸形成不同的,具有行業特色的質量管理體系。目前,國際上的質量管理體系標準主要有 ISO9000,卓越績效模式,QS9000,ISO/TS16949,VDA,TL9000,等。同時,針對軟件行業的特殊性,有 IT 軟件的 CMMI 軟件能力成熟度模型,汽車軟件的 ASPICE 評估模型,這些模型都是質量管理體系的有效補充。不同的行業標準,法令法規的要求,會有各自深深
181、的行業烙印,形成行業特色的,必須遵守的規范。體系標準會規定流程必須包含特定的,本行業需要遵守的要求,比如電信行業標準 TL9000 要求必須實現產品需求到產品設計,開發和測試的雙向可追蹤性。因為行業特色的存在,如果要進入到該行業,成為行業中的一員,組織需要獲取本行業必要的質量體系認證,驗證和確認體系的適用性和有效性。組織一旦獲得了認證并拿到認證證書,就可以對外宣傳(但需遵守使用原則)組織已成功獲得認證。為保證認證資格的有效性,組織還需要繼續實施所有質量體系的要求。認證機構也會定期對標準執行情況要進行檢查(監督審核)。認證有效期一般為 3 年,三年后需要再次評價(復評),復評合格更換認證證書。表
182、 A-1 常見的質量管理體系及適用行業行業質量管理體系任何行業ISO9001汽車行業(硬件相關)IATF 16949醫療服務行業ISO13485食品行業ISO99服務行業ISO20000IT 信息技術ISO27001航空工業AS9100D電信/信息通訊TL9000道路交通安全ISO39001圖 A-2 是 ISO 國際標準化組織 2018 年對各質量管理體系認證證書的最新調查結果。很明顯,ISO9001 仍然是認證證書最多,行業最廣的一種認證。圖 A-2 ISO 2018 認證調查100ISO9000 族標準是國際標準化組織為適應國際經濟技術交流和國際貿易發展的需要而制定的質量管理和質量保證標
183、準,現已有170多個國家采用。特別是2000年最新版ISO9001:2000 質量標準,具有適用性廣、通用性強,對與質量有關的活動進行系統控制的優勢,其核心內容是“使客戶滿意”。貫徹 ISO9000 族標準已被眾多企業所看重,成為企業證明自己產品質量、工作質量的一種“護照”。A.1A.1 ISO9001ISO9001ISO9001 的核心質量管理體系的架構如圖 A-3 所示:圖 A-3 ISO9001 的核心質量管理體系的架構具體來講,ISO9001 結構分為 10 個章節。前面 3 個章節是介紹性的,后面 7 個章節包含質量管理體系的要求。以下是 7 個主要章節的內容。第 4 節:組織的環境
184、本節討論了理解組織的要求,以實施質量管理體系。它包括識別內部和外部因素,識別相關方及其期望,定義質量管理體系范圍以及確定過程及其相互作用的要求;第 5 節:領導作用領導作用要求涵蓋了最高管理者在實施質量管理體系方面發揮作用的必要性。最高管理者需要通過確保以顧客為關注焦點,確定和傳達質量方針以及在整個組織中分配角色和職責來證實對質量管理體系的承諾;101第 6 節:策劃最高管理者還必須策劃質量管理體系的持續有效。需要評估質量管理體系在組織中的風險和機遇,并且需要確定改進的質量目標并制定計劃以實現這些目標;第 7 節:支持支持這一節規定質量管理體系所有資源的管理,涵蓋控制所有資源的必要性,包括人力
185、資源、建筑和基礎設施,工作環境,監測和測量資源以及組織的知識。該章節還包括有關能力、意識、溝通和成文信息(過程所需的文件和記錄)的控制要求;第 8 節:運行運行要求涉及策劃和建立產品或服務的所有方面。本節包括對策劃、產品要求評審、設計、外部供方的控制、產品或服務的提供和放行以及不合格過程輸出控制的要求;第 9 節:績效評價本節包括確保監控質量管理體系是否運行良好所需的要求,包括監視和測量過程、評估客戶滿意度、內部審核以及對運行中的質量管理體系進行管理評審;第 10 節:改進最后一節包括使質量管理體系持續改進的要求。這包括需要評估不合格過程并采取糾正措施。A.2A.2 IATF6949IATF6
186、949(TS16949TS16949)ISO/TS16949“質量管理體系汽車行業生產件與相關服務件的組織實施 ISO9001:2000的特殊要求”。作為汽車生產的兩大基地之一,美國三大汽車公司(通用汽車、福特和克萊斯勒)于 1994年開始采用 QS9000 作為其供應商統一的質量管理體系標準;同時另一生產基地,歐洲特別是德國均各自發布了相應的質量管理體系標準,如 VDA6.1、AVSQ94、EAQF 等。因美國或歐洲的汽車零部件供應商同時向各大整車廠提供產品,這就要求其必須既要滿足 QS9000,又要滿足如 VDA6.1,造成各供應商針對不同標準的重復認證,這就急需要求出臺一套國際通用的汽車
187、行業質量體系標準,以同時滿足各大整車廠要求。為了協調國際汽車質量系統規范,由世界上主要的汽車制造商及協會成立了一個專門機構,稱為國際汽車工作組(International Automotive Task Force,簡稱 IATF)。IATF的成員由如下 9 家整車廠:寶馬(BMW Group),克萊斯勒(Chrysler LLC),戴姆勒(Daimler AG),菲亞特(Fiat Group Automobiles),福特(Ford Motor Company),通用(General Motors Corporation),標致(PSA Peugeot Citroen),雷諾(Renault
188、)和大眾(VolksWagen AG)以及 5 個國家的監督機構:美國國際汽車監督局(IAOB),意大利汽車制造商協會(ANFIA),法國車輛設備工業聯盟(FIEV),英國汽車制造與102貿易商協會(SMMT)和德國汽車工業協會-質量管理中心(VDA-QMC)組成。IATF 對 3個歐洲規范 VDA6.1(德國),AVSQ94(意大利),EAQF(法國)和 QS-9000(北美)進行了協調,在和 ISO9001:2000 版標準結合的基礎上,在 ISO/TC176 的的認可下,制定出了 ISO/TS16949:2002 這個規范(2016 年之后,ISO 和 IATF 組織共同宣布,IATF1
189、6949標準名稱替代 ISO/TS16949)。2002 年 3 月 1 日,ISO 與 IATF 公布了國際汽車質量的技術規范 ISO/TS16949,這項技術規范適用于整個汽車產業生產零部件與服務件的供應鏈,包括整車廠,2002 年版的ISO/TS16949 已經生效,并展開認證工作。在 2002 年 4 月 24 號,福特,通用和克萊斯勒三大汽車制造商在美國密歇根州底特律市召開了新聞發布會,宣布對供應廠商要采取的統一的一個質量體系規范,這個規范就是ISO/TS16949。供應廠商如沒有得到 ISO/TS16949 的認證,也將意味著失去作為一個供應商的資格。目前,法國雪鐵龍(Citroe
190、n),標志(Peugeot),雷諾(Renault)和日本日產(Nissan)汽車制造商已強制要求其供應商通過 ISO/TS16949 的認證。ISO/TS16949 是國際汽車行業的技術規范,是基于 ISO9001 的基礎,加進了汽車行業的技術規范。目 ISO/TS16949 的最新版本是 2016 版,該版本是基于 ISO900:2015 發展而來,其整體的規范架構基本與 ISO9001 一致。但更著重于缺陷防范、減少在汽車零部件供應鏈中容易產生的質量波動和浪費,關注產品成本、在供應鏈中持續不斷的改進、產品質量改進、生產力改進、成本的降低、強調缺點的預防、SPC 的應用、防錯措施、減少變差
191、和浪費、確保存貨周轉及最低庫存量、質量成本、非質量的額外成本(待線時間,過多搬運)。圖 A-4IATF6949 的標準目錄結構,可以看出,其目錄保持了與 ISO9001:2015的完全一致。而圖七則是 IATF 在 ISO900:2015 基礎上增加的具體要求示例。103圖 A-4 IATF6949 標準目錄結構圖 A-5 增加具體要求實例ISO/TS16949 標準的針對性和適用性非常明確,只適用于汽車整車廠和其直接的零備件制造商,也就是說這些廠家必須是直接與生產汽車有關的,能開展加工制造活動,并通過這種活動使產品能夠增值。同時,對所認證公司廠家的資格也有著嚴格的限定,那些只具備支持功能的單
192、位,如設計中心,公司總部和配送中心等,或者那些為整車廠家或汽車零備件廠家制造設備和工具的廠家,都不能獲得認證。對 ISO/TS16949 認證的管理是由 5 大監督機構代表 IATF 來完成的,它們采用相同的程序方法來監督 ISO/TS16949規范的操作和實施,以在全世界形成一個標準和操作完全統一的系統。對受審核方的要求 ISO/TS16949 認證注冊,只適用于汽車整車廠和其直接的零部件制造商。這些廠家必須是直接與生產汽車有關的,具有加工制造能力,并通過這種能力的實104現使產品能夠增值。要求獲得 ISO/TS16949:2009 認證注冊的公司,必須具備有至少連續 12 個月的生產和質量
193、管理記錄,包括內部評審和管理評審的完整記錄。對于一個新設立的加工場所,如沒有 12 個月的記錄,也可經評審符合確認質量系統規范要求后,由認證公司可簽發由 NQA 頒發的“符合性證明”。當具備了 12 個月的記錄后,再進行認證審核注冊。經認證獲頒證書的機構,如不能繼續保持質量體系的正常運轉和產品質量的一致性,將有被吊銷證書的風險。而 NQA 為獲得 IATF 認可的少數認證機構之一,全面開展 TS16949 的認證活動。SNQA 作為 NQA 的亞太總部,積極地為汽車行業供應商及 OEM 的提供認證。SNQA 在中國各地目前擁有近四十名 TS16949 資深審核員,能根據客戶需求迅速安排現場審核
194、。A.3A.3 CMMICMMICMMI(Capability Maturity Model Integration For Software,軟件能力成熟度模型集成)是在 CMM(Capability Maturity Model For Software,軟件能力成熟度模型)的基礎上發展而來的。CMMI 是由美國卡耐基梅隆大學軟件工程研究所(SoftwareEngineering Institute,SEI)組織全世界的軟件過程改進和軟件開發管理方面的專家歷時四年而開發出來的,并在全世界推廣實施的一種軟件能力成熟度評估標準,主要用于指導軟件開發過程的改進和進行軟件開發能力的評估。所以,嚴格
195、意義上來講,CMMI不屬于質量管理體系標準,是質量管理體系之上的對軟件成熟度的能力評估標準。CMMI 模型最初是為了美國國防部衡量其軟件承包商的軟件產品質量及交付軟件產品能力,后期,CMMI 模型從軟件工程領域擴展到任何組織,行業,幫助他們開發,改進,度量組織能力及績效。CMMI 描述的更多的行業認可的標準實踐方法,聚焦于如何改進績效,并將企業運營與商業目標對齊。隨著新的工程實踐,例如敏捷,CMMI 也與時俱進,與這些新興的工程實踐相結合。圖 A-6 是摘自 CMMI Institute 的對企業管理的調查結果,從另一角度進一步說明為什么要引進業界最佳實踐:對標和持續改進。105圖 A-6 C
196、MMI Institute 對企業管理的調查結果CMMI 模型是由一系列業界的最佳實踐方法構成。這些實踐方法按照關鍵業務能力來分類,幫助企業解決其面臨的各種挑戰,比如,產品工程和產品開發,績效提高,服務交付及管理,穩定交付,業務可塑性,管理業務風險,選擇及管理供應商,質量保證,員工管理等(具體的關鍵業務能力參見圖 A-7)。圖 A-7 業務關鍵能力CMMI 模型包括開發 CMMI 模型,服務 CMMI 模型,供應商管理 CMMI 模型。其中,最常用的模型是開發 CMMI 模型。目前,CMMI 標準的最新版本是在 2018 年 3 月發布的開發 CMMI模型 V2.0,2020 年 4 月份,C
197、MMI 模型 V1.3 版將不再支持。CMMI 開發模型 2.0 版本共包括了 4 大類,9 個能力域,20 個實踐域(CMMI1.3 版本稱之為流程域,共 22 個流程域。),這 20 個實踐域包括(如圖 A-8):106圖 A-8 二十個實踐域1.1.執行類別執行類別(1)質量保證能力(ENQ:Ensuring Quality)RDM:(Requirement Development&Management)需求開發和管理。需求開發的目的在于定義系統的邊界和功能、非功能需求,以便涉眾(客戶、最終用戶)和項目組對所開發的內容達成一致。而需求管理的目的是在客戶和軟件項目之間就需要滿足的需求建立和
198、 維護一致的約定;PQA:(Process Quality Assurance)過程和產品質量保證。為項目組和管理層提供項目過程和相關工作產品的客觀信息。VV:(Verification&Validation)驗證及確認。驗證確保選定的工作產品滿足需求規格,并確認證明產品或產品部件在實際應用下滿足應用要求;Peer Review:同行評估,確保第二雙眼睛一起保障質量。(2)產品工程與開發能力(EDP:Engineering and Developing Product)TS:(Technical Solution)技術解決方案。在開發、設計和實現滿足需求的解決方案。解決方案的設計和實現等都圍繞
199、產品、產品組件和與過程有關的產品;107PI:(Product Integration)產品集成。從產品部件組裝產品,確保集成產品功能正確并交付產品。(3)交付與服務管理能力(DMS;Delivering and Managing Service;該能力域屬于CMMI 服務模型)SDM:(Service Delivery Management)服務交付管理。產品如何交付給客戶,開始產品售后維保期;STSM:(Strategic Service Management)服務管理戰略。應組織戰略計劃需要,如何建立并維護標準服務。(4)供應商選擇與管理能力(SMS:Selecting and Mana
200、ging Supplier)SSS:(Supplier Source Selection)供應商選擇。組織如何選擇潛在供應商,如何發標書應答等實踐(該實踐域屬于 CMMI 服務模型);SAM:(Supplier Agreement Management)供應商合同管理。如果有外包或采購產品或服務的行為時,旨在對以正式協定的形式從項目之外的供方采辦的產品和服務實施管理。組織如何評估,量化供應商的績效。2.2.管理類別管理類別(1)計劃和工作管理能力(PMW:Planning and Managing Work)PP:(Project Plan)項目計劃。保證在正確的時間有正確的資源可用。為每個人
201、員分配任務。協調人員。根據實際情況,調整項目;MC:(Monitoring and Control)項目監督與控制。通過項目的跟蹤與監控活動,及時反映項目的進度、費用、風險、規模、關鍵計算機資源及工作量等情況,通過對跟蹤結果的分析,依據跟蹤與監控策略采取有效的行動,使項目組能在既定的時間、費用、質量要求等情況下完成項目;EST:(Estimating)評估。對開發或收購或交付的解決方案從工作量,時間和成本進行評估,包括工作本身及所需要的資源。評估用來更好的做計劃和鎖定項目,降低風險;CONT:(Continuity)持續性。對潛在影響公司業務運營的事件或風險提前計劃相應的應對措施,保障業務即使
202、在災難時仍然能夠順利進行(該實踐域屬于 CMMI 服務模型)。108(2)業務彈性能力(MBR:Managing Business Resilience)RSKM:(Risk Management)風險管理。識別潛在的問題,以便策劃應對風險的活動和必要時在整個項目生存周期中實施這些活動,緩解不利的影響,實現目標;IRP:(Incident Resolution&Prevention)服務事件解決及預防。解決產品或解決方案的事件,降低對客戶的影響,提高服務效率(該實踐域屬于 CMMI 服務模型)。(3)人員管理能力(MWF:Managing the Work Force)OT:(Organiza
203、tional Training)組織培訓管理。增加組織各級人員的技能和知識,使他們能有效地執行他們的任務。3.3.支撐類別支撐類別(1)支撐實施能力(SI:Supporting Implementation)CM:(Configuration Management)配置管理。建立和維護在項目的整個軟件生存周期中軟件項目產品的完整性;DAR:(Decision Analysis and Resolution)決策分析與解決。應用正式的評估過程依據指標評估候選方案,在此基礎上進行決策;CAR:(Causal Analysis and Resolution),識別缺失的原因并進行矯正進一步的防止未來
204、再次發生。(2)管理安全能力(Manage Safety)(3)管理信息安全能力(Manage Security)4.4.改進類別改進類別(1)習慣養成及堅持能力(SHP:Sustaining Habits and Persistence)GOV:(Governance)管理架構。提供指南、建議給組織的高層領導,如何贊助,管控流程管理相關的行動,降低流程實施的成本,提高流程與組織目標的契合度;II:(Implementation Infrastructure)實施基礎。確保對組織價值重大的流程能夠制度化,標準化并持續改進。109(2)績效改進(IMP:Improving Performance
205、)PCM:(Process Management)流程管理。管理實施對流程和框架持續改進,支持業務目標的實現。識別并實施利益最大化的改進項目,并確保改進結果可見,可用并能制度化,從而形成組織習慣;PAD:(Process Asset Development)流程資產開發。創建相應的流程體系,資產,確保流程的必要更新,與時俱進;MPM:(Managing Performance and Measurement)績效與度量管理。通過度量數據和分析來管理績效,達成業務目標。開發和維持度量的能力,以便支持對管理信息的需要。作為改進、了解、控制決策。CMMI 成熟度是分級別的。在 CMMI1.3 共有
206、5 個級別,代表軟件團隊能力成熟度的 5 個等級,數字越大,成熟度越高,高成熟度等級表示有比較強的軟件綜合開發能力。而 CMMI2.0增加了一個 0 級別(見圖 A-9)。0 級代表組織能力不存在的,工作可能交付,也可能無法交付,甚至有隨時關閉的風險。圖 A-9 CMMI2.0 成熟度CMMI 一級,執行級。在執行級水平上,軟件組織對項目的目標與要做的努力很清晰,110項目的目標可以實現。但是由于任務的完成帶有很大的偶然性,軟件組織無法保證在實施同類項目時仍然能夠完成任務。項目實施能否成功主要取決于實施人員;CMMI 二級,管理級。在管理級水平上,所有第一級的要求都已經達到,另外,軟件組織在項
207、目實施上能夠遵守既定的計劃與流程,有資源準備,權責到人,對項目相關的實施人員進行了相應的培訓,對整個流程進行監測與控制,并聯合上級單位對項目與流程進行審查。二級水平的軟件組織對項目有一系列管理程序,避免了軟件組織完成任務的隨機性,保證了軟件組織實施項目的成功率;CMMI 三級,明確級。在明確級水平上,所有第二級的要求都已經達到,另外,軟件組織能夠根據自身的特殊情況及自己的標準流程,將這套管理體系與流程予以制度化。這樣,軟件組織不僅能夠在同類項目上成功,也可以在其他項目上成功??茖W管理成為軟件組織的一種文化,成為軟件組織的財富;CMMI 四級,量化級。在量化管理級水平上,所有第三級的要求都已經達
208、到,另外,軟件組織的項目管理實現了數字化。通過數字化技術來實現流程的穩定性,實現管理的精度,降低項目實施在質量上的波動;CMMI 五級,優化級。在優化級水平上,所有第四級的要求都已經達到,另外,軟件組織能夠充分利用信息資料,對軟件組織在項目實施的過程中可能出現的次品予以預防。能夠主動地改善流程,運用新技術,實現流程的優化。112附錄 B 軟件研發質量管理過程常見文檔設計實踐軟件開發設計文檔是一種用于記錄軟件系統設計信息的文檔。它描述了軟件系統的整體結構、組成部分、模塊劃分、數據流、算法、接口等關鍵設計方面的內容。設計文檔提供了開發團隊成員之間的共享視野,指導開發工作的進行,并為將來的維護和擴展
209、提供依據。在編寫軟件設計文檔時,確保文檔清晰、簡潔、易讀,并遵循一致的格式和規范??紤]到文檔的受眾,使用清晰的術語和適當的技術表達。及時更新和維護文檔,以反映系統的最新狀態和變更。B.1B.1 架構設計文檔編寫架構設計文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.系統概述:介紹軟件系統的整體概述,包括系統的目標、范圍和主要功能。說明系統的關鍵業務需求和技術要求。3.架構目標:闡明系統架構設計的目標和原則。例如,可維護性、可擴展性、性能等方面的目標。4.架構視圖:使用適當的圖表和圖示,描述系統的不同視圖,如邏輯視圖、物理視圖、過程視圖等。
210、每個視圖都應明確說明其目的、關注點和關鍵元素。5.系統組成部分:詳細描述系統的主要組成部分和模塊,包括每個模塊的功能、職責和接口。這包括系統內部的組件和外部的集成模塊。6.數據流和處理流程:描述數據在系統中的流動和處理過程。說明系統中的關鍵數據流和處理邏輯,以及數據的輸入和輸出。7.技術選擇和決策:討論系統設計中的關鍵技術選擇和決策。解釋選擇的原因、優勢和劣勢,以及與其他備選方案的比較。8.接口定義:定義系統內部和外部的接口,包括函數、類、模塊等的說明和使用方法。描述接口的輸入輸出、數據格式、通信協議等。1139.性能和可伸縮性考慮:討論系統設計中的性能和可伸縮性方面的考慮。包括關鍵性能指標、
211、優化策略、緩存策略、并發處理等。10.安全性和權限設計:闡述系統設計中的安全性和權限控制機制。描述系統的安全需求和安全措施,如身份驗證、訪問控制等。11.部署和擴展計劃:描述系統的部署計劃和擴展方案。包括系統的部署拓撲、硬件和軟件要求,以及擴展系統的策略和方法。12.附錄和參考資料:提供附錄和參考資料,如相關的圖表、圖示、文檔、文獻、第三方庫和工具的使用說明等。13.審查和驗證:在完成初稿后,進行內部審查和驗證,確保文檔的準確性和完整性B.2B.2 模塊設計文檔編寫模塊設計文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.模塊概述:對每個模
212、塊進行簡要介紹,包括模塊的功能、職責和關鍵特點。明確模塊在整個系統中的作用和目的。3.接口定義:描述模塊的接口,包括輸入和輸出的數據格式、參數、返回值等。明確模塊與其他模塊之間的交互方式和接口約定。4.數據結構和算法:描述模塊內部使用的數據結構和算法,包括關鍵的數據結構定義、算法邏輯和處理流程。提供足夠的細節以支持模塊的實現。5.函數和方法說明:詳細描述模塊中的函數和方法,包括函數名、參數、返回值、功能和實現邏輯。提供適當的注釋和說明以幫助其他開發人員理解和使用。6.異常處理和錯誤處理機制:說明模塊在出現異常和錯誤情況下的處理方式和機制。包括異常類型、錯誤碼、錯誤處理流程等。7.依賴關系:說明
213、模塊與其他模塊之間的依賴關系,包括依賴的模塊、接口和數據。確保模塊的正確集成和協作。8.測試策略:描述模塊的測試策略和方法。包括單元測試和集成測試的計劃和用例設計。性能優化和擴展性考慮:討論模塊設計中的性能優化和擴展性方面的考慮。包114括關鍵性能指標、優化策略、緩存策略、并發處理等。9.安全性和權限設計:闡述模塊設計中的安全性和權限控制機制。描述模塊的安全需求和安全措施,如身份驗證、訪問控制等。10.附錄和參考資料:提供附錄和參考資料,如相關的圖表、圖示、文檔、文獻等,以幫助理解和實現模塊。11.審查和驗證:在完成初稿后,進行內部審查和驗證,確保文檔的準確性和完整性。B.3B.3 數據庫設計
214、文檔編寫數據庫設計文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.數據庫概述:對數據庫進行簡要介紹,包括數據庫的目的、范圍和主要功能。明確數據庫在整個系統中的作用和目標。3.數據庫架構:描述數據庫的整體架構,包括數據庫服務器的部署和拓撲結構。說明數據庫服務器之間的關系和連接方式。4.數據庫模式設計:詳細描述數據庫的模式,包括表、字段、索引、關系等。明確每個表的功能、屬性和關系。5.數據表設計:為每個表提供詳細的設計說明,包括表名、字段、數據類型、約束、默認值等。明確每個字段的含義和目的。6.關系設計:描述表之間的關系,包括主鍵、外鍵、一對
215、一關系、一對多關系等。明確關系的約束和操作。7.數據完整性和約束:闡述數據庫的數據完整性要求和約束條件。包括唯一性約束、非空約束、參照完整性等。8.視圖和存儲過程設計:討論視圖和存儲過程的設計和使用,包括視圖的目的和內容,以及存儲過程的功能和參數。9.數據訪問和安全性設計:闡述數據庫的訪問控制和安全性設計。包括用戶權限、角色、審計等方面的考慮。11510.數據備份和恢復策略:討論數據庫的備份和恢復策略,包括備份頻率、備份存儲位置和恢復流程等。11.性能優化和索引設計:討論數據庫性能優化的考慮和策略,包括索引的設計和優化。12.數據庫擴展計劃:描述數據庫的擴展計劃和策略,包括數據增長的預測、容量
216、規劃和擴展方法。13.附錄和參考資料:提供附錄和參考資料,如數據庫模型圖、表結構定義、索引設計等,以幫助理解和實現數據庫。14.審查和驗證:在完成初稿后,進行內部審查和驗證,確保文檔的準確性和完整性。B.4B.4 接口設計文檔編寫接口設計文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.接口類型和范圍:明確系統中涉及的接口類型,如應用程序接口(API)、網絡接口、服務接口等。定義接口的范圍和功能。3.接口命名和版本控制:定義接口的命名規則和版本控制策略。確保接口具有唯一的標識符,并能夠支持接口的演進和兼容性。4.接口描述和功能說明:對每個接
217、口進行詳細描述,包括接口的功能、輸入參數、返回值、異常情況處理等。說明接口的預期行為和使用方法。5.輸入和輸出數據格式:定義接口的輸入和輸出數據的格式,如數據類型、數據結構、數據編碼等。確保接口的數據交換格式一致和可理解。6.接口調用示例:提供實際的接口調用示例,包括請求的數據、參數設置和響應的數據。幫助開發人員理解接口的使用方法和實際效果。7.接口認證和授權:討論接口的認證和授權機制,包括身份驗證、令牌管理、權限控制等。確保接口的安全性和合法性。8.接口錯誤處理和異常情況:說明接口在遇到錯誤和異常情況時的處理方式和返回結果。定義錯誤碼和錯誤信息的規范。1169.接口依賴和關系:描述接口與其他
218、模塊、組件或系統之間的依賴關系。確保接口的正確集成和協作。10.接口文檔和工具支持:提供相關的接口文檔和工具支持,如代碼示例、SDK、文檔鏈接等。幫助開發人員快速理解和使用接口。11.附錄和參考資料:提供附錄和參考資料,如相關的圖表、圖示、文檔、文獻等,以幫助理解和使用接口。12.審查和驗證:在完成初稿后,進行內部審查和驗證,確保文檔的準確性和完整性。B.5B.5 數據流圖文檔編寫數據流圖文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.數據流圖類型:明確使用的數據流圖類型,如數據流程圖(DFD)或統一建模語言(UML)中的活動圖。說明數據
219、流圖的范圍和目的。3.系統概述:對系統進行簡要介紹,包括系統的主要功能和數據流。概述系統中數據流圖的位置和作用。4.數據流圖符號和約定:定義數據流圖中使用的符號和約定,包括外部實體、過程、數據流、數據存儲和數據轉換等。5.上下文級數據流圖:繪制系統的上下文級數據流圖,描述系統與外部實體之間的數據流動。說明外部實體和系統的交互過程。6.進一步細化:對上下文級數據流圖進行進一步細化,逐步展開系統的各個功能模塊和子過程。繪制層級逐漸增加的數據流圖。7.過程描述和功能說明:對每個過程或功能進行詳細描述,包括過程的功能、輸入數據流、輸出數據流和處理邏輯。說明數據的加工和轉換過程。8.數據存儲:描述數據存
220、儲的類型、內容和用途。說明數據存儲與其他過程或功能之間的關系。9.數據流跟蹤:跟蹤和標識數據流在數據流圖中的路徑和轉換過程。確保數據流在系統中的正確流動和處理。11710.異常處理和錯誤流:討論異常情況的處理方式和錯誤流的流向。描述錯誤處理和異常處理的過程和邏輯。11.附錄和參考資料:提供附錄和參考資料,如相關的圖表、圖示、文檔、文獻等,以幫助理解和使用數據流圖。12.審查和驗證:在完成初稿后,進行內部審查和驗證,確保文檔的準確性和完整性。B.6B.6 詳細算法和數據結構描述詳細算法和數據結構描述1.1.算法描述:算法描述:(1)算法目的:明確算法的目的和所要解決的問題。(2)輸入和輸出:描述
221、算法的輸入和輸出,包括數據類型、數據結構和數據格式。(3)步驟和流程:逐步描述算法的執行步驟和流程。使用適當的結構和語法來清晰地表示每個步驟。(4)循環和條件:處理循環和條件語句時,確保算法的正確性和可讀性。使用適當的控制結構和邏輯表達式。(5)變量和數據結構:描述算法中使用的變量和數據結構,包括它們的類型、命名和作用域。(6)時間和空間復雜度:討論算法的時間復雜度和空間復雜度,以評估算法的效率和資源消耗。2.2.數據結構描述:數據結構描述:(1)數據結構類型:明確數據結構的類型,如數組、鏈表、棧、隊列、樹等。(2)結構定義:描述數據結構的定義,包括字段、屬性和關聯的數據類型。(3)操作和方法
222、:列出數據結構的操作和方法,包括增、刪、改、查等。描述每個操作的功能和實現細節。(4)數據存儲和訪問:討論數據結構的存儲方式和訪問方式,如索引、指針等。118(5)使用示例:提供使用數據結構的示例代碼,演示數據結構的創建、初始化和使用過程。3.3.清晰可讀性:清晰可讀性:(1)使用適當的命名:為算法和數據結構中的變量、函數、方法和類選擇清晰、具有描述性的命名。(2)代碼注釋:在關鍵位置添加注釋,解釋代碼的意圖、實現細節和關鍵步驟。(3)格式化和縮進:保持代碼的良好格式化和縮進,以提高可讀性和可理解性。(4)圖表和圖示:使用適當的圖表、圖示和示意圖來解釋算法和數據結構的邏輯和操作過程。在完成初稿
223、后,進行內部審查和驗證。確保算法和數據結構描述的準確性、完整性和一致性。編寫詳細的算法和數據結構描述時,需要注重準確性、清晰性和易讀性。使用合適的術語和邏輯結構來表達算法和數據結構的思想和實現細節。適當地使用圖表和圖示來支持文檔的可視化和理解。B.7B.7 編碼過程文檔編碼過程文檔在軟件開發的編碼階段,以下是常見的文檔需要維護:1.源代碼文檔:對于每個代碼文件或模塊,編寫代碼注釋來解釋代碼的功能、輸入參數、輸出結果和實現細節。這些注釋可以作為源代碼文檔的一部分。2.編碼規范:雖然編碼規范不是直接的文檔,但在編碼階段需要遵守和維護團隊的編碼規范。編碼規范確保代碼風格的一致性和可讀性。3.單元測試
224、文檔:記錄軟件系統的單元測試用例、預期結果和實際結果,用于驗證代碼的正確性和健壯性。B.8B.8 源代碼文檔編寫源代碼文檔編寫1.1.代碼注釋代碼注釋(1)在關鍵代碼塊、函數、方法和類的上方添加注釋,簡要解釋其功能和用途。119(2)使用自然語言描述代碼的行為和意圖,幫助讀者理解代碼的用途和預期結果。(3)解釋輸入參數和返回值的含義和格式,以便其他開發人員正確使用代碼。2.2.函數和方法文檔函數和方法文檔(1)對于每個函數和方法,編寫文檔說明其功能、輸入參數、返回值和使用方法。(2)使用規范的注釋標記(如 Java 中的 Javadoc、Python 中的 docstring)來定義和格式化函
225、數文檔。(3)提供示例代碼和使用說明,以幫助其他開發人員正確調用和使用函數。3.3.類和模塊文檔類和模塊文檔(1)對于每個類和模塊,編寫文檔說明其功能、設計目的和關鍵屬性。(2)解釋類之間的關系和依賴關系,以幫助其他開發人員理解代碼的整體結構。(3)提供示例代碼和使用說明,以展示類和模塊的正確使用方法。4.4.文件頭注釋文件頭注釋(1)在源代碼文件的頂部添加文件頭注釋,包括文件名、作者、創建日期和簡要描述。(2)提供版權聲明和許可證信息,確保代碼的合法性和合規性。5.5.變更記錄變更記錄(1)在源代碼中記錄對代碼進行的重要更改和修復。包括修改日期、作者、變更類型和詳細描述。(2)使用版本控制系
226、統的提交消息或注釋,或者在代碼中添加特定的注釋標記(如TODO、FIXME)來跟蹤變更。6.6.示例和說明示例和說明(1)提供實際的示例代碼,演示如何使用和調用源代碼的不同功能和場景。(2)解釋示例代碼的輸出和期望結果,確保其他開發人員理解和驗證代碼的行為。1207.7.異常處理異常處理(1)對于可能引發異常的代碼塊,提供注釋或文檔說明處理異常的方式和邏輯。(2)解釋異常類型、錯誤處理和恢復機制,以幫助其他開發人員正確處理和處理異常。8.8.代碼結構和命名代碼結構和命名(1)使用清晰、一致的命名約定和代碼結構,以提高代碼的可讀性和可維護性。(2)在注釋中解釋和說明自定義的命名規則或約定,以幫助
227、其他開發人員理解代碼的結構。B.9B.9 編碼規范編寫編碼規范編寫1.清晰明確:確保編碼規范的規則和指導準確、清晰明確。使用簡潔明了的語言和術語,避免歧義和模棱兩可的描述。2.統一風格:編碼規范應確保代碼風格的一致性。規定代碼縮進、命名規則、注釋規范、代碼結構等方面的規則,以確保代碼易讀、易維護。3.可讀性和可理解性:強調代碼的可讀性和可理解性。建議使用有意義的命名、注釋和文檔,以及清晰的代碼結構和邏輯。4.命名規則:規定變量、函數、類和文件等的命名規則。建議使用有意義的名稱,避免使用縮寫和不明確的命名。5.縮進和格式化:規定代碼縮進的方式和格式化的規則。建議使用一致的縮進風格,如空格還是制表
228、符,并規定代碼塊的大括號位置和換行規則。6.注釋規范:規定注釋的格式和使用規則。建議提供函數和方法的注釋,解釋其功能、輸入參數、返回值和使用方法。注釋還可以用于解釋復雜的算法和處理邏輯。7.異常處理:規定異常處理的標準和實踐。建議捕獲并處理可能出現的異常情況,以確保代碼的健壯性和可靠性。8.最佳實踐:推薦使用編程語言和平臺的最佳實踐。避免已知的編碼陷阱和反模式,以提高代碼質量和性能。1219.文件組織:規定代碼文件的組織結構和目錄命名規則。建議按照功能、模塊或層次進行文件組織,以便于代碼的查找和維護。10.版本控制:規定代碼版本控制的策略和實踐。建議使用版本控制工具,并定義提交和分支策略。11
229、.可擴展性和可維護性:考慮到未來的需求變化和代碼的可擴展性。規定代碼模塊化、接口設計和可測試性等規則,以支持代碼的持續演進和重用。12.靜態分析和代碼審查:建議使用靜態代碼分析工具進行代碼質量檢查。推薦定期進行代碼審查,以確保代碼符合編碼規范和最佳實踐。B.10B.10 單元測試文檔編寫單元測試文檔編寫1.文檔概述:在文檔的開頭,提供對文檔的概述和目的的簡要描述。說明文檔的受眾和所關注的重點。2.測試目標和范圍:明確單元測試的目標和范圍。描述要測試的模塊、函數或類的功能和行為。3.測試用例設計:設計全面而有針對性的測試用例。覆蓋不同的測試場景、邊界條件和異常情況。確保測試用例具有可重復性和獨立
230、性。4.輸入和預期輸出:對于每個測試用例,明確輸入數據、參數設置和預期的輸出結果。確保預期結果符合預期行為和預期值。5.測試環境和依賴項:描述測試環境的配置和依賴項。包括測試框架、測試數據和測試工具等。6.執行步驟和方法:提供測試用例的執行步驟和方法。描述如何準備測試環境、執行測試用例和記錄測試結果。7.異常處理和錯誤報告:討論在測試過程中遇到的異常情況和錯誤處理方式。描述如何記錄和報告錯誤,以便開發人員進行修復。8.期望覆蓋率:明確所需的代碼覆蓋率目標。根據項目的要求確定滿足可靠性和質量標準的最低覆蓋率。9.測試結果和統計:記錄測試的執行結果和統計數據。包括測試通過的用例數量、失122敗的用
231、例數量、覆蓋率等。10.維護和更新:及時更新單元測試文檔,以反映代碼和需求的變更。確保文檔與實際代碼的一致性。B.11B.11 測試文檔分類測試文檔分類軟件測試文檔通常包括以下內容:1.測試計劃:描述測試的范圍、目標、資源需求、進度安排、測試階段(單元測試、集成測試等)和測試策略。測試計劃還確定測試的方法和技術,例如手動測試或自動化測試。2.測試用例:測試用例是一組明確的步驟和輸入,用于驗證軟件的特定功能或特性。測試用例描述了預期的結果和實際結果之間的差異。3.缺陷報告:缺陷報告用于記錄在測試過程中發現的問題或錯誤。它們描述了缺陷的詳細信息,例如缺陷的類型、嚴重程度、復現步驟和環境條件。4.測
232、試結果:測試結果文檔記錄了每個測試用例的執行結果,包括通過的用例、失敗的用例和跳過的用例。測試結果文檔還可以包括非功能性測試,如性能測試,安全測試,壓力測試,穩定性測試等的結果。以及測試驗證和確認。5.測試環境配置:測試環境配置文檔描述了在測試期間使用的硬件、軟件和網絡配置。它確保測試團隊使用相同的環境進行測試,并提供必要的背景信息。6.測試驗證和確認:測試驗證和確認文檔用于記錄測試團隊和利益相關者之間的討論和批準。它們可以包括測試計劃、測試用例和測試結果的確認。7.測試報告:測試報告用來匯總不同測試階段/類型的測試整體狀態,包括測試的覆蓋率,測試通過率,測試進展,失敗測試分析以及影響測試進展
233、的重點缺陷等信息。測試報告用于測試團隊和利益相關者之間的討論打合批準。B.11.1B.11.1 測試文檔編寫測試文檔編寫測試文檔的目的是確保測試過程的可追溯性和透明性。它們提供了對軟件質量和可靠性的評估,幫助團隊識別和解決問題,并最終改進軟件的質量。123編寫測試文檔時需要遵循一些原則,以確保文檔的質量和有效性。通常包括以下編寫原則:1.清晰和簡潔:測試文檔應該清晰明了,使用簡潔的語言和結構,以便讀者能夠輕松理解文檔的內容。避免使用過于復雜的術語和技術語言,除非在必要的情況下提供適當的解釋。2.完整和詳細:測試文檔應該提供足夠的信息,以便讀者能夠理解測試的目的、步驟和預期結果。確保測試用例覆蓋
234、了所有關鍵的功能和場景,并描述了預期的結果和實際結果之間的差異。3.可追溯性:測試文檔應該具有良好的追溯性,即能夠追蹤到測試需求、測試用例和測試結果之間的關系。確保每個測試用例都與相關的需求或功能進行關聯,以便能夠準確地跟蹤測試覆蓋和測試進度。4.一致性:在編寫測試文檔時,保持一致性非常重要。使用相同的術語、格式和結構,以便讀者能夠更容易地理解和比較不同部分的內容。此外,確保測試文檔與其他相關文檔(如需求文檔)之間的一致性。5.可更新性:測試文檔應該是可更新的,以反映軟件開發過程中的變化。及時更新測試文檔,以便與軟件的最新版本保持一致,并反映新的需求、改進或修復。6.可驗證性:測試文檔中的信息
235、應該是可驗證的,即其他團隊成員或利益相關者可以獨立驗證測試的結果和結論。提供清晰的步驟、輸入和預期結果,以便他人能夠重現測試過程并驗證測試的有效性。這些原則有助于確保測試文檔的質量和可用性,提高測試的效率和準確性。根據具體的項目和團隊需求,還可以根據實際情況制定其他適用的原則。B.11.2B.11.2 測試計劃編寫測試計劃編寫測試計劃一般包括測試目標、測試概要、測試范圍、重點事項、質量目標、資源需求、人員組織、測試策略、發布提交、測試進度和任務人員安排、測試開始/完成/延遲/繼續的標準、風險分析。1.測試目標:對測試目標進行簡要的描述。2.測試概要:摘要說明所需測試的軟件、名詞解釋、以及提及所
236、參考的相關文檔。1243.測試范圍:測試計劃所包含的測試軟件需測試的范圍和優先級,哪些需要重點測試、哪些無需測試或無法測試或推遲測試。4.重點事項:列出需要測試的軟件的所有的主要功能和測試重點,這部分應該能和測試案例設計相對應和互相檢查。5.測試溝通:包括測試解脫的溝通匯報機制,關鍵測試干系人分析,溝通的方式(會議,報告或者數字化工具展現)等.6.質量目標:制定測試軟件的產品質量目標和軟件測試目標。7.資源需求:進行測試所需要的軟硬件、測試工具、必要的技術資源、培訓、文檔等。8.人員組織:需要多少人進行測試,各自的角色和責任,他們是否需要進行相關的學習和培訓,什么時候他們需要開始,并將持續多長
237、時間。9.測試策略:制定測試整體策略、所使用的測試技術和方法。10.發布提交:在按照測試計劃進行測試發布后需要交付的軟件產品、測試案例、測試數據及相關文檔。11.測試進度和任務人員安排:將測試的計劃合理的分配到不同的測試人員,并注意先后順序.如果開發的Release不確定,可以給出測試的時間段.對于長期大型的測試計劃,可以使用里程碑來表示進度的變化。12.測試開始/完成/延遲/繼續的標準:制定測試開始和完成的標準;某些時候,測試計劃會因某種原因(過多阻塞性的 Bug)而導致延遲,問題解決后測試繼續。13.風險分析:需要考慮測試計劃中可能的風險和解決方法。B.11.B.11.3 3 缺陷報告編寫
238、缺陷報告編寫缺陷報告是在軟件測試過程中記錄和報告發現的問題或錯誤的文檔。它用于描述在測試過程中發現的缺陷、缺陷的詳細信息以及缺陷的嚴重程度。缺陷報告通常包括以下內容:1.標題和摘要:缺陷報告應該具有一個清晰的標題,用于概括缺陷的主要問題。摘要部分提供對缺陷的簡要描述,通常包括缺陷的現象或錯誤行為。1252.缺陷描述:缺陷報告應該提供對缺陷的詳細描述,包括如何重現缺陷、在何種環境下出現、測試使用的軟件版本、影響的范圍以及對軟件功能的影響。描述應該具體明確,以便開發人員能夠理解問題的本質并進行修復。3.復現步驟:缺陷報告應該提供重現缺陷所需的詳細步驟。這些步驟應該清晰明了,使開發人員能夠在其開發環
239、境中重現缺陷并進行調試。4.環境信息:缺陷報告應該包括相關的環境信息,例如操作系統、瀏覽器、設備類型等。這些信息有助于開發人員在特定環境中定位和修復缺陷。5.嚴重程度和優先級:缺陷報告應該評估缺陷的嚴重程度和優先級。嚴重程度指的是缺陷對系統功能或性能的影響程度,而優先級表示修復缺陷的緊急程度。6.相關附件:如果有必要,缺陷報告可以包括相關的截圖、日志文件或其他附件,以提供更多的上下文和支持信息。缺陷報告的目的是記錄和報告軟件中發現的問題,以便開發人員能夠了解問題并進行修復。良好的缺陷報告能夠提供清晰的信息和重現步驟,有助于加快缺陷修復的過程,并提高軟件質量。B.11.B.11.4 4 測試結果
240、編寫測試結果編寫測試結果文檔是記錄軟件測試過程中執行的測試用例及其結果的文檔。它提供了關于每個測試用例的執行情況、通過或失敗的結果以及相關的詳細信息。測試結果文檔的目的是提供對測試活動的全面概覽和匯總,使團隊成員和利益相關者能夠了解測試的覆蓋范圍、執行情況和結果。它還有助于追蹤測試進展、確定需要進一步調查或修復的問題,并為軟件質量提供評估和決策的依據。測試結果文檔通常包括以下內容:1.測試用例標識:每個測試用例都有一個唯一的標識符或編號,以便在文檔中進行跟蹤和引用。2.測試用例描述:對于每個測試用例,測試結果文檔應該提供清晰的描述,描述了測試的目的、輸入、預期結果和任何特定的測試條件。3.測試
241、結果:記錄每個測試用例的執行結果,包括通過、失敗或跳過。對于失敗的測試用例,還應該提供詳細的錯誤信息和相關的日志。1264.錯誤分類和嚴重程度:對于失敗的測試用例,可以將錯誤進行分類,并指定其嚴重程度。常見的分類包括功能缺陷、性能問題、安全漏洞等。5.環境信息:記錄測試用例執行時使用的測試環境的相關信息,包括操作系統、瀏覽器版本、設備類型等。這有助于后續的環境復現和問題定位。6.備注和附加信息:在測試結果文檔中,可以提供任何其他相關的備注、問題描述、重要觀察或附加信息,以增加文檔的完整性和可讀性。B.11.B.11.5 5 測試環境配置編寫測試環境配置編寫測試環境配置文檔是記錄和描述測試環境配
242、置的文檔。它提供了關于測試環境的詳細信息,包括硬件、軟件和網絡配置,以及其他必要的設置和準備工作。測試環境配置文檔的目的是確保測試團隊使用相同的環境進行測試,并提供必要的背景信息和指導,以確保測試的準確性和可重復性。它還有助于解決測試環境相關的問題,并為測試團隊和開發團隊提供清晰的環境配置說明。測試環境配置文檔通常包括以下內容:1.硬件配置:記錄測試環境中使用的計算機、服務器、網絡設備等硬件的詳細配置信息。這包括處理器、內存、存儲容量等硬件規格。2.軟件配置:描述測試環境中所需的軟件組件和版本。這包括操作系統、數據庫、應用服務器、瀏覽器等軟件的名稱、版本號和安裝路徑。3.網絡配置:記錄測試環境
243、中的網絡拓撲和配置,包括 IP 地址、子網掩碼、網關、DNS服務器等。這對于測試涉及網絡通信的功能非常重要。4.測試工具和框架:列出在測試環境中使用的測試工具和框架,例如自動化測試工具、性能測試工具、代碼覆蓋工具等。提供它們的名稱、版本和安裝路徑。5.數據配置:描述測試環境中所需的數據設置和準備工作。這包括數據庫配置、測試數據集、數據文件路徑等信息。6.環境變量和配置參數:記錄測試環境中的環境變量、配置參數和設置。這包括任何需要在測試環境中設置的參數或選項。7.其他設置和要求:在文檔中提供任何其他測試環境設置和要求的相關信息,例如訪127問權限、安全設置、許可證配置等。B.11.B.11.6
244、6 測試驗證和確認編寫測試驗證和確認編寫測試驗證和確認文檔是用于確認和驗證軟件測試活動的文檔。它提供了關于測試執行、結果和確認過程的信息,以確保測試的有效性和準確性。測試驗證和確認文檔的目的是提供對測試活動的確認和驗證的記錄。它確保測試過程和結果的正確性,并提供準確的信息和證據,以支持軟件質量評估和決策。這些文檔對于項目團隊和利益相關者了解測試活動的情況、測試結果的可信度以及進一步的測試計劃和改進提供重要的參考。測試驗證和確認文檔通常包括以下內容:1.測試執行結果:記錄每個測試用例的執行結果,包括通過、失敗或跳過。這些結果可以通過執行自動化測試腳本或手動測試來獲得。2.驗證測試覆蓋:確認測試用
245、例是否覆蓋了軟件需求或功能的各個方面。驗證測試用例是否全面、恰當地涵蓋了所需的測試范圍。3.缺陷處理狀態:跟蹤已發現的缺陷并記錄其處理狀態。這包括缺陷的修復情況、驗證缺陷修復的結果以及缺陷的關閉狀態。4.驗證測試環境:確認測試環境的正確配置和準備情況。驗證測試環境是否符合測試要求,并確保測試環境的可用性和穩定性。5.確認測試數據:確認測試數據的準備和使用情況。驗證測試數據是否符合需求,以及測試數據的正確性和完整性。6.驗證測試工具和框架:確認所使用的測試工具和框架的有效性和正確配置。驗證測試工具是否準確地執行測試,并提供準確的結果和報告。7.驗證測試報告和文檔:確認測試報告和文檔的準確性和完整性。驗證測試報告是否包含正確的測試結果、統計信息和相關的補充信息。