一談到軟件測(cè)試,通常大家想到的就是找bug。其實(shí)這樣理解軟件測(cè)試也是可以的,因?yàn)镚lenford Myers在《軟件測(cè)試的藝術(shù)》一書中有這樣的定義:“測(cè)試是了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程”。其中,“錯(cuò)誤”就是我們通常所說的bug,那么發(fā)現(xiàn)錯(cuò)誤,也就可以理解為找bug了。該定義簡(jiǎn)潔,明確的描述了軟件測(cè)試人員的重要工作內(nèi)容。
另外,軟件專家溫伯格與Cem Kaner都提出了自己對(duì)軟件測(cè)試的理解:
在溫伯格的《完美軟件》中提到:“測(cè)試是一個(gè)獲取信息的過程,用來降低決策風(fēng)險(xiǎn)?!?/p>
Cem Kaner教授提出:“軟件測(cè)試是一種技術(shù)調(diào)查,其目的是向關(guān)系人提供有關(guān)產(chǎn)品(軟件,系統(tǒng)或服務(wù))質(zhì)量的實(shí)驗(yàn)信息。”
除此之外,IEEE和ISO都為軟件測(cè)試下過定義:
1983年IEEE曾這樣定義軟件測(cè)試:“軟件測(cè)試是使用人工或者自動(dòng)化手段來運(yùn)行或者測(cè)試定某個(gè)系統(tǒng)的過程,檢驗(yàn)它是否滿足規(guī)定的需求或是弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。從這個(gè)定義中我們可以看出,軟件測(cè)試不僅為了發(fā)現(xiàn)錯(cuò)誤,而且需要驗(yàn)證軟件是否滿足了規(guī)定的需求。對(duì)于某些有一定經(jīng)驗(yàn)的測(cè)試人員,可以會(huì)進(jìn)入一個(gè)狀態(tài),就是極度熱衷于發(fā)現(xiàn)bug,花費(fèi)了大量的時(shí)間陷入了一個(gè)小的驗(yàn)證點(diǎn)去找bug,從而沒有在規(guī)定的時(shí)間完成檢驗(yàn)高優(yōu)先級(jí)的業(yè)務(wù)需求?,F(xiàn)在的軟件復(fù)雜度遠(yuǎn)超個(gè)人的理解能力,軟件測(cè)試從理論上而言也是沒有盡頭的,可以說,在實(shí)際的項(xiàng)目中軟件測(cè)試是無論給多久bug都是找不完的。因此,我們的測(cè)試人員在有了一定的測(cè)試經(jīng)驗(yàn)后,要把握住測(cè)試中的優(yōu)先級(jí),雖然找bug是測(cè)試人員的重要工作,但是應(yīng)該優(yōu)先完成在核心的業(yè)務(wù)上核心路徑的檢驗(yàn)。
近些年ISO 29119標(biāo)準(zhǔn)嘗試標(biāo)準(zhǔn)化軟件測(cè)試,其中提到“Software testing should focus on providing information about a software product and finding as many defects as possible, as early as possible in development process, under given constraints of costs and schedule.” 里面提到了兩個(gè)重要的點(diǎn):一個(gè)是盡可能的早(early),一個(gè)是成本(cost)受限。測(cè)試發(fā)現(xiàn)bug應(yīng)盡可能的早,這樣造成的影響越小,修復(fù)成本越低。而測(cè)試活動(dòng)往往是在時(shí)間和人力成本受限的情況下進(jìn)行,在有限的資源下,測(cè)試人員應(yīng)該有的放矢,對(duì)測(cè)試對(duì)象的進(jìn)行選擇排序,測(cè)試技術(shù)進(jìn)行選擇組合使用,這也是測(cè)試策略方面的東西。
然而,有趣的是,對(duì)于IEEE和ISO嘗試標(biāo)準(zhǔn)化測(cè)試相關(guān)內(nèi)容的行為確遭到了測(cè)試領(lǐng)域多位專家,如Cem Kaner, Jame Bach等的反對(duì)。
因此,對(duì)于軟件測(cè)試本身而言,并沒有真正意義上的精確定義。也許對(duì)軟件測(cè)試下定義,就如同對(duì)大海下定義一樣,大海如此廣袤,每到一處,都存在著與眾不同的特色,軟件測(cè)試就是一片海,你拼命遨游,所見的卻永遠(yuǎn)是它的一片波瀾,而無法縱覽它的全貌。也是這樣的原因,吸引著大家縱身躍入軟件測(cè)試的大海。
參考:
《軟測(cè)試實(shí)戰(zhàn)》
《軟件測(cè)試的藝術(shù)》
《軟件測(cè)試》
http://kaner.com/pdfs/ETatQAI.pdf
http://softwaretestingstandard.org/