摘要:在軟件測試組織中,對測試過程中的知識進行有效的管理,是提升組織整體測試水平的關鍵。一個重要的研究問題是怎樣將知識管理過程與軟件測試過程有效集成,從而促進知識資產在軟件測試組織中的傳播與重用。給出了軟件測試領域知識管理子系統的體系結構、主要功能以及使用流程,對一些關鍵技術進行了探討。最后,給出了知識地圖模塊的設計與實現,驗證了本文所實現的軟件測試領域知識管理系統的合理性和有效性。
知識管理的本質是一個管理問題,但是知識管理的各種功能及服務最終都還得依靠知識管理技術來實現??梢哉f,沒有強大的知識管理技術支持,企業將很難有效實施知識管理,它是構建知識管理系統的基礎,也是實現知識管理的強大推動力。從廣義的角度看,知識管理技術并不局限于IT技術,但現代信息技術才是知識管理得以有效實現的基本前提。十多年的知識管理研究使得相當一部分的知識管理IT工具已經推向商業市場,但是這些已有的產品并不都是和企業的具體需求結合在一起,特別是在特定領域的應用,這種脫節表現尤為突出。
軟件測試是一個知識密集型的活動,測試人員都屬于知識工作者,他們的工作不僅僅是依據測試計劃對軟件進行測試,與測試相關的知識、技巧、經驗和靈感在測試過程中有著重要的作用,測試人員如果沒有開闊的思路,沒有豐富的測試經驗與測試技巧,測試的質量將無法保證。此外技術的飛速發展,不斷出現的新的待測軟件產品,常使軟件測試人員感到壓力重重,力不從心,他們有探尋新的測試知識和技術的緊迫需求。而知識管理的出現為我們提供了一種新思路和解決問題的新方法,但是軟件測試有其自身的特點,雖然現有的通用知識管理理論及技術已或多或少觸及了某些問題,但我們更需要用一種與本領域結合更緊密的理論和技術,來重新思考和審視我們的問題,以便尋找出一種解決問題的更有效的方法。
本系統是目前北航軟件所的一個軟件測試管理平臺QESuite2.0項目中的一個子系統,該項目是北航軟件所承擔的某型號任務的一個子課題。目前,該系統已經完成了原型系統的構建,全部模塊及功能已經實現,并在實際工作中試用,達到了預期的效果。
1軟件測試領域的知識管理
1.1國內外研究現狀
目前國內外在軟件測試領域內實施知識管理的相關研究很少,迄今為止并沒有找到在軟件測試中實施知識管理的實例。國內知識管理的研究起步晚,同時專門從事軟件測試的企業又很少,在測試領域內實施知識管理的需求剛剛出現。
到目前為止,雖然沒有發現國外針對軟件測試領域實施知識管理的研究和案例,但是從事各領域通用的知識管理的研究已有了很多年的歷史,像IBM,Microsoft這樣居于軟件行業領先地位的公司,已經投入了相當規模的資金與人力來進行知識管理的研究,提出了一整套的知識管理理論并開發出相應的軟件產品。
此外,國外在與軟件測試最相近的軟件工程領域對知識管理也有比較深入的相關研究,已經發表了相當數量的論文并開發出了一系列的軟件支持工具。目前,每年都舉行專門的基于知識的軟件工程年會(KBSE Knowledge-BasedSoftware Engineering Conference),探討知識管理在軟件工程領域的最新進展。
進行軟件測試領域知識管理的研究實際上是一個知識管理思想在軟件測試領域的IT實現問題,也就是開發出一個軟件平臺來支持軟件測試中的知識管理活動。根據Gallupe在2000年對現有知識管理系統平臺、理論、案例等相關信息的較大范圍的研究,現有知識管理系平臺要真正實現有效的知識獲取、編碼、存儲和搜索還有相當長的一段路要走。
1.2存在的主要問題
根據作者在北航軟件所參與的軟件測試項目工作經驗,同時結合知識管理的基本原理分析國際上主流軟件測試過程,認為目前在軟件測試過程中存在五大問題:
1)軟件測試知識重用率低。目前,軟件測試過程中公共測試知識的積累未能有意識地大規模開展,雖然企業內部有一些用于測試知識和經驗積累的數據庫,但大多數員工忽視其存在,造成測試知識資源的閑置,導致測試知識和經驗的重用率低。
2)軟件測試知識傳遞不暢?,F有測試知識的保管模式使得知識的傳遞不暢,測試知識被動地等人來閱讀,而使用者則在知識海洋中苦苦尋覓他所需要的知識,員工無法快速掌握新的測試知識。
3)軟件測試知識共享環境差。企業內部尚沒有正式的、專用的、有組織的知識共享場所,員工之間缺乏相互溝通與交流的機會,溝通與交流的體制也沒有建立起來,軟件測試過程中的知識共享氛圍也有待于培養形成。
4)軟件測試知識流失嚴重。許多專門經驗和技能只是少數人所擁有,沒有真正成為企業的公共知識,這不僅使測試知識傳遞不暢,而且在人員變動時,這些測試知識會隨之流失,使企業的整體競爭力因人員流動而發生波動,給企業帶來嚴重損失。
5)無法快速實現測試組織中人力資源優化配置。知識管理是人、過程、技術的有機集成,其中人是最主要的,企業的管理者無法對組織中的人員技術特長、知識分布了如指掌,在遇到新的測試項目時,無法根據員工特長,快速搭建出最優的項目團隊,從而無法實現組織中人力資源的優化配置。
由于上述問題的存在,造成了軟件測試企業的生產效率不高,對市場的整體響應速度慢,應變能力不強。本人認為以上問題的出現是源于在當前的軟件測試過程中缺乏對知識的科學管理,因此在該領域內實施知識管理就顯得很有必要。
2系統體系結構及工作流程
北航軟件所(SEI/BUAA)在多年從事軟件測試領域的研究與實踐的基礎上,對知識管理在測試領域中的應用進行了大量深入的調查、研究,提出了一套針對軟件測試領域實施知識管理的思想和方法。
由于軟件測試領域的知識管理目前的研究甚少,特別是現成的軟件測試知識管理系統更是一片空白,因此本課題的研究只能參照通用的或相關領域的已有研究進行。觀察國內外知識管理平臺的研究,盡管提出的模式紛繁復雜,但基本上每個模式中都包含著諸如知識產生、分類、積累、共享、重用這樣的基本流程。
2.1系統體系結構
QESuite2.0在結構上采用的c/s方式,可支持群組協同工作,其中數據收集和分發的部分使用EJB實現,容器使用JBoss。QESuite2.0的框架基于插件開發的思想創建,利用多態特性聲明可擴展的接口??蚣芘c插件的連接、子類別的實例化過程則利用解釋引擎(也稱作連接器)在運行時動態完成,框架即可根據模板進行統一調用,具有良好的封裝性和可擴展性?;跍y試管理平臺的以上特點,軟件測試過程知識管理系統的體系結構如圖1所示。
原文轉自:http://www.anti-gravitydesign.com