功能測試中遇到不可重現(xiàn)軟件缺陷的解決策略
在測試人 員提交軟件缺陷報告后,最不希望看到的這些缺陷被開發(fā)人員忽略,盡管你堅信這一定是軟件缺陷,而罪魁禍?zhǔn)拙褪沁@些缺陷不可重現(xiàn)!一旦出現(xiàn)這樣的情況,測試 人員會很被動,開發(fā)人員也會對測試人員有意見。這就使得關(guān)系本來就不怎么融洽的測試人員和開發(fā)人員之間的關(guān)系更加緊張;對于整個時間緊湊的項(xiàng)目來說,無異 于是火上澆油。為了減少這種尷尬情況的出現(xiàn),非常有必要分析一下軟件缺陷不能重現(xiàn)的原因。
1. 測試環(huán)境不一致
從廣義上來說,保證或影響軟件的任何因素都是環(huán)境,例如,系統(tǒng)的構(gòu)造版本、應(yīng)用服務(wù)器的類型和版本、瀏覽器的語音和版本等。
以下就是我們會遇見的錯誤:某個B/S(Web應(yīng)用)架構(gòu)的系統(tǒng)軟件運(yùn)行于IE8上,出現(xiàn)了JS(Java Script)腳本錯誤導(dǎo)致頁面瀏覽異常的軟件缺陷,把IE8降級到IE6或7后,此軟件缺陷就自動消失了。
2. 測試配置不一致
程序運(yùn)行都是基于一定的配置條件下進(jìn)行的,包括被測系統(tǒng)參數(shù)設(shè)置、基礎(chǔ)數(shù)據(jù)完整性、業(yè)務(wù)流程完整性等,比如,我們曾經(jīng)在某數(shù)據(jù)庫產(chǎn)品測試過程中,由于在安裝界面中選擇了非默認(rèn)路徑進(jìn)行安裝,結(jié)果導(dǎo)致該數(shù)據(jù)庫物理備份會恢復(fù)功能出錯,而對方在核對缺陷時按照默認(rèn)路徑進(jìn)行了安裝,因此缺陷總是無法重現(xiàn)。
3. 內(nèi)存泄露
某些系統(tǒng)長期運(yùn)行后出現(xiàn)速度慢的原因是開發(fā)人員未養(yǎng)成回收內(nèi)存的習(xí)慣。這類錯誤在短期內(nèi)不會出現(xiàn),但當(dāng)系統(tǒng)長期運(yùn)行時就會出現(xiàn),并且由此會引發(fā)一系列的問題。
4. 數(shù)據(jù)接口不匹配
一般只有在查看源代碼后才能發(fā)現(xiàn)。某些類型的數(shù)據(jù)會被系統(tǒng)自動轉(zhuǎn)換,有些數(shù)據(jù)被截斷或被強(qiáng)制轉(zhuǎn)換成另外一種數(shù)據(jù)類型時,會出現(xiàn)一些潛在的錯誤。
基于以上測試過程中出現(xiàn)的軟件缺陷不能重現(xiàn)的原因,我們提出如下一些解決策略,以更好地從源頭上減少不可重現(xiàn)軟件缺陷的出現(xiàn)。
1. 測試環(huán)境配置充分細(xì)致
測試人員在測試前,嚴(yán)格核對系統(tǒng)的運(yùn)行環(huán)境配置要求,并充分考慮系統(tǒng)在線運(yùn)行后的環(huán)境變化,做好測試環(huán)境配置的全面規(guī)劃,注意細(xì)節(jié)。另外可以使用Ghost對硬件或某個分區(qū)進(jìn)行鏡像備份。
2. 捕獲系統(tǒng)日志,分析異常信息
測試人員應(yīng)養(yǎng)成記錄系統(tǒng)錯誤日志的習(xí)慣,保留系統(tǒng)在出錯時的真實(shí)狀態(tài)。比如將IE瀏覽器高級選項(xiàng)設(shè)置為“顯示每個腳本錯誤的通知”。
3. 監(jiān)測系統(tǒng)狀態(tài),異常及時告警
在實(shí)施系統(tǒng)測試過程中,我們必須充分關(guān)注系統(tǒng)運(yùn)行狀態(tài)的變化,一旦系統(tǒng)運(yùn)行狀態(tài)發(fā)生較大的波動,勢必會對后期的業(yè)務(wù)執(zhí)行帶來較大的影響。因此,系統(tǒng)運(yùn)行監(jiān)測的一個重要內(nèi)容是需要及時反饋系統(tǒng)運(yùn)行異常,并提供異常報告。
4. 測試數(shù)據(jù)翔實(shí),易于追溯
測試數(shù)據(jù)是軟件測試的 核心,很多情況下,測試人員為了縮短測試周期,在實(shí)際測試前并沒有充分編寫足夠的測試數(shù)據(jù),也沒有記錄這些測試數(shù)據(jù)的執(zhí)行順序和運(yùn)行軌跡,一旦程序在某個 節(jié)點(diǎn)出現(xiàn)問題,我們無法判斷其產(chǎn)生的過程和引起這個缺陷的具體測試數(shù)據(jù),對我們進(jìn)一步分析軟件缺陷產(chǎn)生的原因會造成一些不必要的障礙。
正是基于此我們強(qiáng)調(diào)在軟件測試開始前,我們必須制定完整的測試用例,輔以詳細(xì)的測試數(shù)據(jù),并明確測試數(shù)據(jù)的操作步驟和每一步的預(yù)期結(jié)果,這樣,一旦軟件出現(xiàn)問題,我們可以很快進(jìn)行重現(xiàn)和定位。
附錄1:常用正交表
(1)L4(23)
列號 | 1 | 2 | 3 |
試驗(yàn)號 | |||
1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 1 | 2 |
4 | 2 | 2 | 1 |
(2)L8(27)
列號 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
試驗(yàn)號 | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 2 | 2 | 2 | 2 |
3 | 1 | 2 | 2 | 1 | 1 | 2 | 2 |
4 | 1 | 2 | 2 | 2 | 2 | 1 | 1 |
5 | 2 | 1 | 2 | 1 | 2 | 1 | 2 |
6 | 2 | 1 | 2 | 2 | 1 | 2 | 1 |
7 | 2 | 2 | 1 | 1 | 2 | 2 | 1 |
8 | 2 | 2 | 1 | 2 | 1 | 1 | 2 |
(3)L12(211)
列號 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
試驗(yàn)號 | |||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 |
3 | 1 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 2 | 2 | 2 |
4 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | 2 | 1 | 1 | 2 |
5 | 1 | 2 | 2 | 1 | 2 | 2 | 1 | 2 | 1 | 2 | 1 |
6 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 1 | 2 | 1 | 1 |
7 | 2 | 1 | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 2 | 1 |
8 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 2 |
9 | 2 | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 2 | 1 | 1 |
10 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 2 |
11 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 2 | 2 |
12 | 2 | 2 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 2 | 1 |
(4)L9(34)
列號 | 1 | 2 | 3 | 4 |
試驗(yàn)號 | ||||
1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | 3 |
4 | 2 | 1 | 2 | 3 |
5 | 2 | 2 | 3 | 1 |
6 | 2 | 3 | 1 | 2 |
7 | 3 | 1 | 3 | 2 |
8 | 3 | 2 | 1 | 3 |
9 | 3 | 3 | 2 | 1 |
(5)L16(45)
列號 | 1 | 2 | 3 | 4 | 5 |
試驗(yàn)號 | |||||
1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | 3 | 3 |
4 | 1 | 4 | 4 | 4 | 4 |
5 | 2 | 1 | 2 | 3 | 4 |
6 | 2 | 2 | 1 | 4 | 3 |
7 | 2 | 3 | 4 | 1 | 2 |
8 | 2 | 4 | 3 | 2 | 1 |
9 | 3 | 1 | 3 | 4 | 2 |
10 | 3 | 2 | 4 | 3 | 1 |
11 | 3 | 3 | 1 | 2 | 4 |
12 | 3 | 4 | 2 | 1 | 3 |
13 | 4 | 1 | 4 | 2 | 3 |
14 | 4 | 2 | 3 | 1 | 4 |
15 | 4 | 3 | 2 | 4 | 1 |
16 | 4 | 4 | 1 | 3 | 2 |
(6)L25(56)
列號 | 1 | 2 | 3 | 4 | 5 | 6 |
試驗(yàn)號 | ||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | 3 | 3 | 3 |
4 | 1 | 4 | 4 | 4 | 4 | 4 |
5 | 1 | 5 | 5 | 5 | 5 | 5 |
6 | 2 | 1 | 2 | 3 | 4 | 5 |
7 | 2 | 2 | 3 | 4 | 5 | 1 |
8 | 2 | 3 | 4 | 5 | 1 | 2 |
9 | 2 | 4 | 5 | 1 | 2 | 3 |
10 | 2 | 5 | 1 | 2 | 3 | 4 |
11 | 3 | 1 | 3 | 5 | 2 | 4 |
12 | 3 | 2 | 4 | 1 | 3 | 5 |
13 | 3 | 3 | 5 | 2 | 4 | 1 |
14 | 3 | 4 | 1 | 3 | 5 | 2 |
15 | 3 | 5 | 2 | 4 | 1 | 3 |
16 | 4 | 1 | 4 | 2 | 5 | 3 |
17 | 4 | 2 | 5 | 3 | 1 | 4 |
18 | 4 | 3 | 1 | 4 | 2 | 5 |
19 | 4 | 4 | 2 | 5 | 3 | 1 |
20 | 4 | 5 | 3 | 1 | 4 | 2 |
21 | 5 | 1 | 5 | 4 | 3 | 2 |
22 | 5 | 2 | 1 | 5 | 4 | 3 |
23 | 5 | 3 | 2 | 1 | 5 | 4 |
24 | 5 | 4 | 3 | 2 | 1 | 5 |
25 | 5 | 5 | 4 | 3 | 2 | 1 |
(7)L8(4×24)
列號 | 1 | 2 | 3 | 4 | 5 |
實(shí)驗(yàn)號 | |||||
1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 | 2 |
3 | 2 | 1 | 1 | 2 | 2 |
4 | 2 | 2 | 2 | 1 | 1 |
5 | 3 | 1 | 2 | 1 | 2 |
6 | 3 | 2 | 1 | 2 | 1 |
7 | 4 | 1 | 2 | 2 | 1 |
8 | 4 | 2 | 1 | 1 | 2 |
(8)L12(3×24)
列號 | 1 | 2 | 3 | 4 | 5 |
試驗(yàn)號 | |||||
1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 2 | 2 |
3 | 1 | 2 | 2 | 1 | 2 |
4 | 1 | 2 | 2 | 2 | 1 |
5 | 2 | 1 | 2 | 1 | 1 |
6 | 2 | 1 | 2 | 2 | 2 |
7 | 2 | 2 | 1 | 2 | 2 |
8 | 2 | 2 | 1 | 2 | 2 |
9 | 3 | 1 | 2 | 1 | 2 |
10 | 3 | 1 | 1 | 2 | 1 |
11 | 3 | 2 | 1 | 1 | 2 |
12 | 3 | 2 | 2 | 2 | 1 |
(9)L16(44×23)
列號 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
試驗(yàn)號 | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 | 1 | 2 | 2 |
3 | 1 | 3 | 3 | 3 | 2 | 1 | 2 |
4 | 1 | 4 | 4 | 4 | 2 | 2 | 1 |
5 | 2 | 1 | 2 | 3 | 2 | 2 | 1 |
6 | 2 | 2 | 1 | 4 | 2 | 1 | 2 |
7 | 2 | 3 | 4 | 1 | 1 | 2 | 2 |
8 | 2 | 4 | 3 | 2 | 1 | 1 | 1 |
9 | 3 | 1 | 3 | 4 | 1 | 2 | 2 |
10 | 3 | 2 | 4 | 3 | 1 | 1 | 1 |
11 | 3 | 3 | 1 | 2 | 2 | 2 | 1 |
12 | 3 | 4 | 2 | 1 | 2 | 1 | 2 |
13 | 4 | 1 | 4 | 2 | 2 | 1 | 2 |
14 | 4 | 2 | 3 | 1 | 2 | 2 | 1 |
15 | 4 | 3 | 2 | 4 | 1 | 1 | 1 |
16 | 4 | 4 | 1 | 3 | 1 | 2 | 2 |
posted on 2011-10-13 17:19 順其自然EVO 閱讀(198) 評論(0) 編輯 收藏 所屬分類: 測試學(xué)習(xí)專欄