敏捷開發 敏捷開發中的質量

2021-10-13 15:56:01 字數 1972 閱讀 8081

有小夥伴就問,我們都敏捷了,我們是在效率和質量中找平衡,說敏捷開發中的質量是不容易控制的,要回答這個問題,我設計了乙個faq,內容如下:敏捷開發是什麼?

敏捷開發是以需求為中心,以交付價值為目的,持續增量交付的一種軟體開發方法,至於什麼是敏捷,就去問問度娘吧。對於敏捷團隊來說,是乙個自組織的,有集體目標感的,打了雞血的理論上的全功能團隊。軟體質量是什麼?

簡單點說,軟體質量就是軟體產出的結果與原始需要的相匹配程度,包含的方面包括簡裝修、正確性、效率、完整性,可維護性,靈活性等等等等。相對與敏捷開發,傳統方式開發中軟體質量是如何控制的?

一般來說,對於軟體質量的控制是多角色、多層次的,一般會包含這些活動:

1、過程管理,一般由qa這個覺得通過一些手段來保證整個軟體開發過程的正確性;

2、評審活動,通常來說,在專案中產生的所有成果物都需要經過評審才能被使用或接收,從需求開始,也包含所有的設計文件,測試用例,還有**等等;

3、問題管理,經過評審了,那就不可能不出現問題,出現了問題怎麼辦呢,那就需要修正、跟蹤,當然了,不是所有的問題就是由評審這個活動衍生出來的,也可能是由哪個專案干係人發現的,也有可能是由風險引發的;

4、測試,測試活動像專案中的其他活動一樣,也需要計畫、實施、驗證,也會包含一些其他的管理方面,包括用例管理,缺陷管理等,另外,測試是分階段分層次的,要根據需求的雙向可追蹤性進行測試規劃,還有很多的測試策略等等,測試是一門專門的學科,有機會我們再**。總之,測試在軟體研發活動種是重要的,也是必不可少的。

一般來說,反映軟體質量的指標和工具有比如,**測試覆蓋率,單位缺陷密度,帕累託分析什麼的,這些學過pmp的同學都駕輕就熟,我就不多說了。在敏捷開發中如何保證軟體的質量?

一般在敏捷開發中,提倡的是團隊整體參與的做法。也就是說,不只是單單乙個質量,所有的事情都是全民參與的。那角色還是那些角色,qa和測試幹啥去?其實,在敏捷開發中,這兩種角色有更高層次的價值體現,比如說,她們更像是乙個團隊支撐著和發現者。作為使用者的角色參與到專案中,提供交付價值的建議幫助需求提供者確定驗收標準,幫助團隊搭建測試自動化工具,做探索性測試等等,保證需求和過程的正確。

在敏捷軟體開發中,通常團隊會做這些事情以保證質量,並貫穿整個開發過程中

1、團隊中統一的標準和工具,統一的ide,統一的編碼風格和規範,甚至統一的作息習慣,讓團隊更像是乙個整體

2、靜態**檢查,既然有統一的編碼規範,這個活動完全可以用機器來解決,不符合規範的無法提交到版本庫

3、持續的單元測試,甚至是測試驅動開發(tdd),由編碼人員同時編寫單元測試用例和**

4、持續整合,持續檢查,持續測試,持續發布,在過程中保證**、需求、活動、業務行為的正確

5、重構,敏捷是快速交付的,總有些技術債是要還的,**的改進也是改進的一部分

6、回顧,事後諸葛亮的事,為專案目標造成阻礙的事件或者是一些典型的缺陷都要徹底分析

7、與客戶合作,只有客戶才知道他要的到底是什麼(也可能有的時候根本就不知道),只有看見的成果才能有建議,滿足客戶的需要也是質量的重要部分

在敏捷中,我們跟關注缺陷或者問題存在了多久,而不是他存在多少,也就是缺陷或者問題的生命週期,這個指標一般我們會定義缺陷的幾個狀態,比如說,open-fixed-close-reopen等,我們看在每個階段停留的時間,分別去看看缺陷定位的時間(缺陷是不是描述的競爭),缺陷修復時間(改了多久),改了幾遍(改沒改對或者引發其他缺陷的)。另外,現在比較火的就是devops了,好處就不多說了,在這個過程中,有很多地方都是與質量和業務價值相關的,有興趣的小夥伴請自行度娘。

經常看到有小夥伴反映因為過渡到了敏捷開發導致質量崩塌的案例,其實我覺得大家都有個誤區,不一定我們追求效率了,那一定就會犧牲質量(另外,敏捷絕對不是用更短的時間),只不過我們可能沒有找到合適的方法,或者說團隊還不是那麼的敏捷。所以對於質量這件事來說,不管是傳統方法還是敏捷,我覺得企業質量文化對軟體產品質量還是最重要的。總是能找到一種合適的方法,把專案質量搞上去。

敏捷開發 什麼是敏捷開發?敏捷開發掃盲(詳解)

敏捷開發 scrum 是一種軟體開發的流程,強調快速反應 快速迭代 價值驅動。scrum的英文意思是橄欖球運動的乙個專業術語,表示 爭球 的動作 運用該流程,你就能看到你團隊高效的工作。敏捷開發的特點就是下面4句話 個體與互動 勝過 過程與工具 可以工作的軟體 勝過 面面俱到的文擋 客戶協作 勝過 ...

ipd敏捷開發 IPD 敏捷開發

ipd 敏捷開發 課程目標 通過遊戲 實戰 討論,結合自己當前的實際工作,體會 ipd 系統工程在敏捷開發中的應用 敏捷方法的價值觀 敏捷開發需求管理的必要性和重要性 敏捷開發最佳實踐的組合應用 從而在未來的工作中,能夠靈活地運用這些知識,建立符合自己企業 團隊的工作流程與開發管理模式。課程大綱 1...

敏捷開發 敏捷測試

敏捷測試的定義 首先敏捷測試是敏捷的一種,原有測試定義中通過執行被測系統發現問題,通過測試這種活動能夠提供對被測系統提供度量等概念還是適用的。在傳統的測試定義上,還需要新增 敏捷測試是遵循敏捷宣言的一種測試實踐 強調從客戶的角度,即使用系統的使用者的角度,來測試系統 重點關注持續迭代的測試新開發的功...