1. 程式人生 > >yolanda0606

yolanda0606

雖然做測試好幾年了,但是如果面試中被問到“什麼是軟體測試”,我可能一時回答不上來,或者說不知道怎麼用合適的語言來回答。

在網上搜索一下,發現各種定義都有,五花八門,眼花瞭亂,越看越糊塗了。

可能很多人會有跟我一樣的情況,所以這篇文章就專門說說這個問題。

一、主流定義

關於軟體測試比較主流的定義是下面兩種:

1、經典定義

 軟體測試(Software Testing):在規定條件下對程式進行操作,以發現錯誤,對軟體質量進行評估。

2、IEEE(國際電子電器工程協會)定義:

軟體測試:使用人工或者自動的手段來執行或測量軟體系統的過程,以檢驗軟體系統是否滿足規定的要求,並找出與預期結果之間的差異。

這兩種定義有什麼區別呢?

經典定義中,主要指手工操作,只強調了測試程式、發現錯誤,有一定的侷限性。

因為軟體包括程式、資料和文件,所以,軟體測試並不僅僅是程式測試,還包括對資料和文件的測試。

在IEEE定義中,補充了人工或自動的手段,加入測量軟體系統的概念,補充了測試的目的。

二、軟體測試的發展歷程

軟體測試是逐步發展完善起來的,我總結了主要的發展歷程:

從上圖可以很清晰的看到軟體測試的發展變化歷程,從最開始的“除錯”,一步步上升到軟體開發的整個生命週期過程。

其中提到的幾本經典書籍都對軟體測試研究的理論化和體系化產生了巨大影響,尤其是《軟體測試的藝術》--作為軟體測試領域的第一本最重要的專著,一直到現在還是非常好的入門書籍。

三、軟體測試的未來展望

雖然近20年來軟體測試技術發展很快,但是速度仍落後於軟體開發技術,還面臨著很大的挑戰:

1、隨著軟體規模越來越大,功能越來越複雜,如何進行充分而有效的測試成為難題。

2、面向物件的開發技術越來越普及,但是對應的測試技術卻剛剛起步。

3、對於分頁式系統的整體效能、實時系統等,缺乏有效的測試手段。

4、隨著安全問題日益突出,資訊系統的安全性如何進行有效的測試與評估,已經成為了世界性的難題。

總體來說,軟體測試行業還有很多問題要解決,還有很大的發展空間,對於測試人員的要求也會越來越高。