「缺陷狩獵」詳解 採訪Klaus Olsen

2021-09-17 06:12:28 字數 1922 閱讀 2190

infoq:您能否就「缺陷狩獵」技術的起源再多談一些呢?

\

\

早在2023年我就從james whittaker的一本名為「how to break software【譯註2】」的書中讀到了它。james whittaker在此書中用了一整頁的篇幅來闡述他在佛羅里達理工學院所使用的體系,他所描述的內容使我深受啟發,於是我在丹麥本地的sigist(2023年成立的軟體測試領域專門興趣團體)進行了實驗來嘗試他的觀點,然後在阿姆斯特丹舉行的eurostar 2003大會上,我將「缺陷狩獵」的想法作為實驗品進行了展示並獲得了成功。

\ 此後在我所工作的幾家公司中,我們使用了「缺陷狩獵」技術。在這些經歷的基礎上,我建立起了對「缺陷狩獵」技術的一些研究成果和經驗教訓,隨後,在印度新德里、澳大利亞的雪梨和坎培拉、歐洲的布拉格和赫爾辛基以及這次在里斯本舉行的一系列大會上,我將我的研究成果進行了展示。

\

\

infoq:您是從何時起被這種技術所吸引的?為什麼?

\

\

我對「缺陷狩獵」技術可以說是一見鐘情。因為「缺陷狩獵」在測試中混合使用了多種測試技術,而結對工作的方式促進了測試技術及專業領域知識的分享和傳播,更加錦上添花的是,與此同時你還進行了團隊建設。

\ 此外還有乙個天大的好處:你獲得了被測軟體的相關知識,從而能夠詳細全面的記錄被測軟體的質量情況。絕大多數情況下,測試團隊將識別出乙份軟體內部缺陷的列表,這份列表上的缺陷都是可修復的,一旦我們修復了這些缺陷,並再一次測試這些缺陷以確保修復有效,再加上一般意義上的回歸測試,我們就能提高軟體的質量。

\

\

infoq:在你看來,使用「缺陷狩獵」技術最主要的優點是什麼?

\

\

「缺陷狩獵」技術可以非常快捷的確保任意一件軟體的質量。如果在乙個精心準備的時長兩小時、由10至16人執行的缺陷狩獵活動中,被測軟體上沒有發現任何缺陷或發現的缺陷非常少(當然,這要基於該軟體的規模和複雜度),那麼我的經驗告訴我,起碼在我這些年接觸並測試過的軟體當中,這款被測軟體的質量也可能會是中等偏上的。

\ 當你獲得了另一家公司的軟體產品,並且你的公司準備執行驗收測試時,把「缺陷狩獵」作為一種高效的冒煙測試使用將取得非常好的效果。在驗收測試之前執行的「缺陷狩獵」可以作為乙個質量檢查保障機制來執行,通過該機制,你就可以判斷待驗收的軟體是否已經足夠好,從而決定是否需要抽調人手去幫忙進行驗收測試。

\ 如果在「缺陷狩獵」中你發現了大量的缺陷和很多高優先順序的缺陷,那麼你就知道了驗收測試必須推遲而且待驗收軟體的質量必須提高,在此之前你是不會抽調人手去進行驗收測試的。

\

\

infoq:您引用了名言「沒有銀彈」,那麼,您建議將何種技術和「缺陷狩獵」配合使用呢?您能否給出一些具體例子?

\

\

「缺陷狩獵」是建立在「探索性測試」基礎上的,我認為「探索性測試」就是乙個很好的測試方式/方法,但是如果你僅僅把你的測試建立在軟體執行時可見的部分上時,它會有乙個缺點。

\ 這個缺點就是,由於你只進行了探索性測試,那麼如果有一些需求沒有被實現到被測軟體中去的話,在測試中你將有可能無法識別出這些缺失的部分。出於這個原因,你需要讓測試有一些層次結構,以保證需求和測試用例之間是可追溯的。

\ 如果想追求測試對需求的覆蓋率,那麼這會是乙個更好的做法。

\

\

【譯註1】tmmi:測試成熟度模型整合。詳見:

\ 【譯註2】中譯版本由電子工業出版社出版,中譯名《實用軟體測試指南》,isbn:7505381601

\檢視英文原文:klaus olsen elaborates on bug hunting top of form

\ 感謝楊賽對本文的審校。

\

gets 函式詳解和缺陷

原型 char gets char buffer 功能 gets函式從標準輸入中讀取一行文字,並儲存於作為引數傳遞給它的陣列中。一行文字由一串字元組成,以乙個換行符 n 結尾。在返回之前,gets函式丟棄換行符 n 取而代之的是以 0 結尾。返回值 讀取成功,函式返回與buffer相同的指標。讀入過...

k交叉驗證詳解

重點放在前面 n折交叉驗證有兩個用途 模型評估 模型選擇。n折交叉只是一種劃分資料集的策略。想知道它的優勢,可以拿它和傳統劃分資料集的方式進行比較。它可以避免固定劃分資料集的侷限性 特殊性,這個優勢在小規模資料集上更明顯。把這種策略用於劃分訓練集和測試集,就可以進行模型評估 把這種策略用於劃分訓練集...

K 近鄰演算法(kNN)詳解

from numpy import import operator 匯入科學計算包numpy和運算子模組 def creatdataset 建立資料集 樣本點集 和標籤 group array 1.0,1.1 1.0,1.0 0,0 0,0.1 labels a a b b return group...