通過個人在幾家不同類型企業的工作經歷和測試工作經驗總結,以及學習相關資料和培訓經歷,大致有如下一些想法和總結。
最大的感受是:管理過程比管理人更容易、更易于實現目標。有什么流程,就有什么結果,流程決定結果。
目前國內大部分軟件企業開發軟件都是純目標管理的思想核心,最快完成軟件為目標,軟件開發過程混亂、不規范、質量得不到保證、文檔、數據不全后期維護困難。面對軟件系統越來越大,用戶質量要求越來越高,競爭越來越強烈的市場,這樣的企業保住現有地位都很困難,想進一步擴大就更難。所以世界上許多牛企業、大企業、想進一步發展的企業都在進行業務流重組過程改進。即改變目標管理的思想,強調管理過程,實現從職能管理到面向業務流程管理。它們相信好的流程就能產生好的產品,有質量的過程就有有質量的結果。
進行過程改進可參考的典型過程模型有:
1、 軟件能力成熟度模型(CMM)
2、 個體軟件過程(PSP)
3、 團隊軟件過程(TSP)
4、 能力成熟度模型集成(CMMI)
5、 IBM-Raional的統一過程(RUP)
6、 極限編程過程(XP)
企業如果想進行過程改進要從何做起呢?
我這里把我的一些想法大致寫一下:
首先要調研明確企業目前的軟件開發過程,是否有如下的軟件開發過程?有是怎么樣的?是否合理?是否規范?
1、 客戶需求管理過程
2、 系統需求分析設計過程
3、 軟件開發與設計過程
4、 軟件測試過程(單元測試、集成測試、系統測試、驗證測試、確認測試)
5、 系統與軟件維護過程
6、 文檔編制過程
7、 配置管理過程
8、 質量保證過程
9、 驗收產品過程
10、 評審過程
11、 解決問題過程
12、 過程改進過程
13、 培訓過程
14、 其它一些過程
然后再根據調研過程總結,建立適合本公司的過程,初期也許由于各方面原因達不到所有過程都規范,但是要有相應的過程就行,先建起來,然后定期收集大家的需求,確認合適的過程,逐步完善,逐漸做到所有過程規范化內容文檔化,乃至最后形成系列過程規范。
這些過程規范的建立除了參考上面的七個模型也可依一些國際國家標準如:《GB9585 軟件需求說明編制指南》、《GB9386 測試文件編制指南》、《GB/T12505 軟件配置管理編制指南》、《GB8566 軟件開發規范》、《GB12504 軟件質量保證規范》等標準規范。
在這些過程中我主要談一下我最主要關注的過程,過程改進過程、配置管理過程、測試過程。
一、過程改進過程需要注意的是:
1、 過程改進要符合企業的現狀,不能盲目照抄其它過程模型;
2、 過程改進是一個不斷完善不斷升級的活動,要按階段進行,定期總結評審;
3、 過程改進要得到組織、管理層領導、開發人員、測試人員的支持,因為過程改進的變化引起員工的反感就不好了。開發人員和測試人員要做好過程改進的挑戰和沖擊準備;
4、 過程監控、日報、周報制度要建立,這樣實際數據能夠準確收集,并進行分析;
5、 過程改進要及時調整;
6、 過程改進需要看結果,更要看到過程改進過程中的創新。創新就應該得到獎勵。
二、配置管理過程:
1、基線控制流程
2、版本控制
是對系統軟件不同版本進行標識和跟蹤的過程,是對軟件開發過程中所有文件系統對象,包括源代碼、文檔、數據、執行文件、位圖、目錄變更的控制和跟蹤。
3、變更控制流程
三、測試過程
確定測試過程模型:多V模型或叫W模型
起步階段先從確認測試和業務功能測試做起。逐步增加其它測試過程。比如電力系統對生產安全特別重視,可以引進保密安全性測試和可靠性測試。再次對邏輯組態的準確性進行測試,GUI測試也很重要。
嵌入式測試和普通軟件測試的目的也是一樣的,都是為驗證或達到用戶要求的可靠性測試。但是它有很多和普通測試不一樣的地方。比如:
1、 嵌入式測試要在特定的硬件環境、物理環境(如工業強磁場干擾)上進行測試;
2、 必要的可靠負載測試,如:連續長時間不斷電工作測試;
3、 還需要對實時性進行測試,如:在規定的時間內輸入輸出某些數據等。
但是不管做什么類型的測試,具體的測試過程都由以下流程進行。
1、 測試需求分析:測試工程師對用戶原始需求、軟件功能需求進行測試分析,對分析結果進行測試分解的過程。首先確定測試需求分析來源:開發需求、用戶需求、協議規范、測試經驗;其次明確測試類型,如:功能測試、一致性測試、安全性測試、性能測試、壓力測試、恢復測試、系統指標測試、備份測試、大容量測試、抗干擾測試、互操作測試和Web測試;再次進行功能分解,最后進行功能測試分解。
2、 測分評審:評審測試需求分析的準確性、完整性、一致性。
3、 測試計劃:明確測試目標、測試范圍;測試任務分解、工作量估計;明確測試依據、測試策略、測試內容和方法;制定人員角色和進度安排;了解測試環境;風險分析。
4、 測試計劃評審:評審測試計劃的準確性、完整性、一致性、可行性。
5、 測試設計:測試用例編寫、黑盒測試、白盒測試內容和方法,測試腳本開發。
6、 測試設計評審:評審測試用例的準確性、完整性、一致性、可行性。
7、 測試執行:根據測試設計進行操作執行。
8、 測試報告:完成整個測試項目總結、缺陷報告、缺陷跟蹤報告。
9、 測試報告、缺陷報告評審。
10、 回歸測試設計、測試執行。
11、 回歸測試報告、缺陷報告。
12、 項目總結報告,項目提交發布。