姚毅
(福州軟件職業技術學院智能產業學院 福建省福州市 350200)
bug,俗稱缺陷。bug匯總,是一種能直觀了解測試項目已發現的缺陷標題,缺陷數目,缺陷細節的手段。一般采用Office Excel或Word文件形式,或者是網頁表格形式。
bug匯總是一種能直觀了解測試項目的bug情況的文件報告。它一般包括以下內容[7]:
(1)報告名稱。
例:XXX項目bug匯總-20210605。
(2)bug編號,標題列表。
顯示所有已提交的bug列表。
例:bug匯總有2個bug,列表如下:
bug1:打開登錄頁面,出現登陸按鈕,該按鈕的標題應該是登錄。
bug2:點擊服務商的新增按鈕,出現404錯誤。
(3)每個bug編號,標題,截圖。
示具體的每個bug標題,標題,截圖。
有朋友說,這樣的bug匯總,似乎略顯簡單。其實可以在截圖加上bug要點,用箭頭標記步驟,做到一圖了然。
本文使用的bug匯總文件格式為微軟Office Word文件格式,擴展名為doc。
根據bug匯總生成系統的功能,按IPO(輸入,處理,輸出)思路進行需求分析和設計。
系統功能模塊如表1所示。
根據本系統的需求設計,結合Visual Studio平臺和VB.NET編程語言,整理出以下技術要點。

圖1:系統界面原型圖
經過設計,需要使用如下界面控件:
(1)1個窗體:是bug匯總生成系統的主界面。
(2)5個按鈕。分別是:打開,上移,下移,刪除,生成。
(3)列表框:顯示所有的bug。
(4)打開文件對話框。
(5)標簽:顯示位置移動數。
(6)文本框:輸入要移動的位置數。
本開發環境下,為了操作Microsoft Word,需要引用Microsoft Word Object library。
根據以上的需求分析,設計,初步設計出如圖1所示的界面原型圖。

表1:系統功能模塊
可以按照如下步驟進行:
(1)下載Visual Studio軟件[1],安裝后打開。最新的版本是Visual Studio 2019,筆者選擇的是Visual Studio 2012。
(2)點擊文件菜單,新建子菜單,選擇Visual Basic→ Windows→Windows Forms Application。
(3)輸入工程名稱:BugReport,點OK按鈕。
(4)按照軟件系統原型圖,添加對應的控件,并輸入相關屬性。
(5)添加引用:Microsoft Word Object library。右鍵點擊工程名稱,點添加引用,點COM,找到并選擇Microsoft Word 12.0 Object Library,點OK按鈕。
在默認的窗體類下,輸入如下公共變量
Public Class Form1
Dim myfileInfos As IO.FileInfo() '用于獲得文件夾的文件列表
Dim instance As IO.DirectoryInfo
Dim CurPath As String ' 當前路徑: Dim CurType As String '選擇的圖片格式
Public ZWordApplic As Word.Application '用于Word操作
Private ZDocument As Word.Document
4個公共函數,具體代碼如下:

根據上文的設計,分別為打開,上移,下移,刪除,生成按鈕添加對應的代碼。
(1)打開按鈕的代碼[6],對應代碼函數:Button1_Click

(2)上移按鈕,下移按鈕的代碼[8],對應代碼函數:Button2_Click和Button3_Click
由于此段代碼比較簡單,只提供編程思路,詳細代碼見參考文獻[8]:
1.判斷是否選擇了要移動的列表子項。
2.確定要移動的步數。
3.在新的位置插入該子項,并刪除原來位置的子項。
(3)刪除按鈕的代碼,對應代碼函數:Button4_Click由于此段代碼比較簡單,只提供編程思路,詳細代碼見參考文獻[5]:
1.判斷是否選擇了要刪除的列表子項。
2.使用列表框的RemoveAt方法。
(4)生成匯總[4]的代碼,對應代碼函數:Button5_Click Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

圖2:加載所有bug

圖3:點擊生成bug匯總的結果


通過以上的工作,已經完成bug匯總生成系統的代碼編寫工作。那一起來看看實現效果吧。點擊Visual Studio 2012的工具欄將啟動本系統。
(1)生成系統的啟動效果,見本文的圖1。
(2)點生成系統的打開按鈕。將出現一個文件打開對話框,選擇bug圖片對應的格式。選擇bug截圖文件夾中的一個圖片,點打開按鈕。如圖2所示。
點“生成bug匯總”按鈕,出現如圖3所示效果圖。
本文描述了一個基于VB.NET的bug匯總生成系統的概念,功能設計,具體實現,運行效果等相關內容,并已經應用于筆者參與的多個軟件測試項目中。
當然本系統還不完美,相關的細節可以再優化。比如:
(1)擴大格式控制。加入更多字體,圖片的設置控制。
(2)引入數據庫。方便對比歷史數據:包括項目進度與bug個數數據,bug類型數據的對應等[2]。
筆者將在今后繼續改進本系統,更好地服務于測試管理。