文/段鳳玲 余靜 涂天佳
信息科技的發展,讓軟件技術在無人直升機研究和設計過程中的應用越來越重要。因此,無人直升機所使用的軟件必須有極高的穩定性和安全性。造成軟件不穩定的原因很多,一般是通過軟件測試來一個個的找出這些問題,進而排除故障。軟件測試作為保證軟件質量以及提高軟件可靠性最有效的手段之一,已經成為各方面的研究重點。軟件測試的目的是為了查找軟件中的錯誤,在查找軟件錯誤的過程中,對測試過程的管理尤為重要。在軟件測試中,測試過程的好壞會影響到軟件產品的質量。一個優良的測試過程有助于提高測試質量,而且有助于減少測試成本、縮短測試周期,對軟件測試過程的研究有重大的意義。
在軟件測試過程的研究中,過程優化是其中的一個重要研究分支。對軟件測試過程的優化研究,可以極大的提高軟件測試的效率,從而保障軟件產品的質量。本文在研究軟件度量理論的基礎上,根據軟件度量和GQM方法提出了一個指導測試過程優化的方法。
經過眾多學者和測試人員的不斷研究努力,測試發展至今,已經形成了一套相對通用的測試流程,在該流程中,測試過程一般分為5個階段,即靜態測試、單元測試、集成測試、確認測試和系統測試。
度量技術是軟件過程優化的有效途徑之一,在軟件工程領域發揮著重要作用。軟件度量主要是對軟件過程中的各個子過程和軟件中的屬性進行的度量活動,通過度量手段可以清晰了解軟件的所有信息,例如軟件開發時間、軟件代碼行數、軟件功能點數、軟件文檔總頁數、軟件故障數等。對于軟件屬性和開發過程的理解,可以更好地幫助控制軟件開發和過程維護。
過程度量是軟件度量的子部分,主要是指在軟件開發和過程維護中對所有產品和過程進行的管理過程。其中軟件產品主要包括了以下內容:軟件研制任務書、軟件需求規格說明書、軟件設計說明書、軟件開發完成得到的源代碼、軟件測試階段的測試用例、測試階段的問題報告單、測試結束后編寫的測試報告以及軟件用戶使用說明書等。軟件過程主要包括系統需求分析與設計階段、項目策劃階段、軟件需求分析階段、軟件設計階段、編碼集成與測試階段、軟件配置項測試階段、系統集成與測試階段、軟件驗收與交付階段等。對整個軟件過程進行度量,可以更加直觀了解軟件屬性特征,了解過程性能,了解軟件的各種產品信息,從而更好地對如軟件過程進行管理和優化,最終提高軟件產品的質量。
在眾多度量建模方法中,現階段最為著名且使用頻率最高的方法是Victory Basili教授提出的GQM(Goal-Question-Metric,目標-問題-度量)模型,該模型的可操作性和靈活性很強。GQM模型的實現步驟主要如下:首先對整個軟件過程定義一個目標,這個目標是整個度量活動的起點;在該目標的基礎上,根據項目的實際情況,將目標細分為相互之間互不相同的一些問題元,這些問題即為得到最終結果過程中的過程變量;然后針對于上述情況下的每一個問題,提出能夠解決該問題的答案,即最終所得到的度量元,聯合起來形成一套度量指標體系。
經過對軟件度量理論的研究,本文在軟件度量技術和GQM模型的基礎上提出了一個優化軟件測試過程的方法,該方法的流程圖如圖1所示。
由圖1可知,該方法共包含以下步驟:
(1)制定度量目標為軟件測試質量;
(2)制定度量目標為軟件測試過程優化;
(3)根據GQM方法得到度量測試質量的度量元;
(4)根據GQM方法得到度量測試過程優化的度量元;
(5)在實際項目測試過程中,收集以上兩部分一系列度量元的度量值;
(6)在所得到的度量值基礎上,根據測試質量度量元的度量結果確定測試過程優化的優化力度,并在測試過程優化度量元的度量結果基礎上改進影響因素,從而達到優化測試過程的目的。

圖1:測試過程優化的方法圖
在測試過程優化中,優化必然有著成本限制,不能無限期的進行優化。因此必須根據當前測試過程的實際情況確定過程優化的力度,在上述方法中,度量測試質量的目的是了解當前測試過程的質量,然后根據當前測試質量的高低來確定過程優化的優化力度。
對于測試質量目標,通過對測試過程的研究,共從以下幾個方面來度量測試質量,即問題層為:測試中間產品的質量、測試過程的質量、測試技術的質量。然后對上述三方面問題進一步細化,找出最終的度量體系。測試質量的度量模型關系圖如圖2所示。
對于測試過程優化目標,主要可以通過人員、工具、環境、時間以及測試技術5個因素實現測試過程優化的目標。對上述5個因素進一步細化可以得到最終的度量指標體系。測試過程優化的度量模型關系圖如圖3所示。
為了驗證上述方法的可行性,我們在無人直升機地面測控站地面監控軟件項目測試過程中使用了該方法來優化軟件測試過程。
首先我們收集了測試質量和測試過程優化的度量元。其中數據收集的方法主要包括測試工具自動收集、人員手工收集、測試人員憑借主觀感受給予評分等。為了節約時間和保證實驗的簡潔性,在此我們只列出其中部分度量元,其度量結果如表1、表2所示。
通過對測試質量度量元的度量結果進行分析可知,整個軟件測試過程的測試質量效果不是很好,其中環境對用例支持率達到96%還算不錯,工作量估計偏差率達到了20%,當前問題歸零率僅為88%,可知整個測試過程還可以有很大的提升空間,因此該測試過程的可優化力度還是比較大的。
通過對以上兩個表格中的信息總結,我們可以從以下方面來對測試過程進行優化:
(1)增加參與測試人員數量;

表1:測試質量度量的部分度量元表

表2:測試過程優化度量的部分度量元表

圖2:測試質量的度量關系圖

圖3:測試過程優化的度量關系圖
(2)對測試人員進行培訓,提高員工技能熟練度;
(3)提高管理工具的穩定性和易用性;
(4)在測試計劃活動中提高時間分配的合理性和測試技術的合理性。在該軟件測試結束后,項目部主要從測試人員數量、員工培訓、時間分配、測試技術和管理工具等方面進行調整,對軟件測試過程進行了優化。優化調整后,對另一個項目的地面監控軟件的測試過程后,度量該軟件的測試質量度量元,其部分度量元的度量結果如下所示:
(1)測試用例總數181個;
(2)環境支持測試用例數176個;
(3)環境對于測試用例的支持率為97%;
(4)預期缺陷數15個;
(5)總缺陷數為13個;
(6)修改缺陷數12個;
(7)當前問題歸零率為92%;
(8)工作量估計偏差率為8%。
通過對測試過程優化前后的兩模塊的測試質量度量值相對比可知:優化前,環境對于測試用例的支持率為96%,當前問題歸零率為88%,工作量估計偏差率為20%;優化后,環境對于測試用例的支持率為97%,當前問題歸零率為92%,工作量估計偏差率為8%??芍褂迷摲椒▋灮?,環境對用例支持率、當前問題歸零率以及工作量估計偏差率都有一定程度的提升,由此可知,該方法在實際項目過程中確實能起到優化測試過程的目的。
本文在軟件度量技術和GQM方法的基礎上提出了一個指導測試過程優化的方法。該方法首先度量當前測試質量,為測試過程優化確定優化力度;其次利用GQM方法提出一系列測試過程優化的度量元,為過程優化提供指導方向。通過在實際測試項目中應用該測試過程優化的方法,我們發現該方法在一定程度上能夠達到測試過程優化的目的。