- 相關(guān)推薦
關(guān)于面向軟件測試過(guò)程的知識管理方法的研究與實(shí)現
論文關(guān)鍵詞:軟件測試,知識管理模型,知識地圖
論文摘要:在軟件測試組織中,對測試過(guò)程中的知識進(jìn)行有效的管理,是提升組織整體測試水平的關(guān)鍵。一個(gè)重要的研究問(wèn)題是怎樣將知識管理過(guò)程與軟件測試過(guò)程有效集成,從而促進(jìn)知識資產(chǎn)在軟件測試組織中的傳播與重用。給出了軟件測試領(lǐng)域知識管理子系統的體系結構、主要功能以及使用流程,對一些關(guān)鍵技術(shù)進(jìn)行了探討。最后,給出了知識地圖模塊的設計與實(shí)現,驗證了本文所實(shí)現的軟件測試領(lǐng)域知識管理系統的合理性和有效性。
知識管理的本質(zhì)是一個(gè)管理問(wèn)題,但是知識管理的各種功能及服務(wù)最終都還得依靠知識管理技術(shù)來(lái)實(shí)現?梢哉f(shuō),沒(méi)有強大的知識管理技術(shù)支持,企業(yè)將很難有效實(shí)施知識管理,它是構建知識管理系統的基礎,也是實(shí)現知識管理的強大推動(dòng)力。從廣義的角度看,知識管理技術(shù)并不局限于IT技術(shù),但現代信息技術(shù)才是知識管理得以有效實(shí)現的基本前提。十多年的知識管理研究使得相當一部分的知識管理IT工具已經(jīng)推向商業(yè)市場(chǎng),但是這些已有的產(chǎn)品并不都是和企業(yè)的具體需求結合在一起,特別是在特定領(lǐng)域的應用,這種脫節表現尤為突出。
軟件測試是一個(gè)知識密集型的活動(dòng),測試人員都屬于知識工作者,他們的工作不僅僅是依據測試計劃對軟件進(jìn)行測試,與測試相關(guān)的知識、技巧、經(jīng)驗和靈感在測試過(guò)程中有著(zhù)重要的作用,測試人員如果沒(méi)有開(kāi)闊的思路,沒(méi)有豐富的測試經(jīng)驗與測試技巧,測試的質(zhì)量將無(wú)法保證。此外技術(shù)的飛速發(fā)展,不斷出現的新的待測軟件產(chǎn)品,常使軟件測試人員感到壓力重重,力不從心,他們有探尋新的測試知識和技術(shù)的緊迫需求。而知識管理的出現為我們提供了一種新思路和解決問(wèn)題的新方法,但是軟件測試有其自身的特點(diǎn),雖然現有的通用知識管理理論及技術(shù)已或多或少觸及了某些問(wèn)題,但我們更需要用一種與本領(lǐng)域結合更緊密的理論和技術(shù),來(lái)重新思考和審視我們的問(wèn)題,以便尋找出一種解決問(wèn)題的更有效的方法。
本系統是目前北航軟件所的一個(gè)軟件測試管理平臺QESuite2.0項目中的一個(gè)子系統,該項目是北航軟件所承擔的某型號任務(wù)的一個(gè)子課題。目前,該系統已經(jīng)完成了原型系統的構建,全部模塊及功能已經(jīng)實(shí)現,并在實(shí)際工作中試用,達到了預期的效果。
1軟件測試領(lǐng)域的知識管理
1.1國內外研究現狀
目前國內外在軟件測試領(lǐng)域內實(shí)施知識管理的相關(guān)研究很少,迄今為止并沒(méi)有找到在軟件測試中實(shí)施知識管理的實(shí)例。國內知識管理的研究起步晚,同時(shí)專(zhuān)門(mén)從事軟件測試的企業(yè)又很少,在測試領(lǐng)域內實(shí)施知識管理的需求剛剛出現。
到目前為止,雖然沒(méi)有發(fā)現國外針對軟件測試領(lǐng)域實(shí)施知識管理的研究和案例,但是從事各領(lǐng)域通用的知識管理的研究已有了很多年的歷史,像IBM,Microsoft這樣居于軟件行業(yè)領(lǐng)先地位的公司,已經(jīng)投入了相當規模的資金與人力來(lái)進(jìn)行知識管理的研究,提出了一整套的知識管理理論并開(kāi)發(fā)出相應的軟件產(chǎn)品。
此外,國外在與軟件測試最相近的軟件工程領(lǐng)域對知識管理也有比較深入的相關(guān)研究,已經(jīng)發(fā)表了相當數量的論文并開(kāi)發(fā)出了一系列的軟件支持工具。目前,每年都舉行專(zhuān)門(mén)的基于知識的軟件工程年會(huì )(KBSE Knowledge-BasedSoftware Engineering Conference),探討知識管理在軟件工程領(lǐng)域的最新進(jìn)展。
進(jìn)行軟件測試領(lǐng)域知識管理的研究實(shí)際上是一個(gè)知識管理思想在軟件測試領(lǐng)域的IT實(shí)現問(wèn)題,也就是開(kāi)發(fā)出一個(gè)軟件平臺來(lái)支持軟件測試中的知識管理活動(dòng)。根據Gallupe在2000年對現有知識管理系統平臺、理論、案例等相關(guān)信息的較大范圍的研究,現有知識管理系平臺要真正實(shí)現有效的知識獲取、編碼、存儲和搜索還有相當長(cháng)的一段路要走。
1.2存在的主要問(wèn)題
根據作者在北航軟件所參與的軟件測試項目工作經(jīng)驗,同時(shí)結合知識管理的基本原理分析國際上主流軟件測試過(guò)程,認為目前在軟件測試過(guò)程中存在五大問(wèn)題:
1)軟件測試知識重用率低。目前,軟件測試過(guò)程中公共測試知識的積累未能有意識地大規模開(kāi)展,雖然企業(yè)內部有一些用于測試知識和經(jīng)驗積累的數據庫,但大多數員工忽視其存在,造成測試知識資源的閑置,導致測試知識和經(jīng)驗的重用率低。
2)軟件測試知識傳遞不暢,F有測試知識的保管模式使得知識的傳遞不暢,測試知識被動(dòng)地等人來(lái)閱讀,而使用者則在知識海洋中苦苦尋覓他所需要的知識,員工無(wú)法快速掌握新的測試知識。
3)軟件測試知識共享環(huán)境差。企業(yè)內部尚沒(méi)有正式的、專(zhuān)用的、有組織的知識共享場(chǎng)所,員工之間缺乏相互溝通與交流的機會(huì ),溝通與交流的體制也沒(méi)有建立起來(lái),軟件測試過(guò)程中的知識共享氛圍也有待于培養形成。
4)軟件測試知識流失嚴重。許多專(zhuān)門(mén)經(jīng)驗和技能只是少數人所擁有,沒(méi)有真正成為企業(yè)的公共知識,這不僅使測試知識傳遞不暢,而且在人員變動(dòng)時(shí),這些測試知識會(huì )隨之流失,使企業(yè)的整體競爭力因人員流動(dòng)而發(fā)生波動(dòng),給企業(yè)帶來(lái)嚴重損失。
5)無(wú)法快速實(shí)現測試組織中人力資源優(yōu)化配置。知識管理是人、過(guò)程、技術(shù)的有機集成,其中人是最主要的,企業(yè)的管理者無(wú)法對組織中的人員技術(shù)特長(cháng)、知識分布了如指掌,在遇到新的測試項目時(shí),無(wú)法根據員工特長(cháng),快速搭建出最優(yōu)的項目團隊,從而無(wú)法實(shí)現組織中人力資源的優(yōu)化配置。
由于上述問(wèn)題的存在,造成了軟件測試企業(yè)的生產(chǎn)效率不高,對市場(chǎng)的整體響應速度慢,應變能力不強。本人認為以上問(wèn)題的出現是源于在當前的軟件測試過(guò)程中缺乏對知識的科學(xué)管理,因此在該領(lǐng)域內實(shí)施知識管理就顯得很有必要。
2系統體系結構及工作流程
北航軟件所(SEI/BUAA)在多年從事軟件測試領(lǐng)域的研究與實(shí)踐的基礎上,對知識管理在測試領(lǐng)域中的應用進(jìn)行了大量深入的調查、研究,提出了一套針對軟件測試領(lǐng)域實(shí)施知識管理的思想和方法。
由于軟件測試領(lǐng)域的知識管理目前的研究甚少,特別是現成的軟件測試知識管理系統更是一片空白,因此本課題的研究只能參照通用的或相關(guān)領(lǐng)域的已有研究進(jìn)行。觀(guān)察國內外知識管理平臺的研究,盡管提出的模式紛繁復雜,但基本上每個(gè)模式中都包含著(zhù)諸如知識產(chǎn)生、分類(lèi)、積累、共享、重用這樣的基本流程。
2.1系統體系結構
QESuite2.0在結構上采用的c/s方式,可支持群組協(xié)同工作,其中數據收集和分發(fā)的部分使用EJB實(shí)現,容器使用JBoss。QESuite2.0的框架基于插件開(kāi)發(fā)的思想創(chuàng )建,利用多態(tài)特性聲明可擴展的接口?蚣芘c插件的連接、子類(lèi)別的實(shí)例化過(guò)程則利用解釋引擎(也稱(chēng)作連接器)在運行時(shí)動(dòng)態(tài)完成,框架即可根據模板進(jìn)行統一調用,具有良好的封裝性和可擴展性;跍y試管理平臺的以上特點(diǎn),軟件測試過(guò)程知識管理系統的體系結構。
本系統基于J2EE開(kāi)放式架構,是一個(gè)面向軟件測試過(guò)程的架構彈性的知識管理平臺。系統依循知識生命周期管理,利用軟件測試組織中的知識文檔,有效幫助企業(yè)存儲、管理、搜尋、分享各種知識,并通過(guò)組織中的知識地圖,有效地評估員工的知識程度,使知識地圖成為知識型員工的地位象征,并通過(guò)統計工具對擁有知識的員工進(jìn)行肯定,從而促進(jìn)知識共享的企業(yè)文化。
2.2系統工作流程
系統的工作流程主要包括以下幾個(gè)方面,如圖2所示。
(1)首先對本子系統進(jìn)行初始化,在本系統預定義的基礎上,允許用戶(hù)對軟件測試知識分類(lèi)、知識程度、組織職位定義、項目規模進(jìn)行自定義。
(2)在交流庫中添加文檔,用戶(hù)可以直接編寫(xiě)文檔提交交流庫,或者在交流庫中提出問(wèn)題,交流庫是整個(gè)系統的知識文檔來(lái)源。交流庫中篩選出的技術(shù)含量較高文檔,由知識分析員進(jìn)行知識分類(lèi)后,提交知識庫。
(3)用戶(hù)可以自行對知識庫中的知識文檔進(jìn)行評估,同時(shí)根據知識分析員對文檔的評定,以及作者的知識程度、文檔的鏈接程度等加權實(shí)現對文檔的評定。
(4)知識分析員可以根據組織討論的結果直接設定組織成員的知識等級,也可以通過(guò)編輯組織成員的項目經(jīng)歷,來(lái)自動(dòng)設置成員的知識等級,或者通過(guò)成員在組織中發(fā)表的知識文檔來(lái)自動(dòng)設置成員的知識等級。
(5)知識檢索,主要包括知識文檔檢索和專(zhuān)家檢索,通過(guò)知識文檔元數據可以任意檢索知識文檔,當用戶(hù)無(wú)法找到需要的知識文檔,可以通過(guò)專(zhuān)家檢索來(lái)告訴用戶(hù)組織中能夠解決問(wèn)題的人。
3幾個(gè)關(guān)鍵技術(shù)的研究與應用
3.1基于本體的軟件測試領(lǐng)域知識表示方法
本體(ontology)起源于哲學(xué),是關(guān)于存在及其本質(zhì)和規律的學(xué)說(shuō)。在近一二十年,本體被計算機及建模領(lǐng)域所采用,用于知識表示、知識共享和重用。本體論是對概念化對象的明確表示和描述,是對客觀(guān)世界存在的現實(shí)系統化的描述。從本質(zhì)上講,本體是一個(gè)或幾個(gè)領(lǐng)域的概念以及反映這些概念的關(guān)系的集合,關(guān)系反映了概念的約束和聯(lián)系,而關(guān)系本身也是概念,關(guān)系之間也可能構成新的關(guān)系。
我們以本體來(lái)對軟件測試領(lǐng)域知識進(jìn)行表示,描述領(lǐng)域中相關(guān)的概念、屬性,及其關(guān)系。這些本體概念、概念之間的關(guān)系定義在文檔、參考文獻、項目、人員、知識程度共5類(lèi)本體中。根據以上屬性,軟件測試領(lǐng)域知識本體如圖3所示。
3.2軟件測試領(lǐng)域知識管理模型的提出
在針對軟件測試過(guò)程的知識管理中,需要實(shí)現積極、主動(dòng)的知識傳遞,建立起組織級的人員之間溝通和交流的渠道,根據軟件測試活動(dòng)中的知識需求,及時(shí)地實(shí)現相關(guān)知識的傳遞,通過(guò)有效的知識傳播來(lái)改善和提高知識的重用效果。由于組織所需要的知識處于動(dòng)態(tài)變化中,因而需要通過(guò)一個(gè)有效的基礎設施,來(lái)滿(mǎn)足以上功能需求。
根據以上分析,我們提出了一個(gè)面向軟件測試過(guò)程的知識管理模型,如圖4所示。本模型的要素是“測試組織人員”、“測試組織知識資產(chǎn)”、“測試組織交流場(chǎng)所”;舅枷胧窃谲浖䴗y試過(guò)程中,建立一個(gè)交流場(chǎng)所,記錄成員的提出的問(wèn)題和問(wèn)題解決過(guò)程,以及各種文檔。
3.3軟件測試領(lǐng)域知識地圖的構建方法
知識地圖,或稱(chēng)知識分布圖(又稱(chēng)作知識黃頁(yè)簿)是知識的庫存目錄。知識地圖所顯示的知識來(lái)源,可能是部門(mén)名稱(chēng)、小組名稱(chēng)、專(zhuān)家名字、相關(guān)人名字、文件名稱(chēng)、參考書(shū)目、事件代號、專(zhuān)利號碼、或知識庫索引等,但卻不包含知識的內容本身,它是指南和向導,用以節省員工追蹤知識來(lái)源的時(shí)間。
一個(gè)優(yōu)秀的軟件測試知識管理平臺軟件還應當能夠提供強大的軟件測試知識分類(lèi)的能力。根據工程實(shí)踐經(jīng)驗及SWEBOK分類(lèi)方法,我們對軟件測試領(lǐng)域增加了5大知識域:開(kāi)發(fā)語(yǔ)言、數據庫、操作系統、軟件測試工具、測試項目相關(guān)知識。我們的知識地圖中,每一種能力都有5級知識程度:了解、熟悉、熟練、精通、專(zhuān)家級。每一級的程度定義都有描述,務(wù)求清晰及易于評價(jià),并避免主觀(guān)的誤差。每個(gè)員工的實(shí)際能力也依此標準衡量,評估過(guò)程應由員工、小組、經(jīng)理及知識分析員互動(dòng)完成。
3.4基于本體的知識文檔智能檢索和排序方法
本體在知識檢索子系統中主要扮演知識庫的角色,即首先對軟件測試領(lǐng)域的概念分類(lèi)、建立概念之間關(guān)系約束的描述,然后以此為基礎構建詳細的軟件測試領(lǐng)域知識庫,主要包括軟件測試領(lǐng)域的具體概念、概念之間的屬性、概念之間的關(guān)系以及實(shí)例等知識。在知識檢索時(shí),根據用戶(hù)請求的關(guān)鍵詞來(lái)查找相應的概念或屬性,并以此為出發(fā)點(diǎn)來(lái)檢索某條本體信息是否與這些概念或屬性相關(guān),從而實(shí)現支持邏輯推理的智能檢索。
在知識文檔檢索子系統檢索出結果后,必須首先研究檢索出來(lái)的文檔應該按照什么樣的順序進(jìn)行排列。影響排序的因素有很多,根據研究,我們認為有5類(lèi)因素是影響排序結果的關(guān)鍵:用戶(hù)對知識文檔的評價(jià)、知識分析員對文檔的評價(jià)、作者的知識程度、文檔的鏈接數,以及文檔的打開(kāi)次數。這五類(lèi)因素的權值是按次序遞減的,可利用遞減加權公式來(lái)計算各因素的權值。下面是遞減加權公式:
知識文檔的重要性按下公式來(lái)進(jìn)行計算:
知識文檔的重要性=P1×用戶(hù)對知識文檔的評價(jià)+P2×知識分析員對文檔的評價(jià)+P3×作者的知識程度+P4×文檔的鏈接數+P5×文檔的打開(kāi)次數。
通過(guò)計算出來(lái)的知識文檔重要性結果,然后對所有文檔按降序排列,就可以將最有價(jià)值的知識文檔排在前列。
4系統實(shí)現
限于篇幅,整個(gè)系統各個(gè)模塊的設計以及實(shí)現,這里不做詳細介紹了。下面以簡(jiǎn)單圖示的方式給出本系統的核心模塊——知識地圖模塊的類(lèi)設計和實(shí)現界面。知識地圖模塊分為兩個(gè)部分:專(zhuān)家網(wǎng)絡(luò )和搭建測試項目團隊。普通用戶(hù)在該模塊可以編輯自己的項目經(jīng)歷,在編輯時(shí)可以選擇項目導人數據,如果項目不存在,則可以自己編輯項目,然后導入項目數據,再編輯自己的項目經(jīng)歷,包括使用的技術(shù)、工作時(shí)間,項目職位、項目規模等等。知識分析員有權限選擇其他用戶(hù)編輯項目經(jīng)歷。在項目經(jīng)歷編輯完成之后,系統會(huì )根據用戶(hù)對某些技術(shù)的使用時(shí)間來(lái)自行定義用戶(hù)在這些知識點(diǎn)的知識程度,但是用戶(hù)的知識程度最多達到熟練級別,要想達到精通和專(zhuān)家級,必須由知識分析員來(lái)編輯用戶(hù)的知識程度。圖5是系統中專(zhuān)家網(wǎng)絡(luò )定義模塊的編輯用戶(hù)知識程度活動(dòng)圖。
知識地圖模塊的客戶(hù)端的設計類(lèi)圖如圖6所示。在知識地圖模塊的客戶(hù)端中,負責界面消息事務(wù)處理的類(lèi)有三個(gè):EditTechDialog,WorkingExperienceDialog,FindPersonToStartProject。EditTechDialog這個(gè)類(lèi)用來(lái)編輯用戶(hù)的知識程度,只有知識分析員才有權限來(lái)調用這個(gè)類(lèi)。WorkingExperi—enceDialog是普通用戶(hù)可以使用的一個(gè)類(lèi),用來(lái)顯示用戶(hù)的工作經(jīng)歷。類(lèi)FindPersonToStartProject是管理人員,通過(guò)輸入一些數據來(lái)得到組織中比較適合新項目的人員,通過(guò)類(lèi)FindResultDialog來(lái)顯示查找結果。
結束語(yǔ)
知識管理的出現為我們提供了一種新思路和解決問(wèn)題的新方法,但是軟件測試有其自身的特點(diǎn)。雖然現有的通用知識管理理論及技術(shù)已或多或少觸及了某些問(wèn)題,但我們更需要用一種與本領(lǐng)域結合更緊密的理論和技術(shù),來(lái)重新思考和審視我們的問(wèn)題,以便尋找出一種解決問(wèn)題的更有效的方法Ⅲg]。進(jìn)行軟件測試領(lǐng)域知識管理的研究,對于提升軟件測試組織的整體測試水平和軟件企業(yè)的整體應變能力,從而最終提高軟件產(chǎn)品的質(zhì)量和企業(yè)的經(jīng)濟效益,加強軟件企業(yè)的核心競爭力無(wú)疑具有重大意義。
本文在分析目前軟件測試領(lǐng)域存在的知識管理問(wèn)題的基礎上,實(shí)現了一個(gè)面向軟件測試過(guò)程知識管理系統,對軟件測試領(lǐng)域實(shí)施知識管理具有一定的意義,對其他領(lǐng)域的知識管理也有一定的參考價(jià)值。它是一個(gè)面向軟件測試過(guò)程的知識管理雛形,雖然系統中還有待進(jìn)一步完善,缺少對郵件系統和消息系統的支持,以及圖形化的統計工具的支持,但是已經(jīng)具有了一定的使用性,并在實(shí)際項目QESuite2.0中得到了檢驗,可望在不久的將來(lái)進(jìn)行商業(yè)化和產(chǎn)業(yè)化。
【面向軟件測試過(guò)程的知識管理方法的研究與實(shí)現】相關(guān)文章:
軟件性能測試研究03-28
面向網(wǎng)絡(luò )測試的嵌入式系統設計與實(shí)現03-07
淺析軟件項目過(guò)程管理矩陣模型研究與實(shí)踐03-01
軟件開(kāi)發(fā)團隊的知識創(chuàng )新研究03-19
基于信號接口的自動(dòng)測試系統軟件的設計與實(shí)現03-18
關(guān)于軟件項目實(shí)施過(guò)程中的進(jìn)度管理研究03-01