但是我所說的重復相同的測試指的是什么呢?我們知道,沒有測試是可以精確的重復執行,就好像你不能精確的沿著你的足跡往回走,你可以很接近,但你總會有一點偏移。重復執行一個測試是否意味你第二次執行一個測試時,你要確保日光以同樣的角度照射在你的鼠標上?可能,別以為這只是一個玩笑,我確實碰到過一個由日光照射在鼠標內的光學傳感器觸發的錯誤。所以你是不可能確保什么因素會影響一個測試,然而,當你測試時,你有一個確定的目標和對系統確定的預測,你就很可能可以針對目標和預測通過考慮以下方面:A)你知道的和B)你關心的和C)不是太昂貴的來重復測試。這并不是什么很難處理的問題。
因此,我所說的重復測試是指一個測試包含了在其它的測試中已經確定的元素。重復測試就是重復之前測試某些方面。以雷區分析的理論解釋就是:最好嘗試你沒有做過的東西,然后重復你已經做過的東西。
如果你不同意這種想法,或同意,請做更深入的閱讀。因為這種分析過于簡單化!事實上,即使多元化的測試是很重要和強大的,即使是反對重復測試的理由一般情況下是有效的,我還是知道10種例外情況。以下是10個具體的理由,關于在某些特殊的情況下,重復測試并不是不合理的,相反,它可能相當重要。
出于技術原因,你可能需要理性的重復測試…
1. 再充電:當存在一個新的問題或一個舊問題的重復出現,可以通過現有的具體測試發現的明確可能性,或如果一個舊測試應用到一個新代碼基礎的時候。這就包括重新執行一個測試以確保問題已經修復,或者一個接一個地在較早期的版本上重復一個測試,因為你希望知道一個具體的問題或行為在什么時候出現的。這也包括對一個安裝在新操作系統的,相同的軟件上重新執行一個舊測試。換言之,在被測試的技術發生變化時,一個舊測試可以\"再充電\"。注意,再充電的作用并不一定意味著你應該執行相同的舊測試,無理性的這樣做不必要的。
2. 間斷:當可能因為一些你無法控制的相關重要變量,你懷疑正確的執行一個測試能否確保發現一個錯誤的時候。對于你來,執行一個測試,嚴格來說是和你以前已經執行過的,相同的一個測試,可能會找到之前已經存在,但直到無法控制的變量以某種方式起作用才可以發現的錯誤。這和一個賭徒在第一次失敗后,還繼續在老虎機上賭是一樣的道理。
3. 重試:當你不確定一個測試在其它的時候是否被正確的執行時,這種情況的一種處理方法就是讓幾個測試員沿著同樣的測試說明執行測試,檢查他們是否得到相同的結果。
4. 改變:當你修改了一個測試中的重要部分,但同時保持其它部分不變時,即使這個測試的一部分元素是保持不變的,但對整個測試來說,它是新的,并且可能會引發新的行為。之所以會對一個測試作改變,那是因為雖然之前的測試涵蓋了某些方面,但涵蓋的范圍還不足夠。一個常見的修改測試形式就是以同樣的方式操作產品,但過程中采用不同的測試數據。區分改變,間斷,和重試的關鍵就是在改變測試時,你可以直接控制改變,改變是有目的性的,間斷是偶然事件的附帶結果,并且因為偶然元素才會重試一個測試。
5. 基準:當重復的測試包含一個績效標準時,這個標準的值是與相同測試之前的執行情況比較得出的。當歷史測試數據被用作預期結果,那你得保證你執行的測試歷史數據有可比性。掌握測試常量未必是使結果可比的唯一途徑,但它可能最好的選擇。
出于商業原因,你可能會理性地重復測試…
6. 便宜的:當重復測試有一定的價值,并且以一個新的,不同的測試相比,是十分便宜的時,但,這些測試可能不能確保產品的質量。
7. 重要性:當可以通過重復測試發生的問題可能比其它檢測出來的問題更重要時,產品行為的重要性不一定是均衡分布的,有時一個特殊的問題只因影響重要用戶一次就可能被認為難以接受的(\"決不允許再次發生\"的情況)。這并不意味著你要執行完全相同的測試,只要重復的測試包含可檢測出問題的足夠相似的元素就可以了(查看改變部分)。注意,不要混淆問題的重要性和測試的重要性。一個測試,即使它檢測出來的問題不是很重要的,但因為許多原因它也可能是重要的。同樣,為了查找一個重要的錯誤而花費過多的精力在一個測試上,而忽略了其它同樣可以,或更利于檢測出那種問題的測試,這樣的錯誤不要犯。
8. 充分性:當你重復的測試代表唯一值得重復的測試。這和病毒檢測原理相似:可能對一個普通用戶來說,一個重復的病毒掃描就足夠了,持續變化的病毒測試則并不必要。然而,我們可能對重復的測試引入某些改變,因為我們不知道哪些測試真正值得重復的,或者說我們通過重復測試不能得到充分測試的效果。
9. 被授權的:當根據合同規定,管理法令或規則,你必須執行完全相同的測試,然而,即使在這些情況下,往往只執行授權的測試并不必要,你可以執行新的測試而不違法規則。
10. 不重視/避免:當“測試”因一些原因而不是為了查找錯誤被執行時,例如,培訓,演示(例如,你非常希望能通過的演示給用戶看的驗收測試),或把系統置于某個階段。如果你執行測試目的之一是避免缺陷,那么改變的主要論據就不成立了。
通過與測試課程的學生和同事近百小時的辯論,我收集了上述原因。我的很多同事都喜歡這些原因的其它表達方式和分類方法,我這樣表達和分類并沒特殊的原因(除了其它的一些分類方式會有很長的列表,并且列表中會出現非常相似的項),重要的是,當我聽到一個原因,它與我之前聽到的那些不同。我就會添加這個原因到列表中,我在1997開始添加了頭兩個原因,第10個原因則是在2004年添加的。
延伸閱讀
文章來源于領測軟件測試網 http://www.k11sc111.com/