浅谈软件质量管理
最近某項目組爆出了一個小問題,本應該在開發過程就解決的Bug,結果上了生產還把客戶生產服務器給搞宕機了,這個小問題導致的影響讓某高層高呼“災難啊!”
糟糕的質量有哪些災難的影響呢?
?
l? Financial loss from lost business.
l? Financial loss from customer reparations.
l? Financial loss from lost customers.
l? Financial loss from lawsuits.
l? Lower brand equity for the organization.
·???????? 業務流失導致的經濟損失
·???????? 賠償導致的經濟損失
·???????? 客戶流失導致的經濟損失
·???????? 法律訴訟導致的經濟損失
·???????? 品牌價值的損失
在軟件生產過程中,個人覺得最重要的質量控制還是在開發過程中把控軟件的質量,在開發過程中我們都做哪些工作來保障我們的軟件質量呢?
?
1.? PDCA在軟件開發過程中應用:
團隊借用Agile的開發模式(為什么用“借用”一次呢?因為敏捷還在實踐摸索中。),引入PDCA的質量管理模式:Plan-Do-Check-Action
P:舉行計劃會議;
D:每日早會、軟件開發;
每日早會例牌的問題:昨天完成什么?感覺有哪些不順暢的地方?今天干什么?
C:各種評審會議:
在開發過程中對關鍵的環節進行評審,如工作量估算評審、需求評審、設計評審…;
A:回顧會議:
回顧會在一個周期開發結束后舉行,主要總結本開發周期內工作成果,工作中Good、could be better 、improve的各方面;
在回顧會議后,根據回顧不足的地方爭取在下一個周期中進行持續改進,之前做的好的地方繼續發揚。
2.? 開發過程中的一些質量控制:
a.結對編程;
? 關于結對編程,由于各方面的原因在實施過程中只有小部分的關鍵開發中用結對的方式進行編程開發,如:接口、公用組件的開發等一些關鍵的業務或者公用的程序來進行結對,確保程序開發質量問題降到最低。
b.單元測試;
關于單元測試主要引入JUnit并建立相應的規范來確保單元測試的質量,同時也有用到其他工具,Selenium (UI測試)以及FitNesse,不過這兩個工具目前沒有很好的應用起來。
c.持續集成:
目前采用的是Jekins平臺結合maven、Ant等工具,定期打包發布,運行單元測試case,并出單元側測試報告、代碼覆蓋率等一些質量報告,并針對這些測試結果進行分析,并修正相應的代碼及test case;
3.一些質量活動與質量改進
??? a.一些規范:
??? 根據項目的特性制定一些規范,如JAVA JS規范、Junit單元測試規范,當然還有客戶要求的代碼安全規范、敏感信息處理等一些規范。
??? b.Code Review
??? 安排專人推進 Code Review 工作,定期舉行Code Review,Code Review 在項目組內被定義成群體活動,不僅僅是交叉檢查,而是集群眾(開發者們)的力量一起對項目組的所有開發的代碼進行Review(這或許是團隊小好處)。
4.其他
??? a.交流培訓
??? 交流是團隊中最重要的活動之一,同時為交流付出了巨大的時間代價,一直在優化交流的方式方法,如會議舉行時間、會議的安排組織方式、會議的模式都一直在優化,培訓方面目前團隊內部的培訓尚未開展到位,主要做團隊的定期總結,例如寫blog;
??? b.人才培養
??? 根據不同人員的性格特性安排以及個人發展需要進行安排工作以及引導,盡量做到各施所長,發揮最大的能量。
?
??? 以上是團隊中一些軟件質量管理的簡單總結,在此也喊一下老X的口號:“我們對質量問題0容忍!”
?
========后記========
質量管理體系是一個龐大的體系,對于軟件質量管理各方面的文章書籍有很多,最實際的質量是將公司、項目組制定的規范落地,做好工作的沒一個步驟,空談誤國(“災難啊!”就是一個很好的例子),實干興邦。如有需要的可以去看看CMMI、PMBOK這些成熟的體系。
總結
- 上一篇: 第三方应用软件检测实验室质量管理体系需要
- 下一篇: 医疗器械软件质量体系等