天天看點

淺談軟體品質管理

最近某項目組爆出了一個小問題,本應該在開發過程就解決的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這些成熟的體系。

繼續閱讀