孫偉強
(上海電機廠有限公司,上海 200240)
在大型軟件項目實施過程中,軟件測試人員擔(dān)任著發(fā)現(xiàn)軟件程序中的Bug的責(zé)任。在測試一個涉及多方面業(yè)務(wù)的大型系統(tǒng)(如ERP系統(tǒng))的過程中,經(jīng)常會測試出數(shù)百個Bug需要開發(fā)人員隨時更正。這些Bug可能分布在各類子功能中,也可能發(fā)現(xiàn)各種類型的Bug。在這種情況下,軟件缺陷管理工具是必不可少的。
在實際工作實踐過程中,沒有軟件缺陷管理工具的幫助,就可能會出現(xiàn)如下一系列的影響:
(1)軟件測試人員將Bug已經(jīng)提交給了開發(fā)人員,但是開發(fā)人員可能沒有一個很清晰的界面來接收到測試人員提交的Bug信息。
(2)有一些Bug可能是測試人員進行回歸測試中測試出的問題,但是不能和第一次測試出此類型的情況進行關(guān)聯(lián),所引起的結(jié)果為不能進行有效的回歸測試。
(3)測試樣例的版本控制難以做到,不能很清晰地看出Bug所處的狀態(tài),是Bug被關(guān)閉了還是被延期了。
(4)當(dāng)運用Word或者Excel作為缺陷管理工具時,可能會給Bug各類指標(biāo)數(shù)的統(tǒng)計(特別是以圖表形式統(tǒng)計)帶來問題,很難看出一個Bug對應(yīng)的測試需求。
(5)假如出現(xiàn)一些不可重現(xiàn)的Bug按照規(guī)定也需要進行記錄,這些不可重現(xiàn)的Bug在整個項目中的狀態(tài)難以定義。(不能算作已經(jīng)解決的Bug,同時Bug由于不能重現(xiàn)使得開發(fā)人員修復(fù)起來有困難)
軟件測試的主要目的在于發(fā)現(xiàn)軟件存在的問題(Bug)。如何處理測試中發(fā)現(xiàn)的錯誤,將直接影響到測試的效果。只有正確、迅速、準(zhǔn)確地處理這些錯誤,才能消除軟件錯誤,保證要發(fā)布的軟件符合需求設(shè)計的目標(biāo)。而有以上5點的存在,會使Bug的處理效率和Bug處理的驗證會有偏差,對項目是否成功還是比較顯著的。
對于軟件各項錯誤的狀態(tài),軟件業(yè)巨頭微軟公司對于軟件錯誤的狀態(tài)有如下5種:
New:代表此Bug由測試人員發(fā)現(xiàn)并且進行提交。
Open:Bug被正式確認并且分發(fā)給開發(fā)人員。
Fixed:開發(fā)人員完成Bug漏洞修復(fù)并且提交給測試人員進行驗證測試。
Decline:開發(fā)人員拒絕修改錯誤(代表Bug開發(fā)人員和測試人員對需求等非程序方面有歧義需要額外溝通)。
Deferred:Bug在本版本的程序中暫緩修復(fù),在下一個版本中修復(fù)。(一般是Bug嚴(yán)重等級比較低的項目)
Closed:測試人員最終驗證通過,此Bug被最終修復(fù),并由測試人員關(guān)閉此Bug。
一般是由測試人員新建Bug記錄后,Bug記錄被正式派分到開發(fā)人員處,若開發(fā)人員對此Bug有歧義就可以拒絕這條Bug的修改并且與測試人員討論這條Bug的有效性。若此Bug的確需要修正,則由開發(fā)人員進行修正后置軟件的錯誤問題狀態(tài)為解決。
當(dāng)測試人員接到相關(guān)通知后,測試人員接到相關(guān)通知后進行回歸測試后若沒有問題,則可以關(guān)閉這條Bug記錄。
在實際情況中,覺得開源軟件BugFree與軟件錯誤狀態(tài)理論較為符合,也能解決版本控制問題,現(xiàn)把安裝過程和使用情況進行分享。
(1)BugFree采用的是PHP+Apache+MySQL后臺,而Apache使用的是和IIS一樣的80端口,所以安裝的機器上有IIS的話,請先修改IIS默認端口,修改方法如下:
開始菜單——>控制面板——>管理工具——>Internet信息服務(wù),界面如圖1所示。
圖1 BugFree的界面
從圖1中可以看到,已經(jīng)將TCP端口改為了90。
① 同樣的,一些下載軟件會占用80端口,需要將這些軟件的進程進行關(guān)閉。
② 下載GreenAmp服務(wù)器軟件套件(版本號為050123)。
③ 將GreenAmp套件解壓后直接運行啟動GreenAMP.bat。
④ 在IE瀏覽器中輸入http:∥localhost/phpmyadmin,輸入用戶名root,密碼為空。若出現(xiàn)歡迎使用PHPMyAdmin,則代表安裝正確。
⑤ 下載BugFree文件后解壓到GreenAMP中的WWW文件夾下,再次在瀏覽器中輸入http:∥localhost/BugFree,接著直接點擊創(chuàng)建數(shù)據(jù)庫超鏈接后,再次將Include文件夾下的Config.inc.Sample.php進行復(fù)制后更名為Config.inc.php,BugFree即可安裝成功。
(1)首先用Admin賬號登入添加項目和項目人員,用Admin賬號添加項目界面如圖2所示??梢孕略鲆粋€名為Price的項目。
(2)然后可以新增一個Bug,如圖3所示。
在下圖3中可以維護Bug類型(包括新增需求、代碼錯誤、性能壓力等類型),創(chuàng)建Build中(可以填入發(fā)現(xiàn)Bug的日期,內(nèi)部程序版本等內(nèi)容)。這樣當(dāng)測試人員將某一個特定版本的Bug提交給開發(fā)人員后,開發(fā)人員可以針對這個特定版本的程序進行修復(fù),從而不會引起程序開發(fā)版本的混亂。
(3)開發(fā)人員進行程序修改并且點擊解決按鈕后,就可以解決掉這個Bug,解決方案有如下幾種:
① By Design(無效的Bug);
② Duplicate(已經(jīng)被別人發(fā)現(xiàn)的重復(fù)的Bug);
③ External(外部因素造成的Bug,可能為IE6下功能正確,而IE8中就可能無法運行);
④ Fixed(Bug被正確地修正了);
⑤ Not Repro(無法復(fù)現(xiàn)Bug,可能為無效的Bug);
⑥ Postponed和Won't fix都為由于Bug緊急程度比較低,推遲到以后再修復(fù)此Bug,相當(dāng)于5種類型中的Deferred。
(4)當(dāng)開發(fā)人員完成保存后,測試人員進行回歸測試后并且沒有再發(fā)現(xiàn)新的Bug的話,就可以關(guān)閉這個Bug,同時系統(tǒng)會記錄Bug開放的人員、時間,開發(fā)人員處理的人員、時間,Bug關(guān)閉的人員、時間等信息。
(5)還有一些報表功能,如某一個項目包含的Bug統(tǒng)計數(shù)、Bug被指派人的統(tǒng)計數(shù)、Bug類型的統(tǒng)計數(shù)、Bug操作系統(tǒng)的統(tǒng)計數(shù),這樣就可以對這些統(tǒng)計數(shù)進行分析后得到項目的實際Bug情況。
通過在實際工作過程中參與的各個IT項目過程中,深刻地理解到當(dāng)測試項目非常龐大(如涉及到采購、財務(wù)、物流內(nèi)容的ERP項目或者對最終金額精度要求非常高的轉(zhuǎn)制報價項目),由于這些項目可能有幾十甚至上百個需求,一個測試需求可能需要3到4個測試樣例,這樣就會導(dǎo)致整個項目有幾百個測試樣例。假如沒有比較好的軟件缺陷工具進行管理,可能會出現(xiàn)測試樣例不能覆蓋到相關(guān)需求、不能正確地統(tǒng)計出實際發(fā)現(xiàn)的Bug數(shù)量以及等問題。綜上所述:選擇一個合理并且方便的缺陷管理工具對于軟件系統(tǒng)成功是十分重要和迫切的。