提高軟體開發效率的最有效手段就是一次做對,一次做好,不返工,追求交付零缺陷的目標。「對」就是沒有錯誤,符合需求,「好」就是沒有壞味道,易於修改。「做對」保證了產品的外部質量,「做好」保證了產品的內部質量,這樣就可以減少軟體缺陷、需求變更帶來的返工。返工可能發生在生命週期的早期,也可能發生在後期,或者是交付以後,缺陷越早發現,越早解決,返工的工作量越少。有哪些手段可以保證不犯錯,少犯錯,及時糾錯呢?
1、需求階段
需求調研:
要訪談客戶、終端使用者與間接使用者;
要訪談高層、中層與底層的使用者;
要準備好問題單;
採用原型法啟發客戶需求;
需求描述:
使用者故事描述使用者需求;
採用用例法描述功能需求;
當使用者無法提出非功能性需求時,定義定義非功能性需求的預設值;
需求確認:
採用多種方法確認需求;
採用需求交底、逆向培訓、現場客戶等方法確保需求溝通的一致性;
建立需求溝通的平台,確保需求的溝通能傳遞到每個相關人員;
在需求階段開始編寫系統測試用例,驗證需求的可測試性;
建立需求與設計、**、測試用例之間的跟蹤關係;
使用者、開發、測試人員參與需求的評審;
需求變更:
基於rtm進行需求變更的影響分析;
需求的變更要通知到相關人員;
對於需求的變更採用結對修改的方法;
人員:對需求人員進行需求工程的專題培訓,要求需求人員掌握需求工程的基本知識,具備基本的技能。
2、設計階段
需求理解:
和需求人員對需求的理解達成一致;
對需求的拆分、細化,功能的設計要得到需求人員的認可;
設計:要建立設計到需求的跟蹤矩陣,確保設計的完備性;
採用結對設計的方法確保設計的正確性;
需求、設計、開發人員對設計進行技術評審,識別設計中的缺陷;
對設計人員進行培訓、上崗資格認證,要求設計人員掌握架構設計、設計原則、設計模式、資料庫設計、介面設計的方法;
建立評價設計優劣的準則,包括類的設計、演算法設計、資料庫設計、介面設計的準則;
對於非功能性需求給出缺省的解決方案;
在設計中採用設計模式提高設計的合理性;
對於介面的設計盡早進行確認;
介面測試要早設計、早實現、早測試;
3、編碼階段
和需求人員對需求的理解達成一致;
和設計人員對設計的理解達成一致;
在寫**之前先做了詳細設計,對詳細設計做了評審;
結對程式設計;
測試驅動的開發;
按照編碼規範進行編碼;
**的靜態檢查;
**評審;
持續整合;
**重構;
編碼人員要掌握常用的設計模式、重構的手法;
4、測試階段
測試人員參與需求評審,需求人員參與測試用例的評審;
建立測試用例與需求之間的對映關係,追求需求場景的覆蓋率;
整合測試用例覆蓋每乙個介面的輸入引數的每種等價類;
定義用例編寫規範:
● 用例應覆蓋正常操作、異常操作、邊界條件
● 用例應該覆蓋客戶操作場景的各種等價類
● 每個用例應該詳細描述出輸入、操作步驟、期望的輸出
● 區分不同的專項測試制定用例編寫規範
● 堅持執行失效模式分析
定義質量目標,並努力達成質量目標:
● 每千行**的平均測試工作量;
● 每千行**測試用例的個數;
● 每千行**發現的缺陷個數;
在客戶各種可能的使用環境中進行測試,專人負責測試環境的維護;
針對非功能需求進行測試策略的設計;
先設計測試要點再設計測試用例;
非功能性需求要盡早測試;
先進行冒煙測試,再執行正式的測試;
定義測試結束的量化標準,定義軟體交付的最低標準;
針對共性的需求建立復用用例庫,每次測試時從中挑選用例,然後再補充完善用例;
盡可能模擬客戶的環境進行軟體的測試,應進行測試環境的組合設計。
如何評估專案工作量
乙個工程需要的早期評估有三項 工作量 持續時間 預算。在這三項中,工作量必須首先評估。當了解工程所需的工作量,你就可以分配決定工程持續時間的資源,進而可以評估人力資源和非人力資源花費。用下面的過程來評估你的工程所需總工作量 1 決定評估所需的精確度。典型的情況是,評估的精確度越高,所需的細節就越多,...
工作量估算
我們的方法還是比較實用的 舉個具體的例子 我們做任何乙個工作,都先做sample,比如寫詳細設計,leader必須先寫,定sample,然後看leader做需要多少時間,然後按一定比例,比如pert方法就可以,然後按畫面去分,畫面數 預期每日完成數,測試也一樣,先做sample再算預期case數,再...
收藏 如何評估專案工作量
乙個工程需要的早期評估有三項 工作量 持續時間 預算。在這三項中,工作量必須首先評估。當了解工程所需的工作量,你就可以分配決定工程持續時間的資源,進而可以評估人力資源和非人力資源花費。用下面的過程來評估你的工程所需總工作量 1 決定評估所需的精確度。典型的情況是,評估的精確度越高,所需的細節就越多,...