《軟體測試》總結

來源:互聯網
上載者:User

標籤:

《軟體測試》Ron Patton著。

這本書很全面地介紹了軟體測試的理論基礎知識,也就是看了這本書對軟體測試有了一定的瞭解,協助我找到了一份關於軟體測試的工作。在看這本過程中也有一些有疑問的地方,這裡主要是針對自學軟體測試以來對軟體測試的理解的一點總結,並把自己不懂的地方梳理一遍。

 

一、軟體測試工程師究竟要做些什嗎?

這本書中給到一個相對完整的答案:軟體測試員的目標就是儘可能早地找出軟體缺陷,並確保其得以修複。

在面試過程中,面試官曾經告訴過我,並不是為了找bug,而是協助開發人員完善產品。有道理,於是就更加同意一個忘了是在哪裡看到的說法:軟體測試有以下兩個內容。(大概意思是以下)

1)檢驗需求分析文檔所要求的功能是否完成。

2)檢驗產品是否符合終端使用者的體驗。

 

二、軟體開發生命週期模式

4種最常用的模式

1、大爆炸模式

簡單。幾乎沒有計劃、進度安排和正規開發過程,所有精力都花在開發軟體和編寫代碼上。盡量避免在此模式下進行測試。

2、邊寫邊改模式

由於開頭機會沒有計劃和文檔編製,項目小組得以尿素展現成果。因此,邊寫邊改模式極其適合意在快速製作並且用完就扔的小項目,例如原型範例和示範程式。

3、瀑布模式

強調三點:

1、瀑布模式非常強調產品定義

2、瀑布模式各步驟是分立的,沒有交叉的。

3、瀑布模式無法回溯,一旦進入某一個步驟,就要完成該步驟的任務,才能向下繼續。

4、螺旋模式(有點包含以上三種模式)

螺旋模式的總體思想是一開始不必詳細定義所有細節。從小開始,定義重要功能,努力實現這些功能,接收客戶回函,然後進入下一階段。重複上述過程,直至得到最終產品。

螺旋模式每一次迴圈包含6個步驟:1)確定目標、可選方案和限制條件;2)明確並化解風險;3)評估可選方案;4)當前階段開發與測試;5)計划下一階段;6)確定進入下一階段的方法。

5、有些公司採用的模式:敏捷式軟體開發 (Agile Software Development),快速原型,極限編程,進化開發等。

 

三、測試的方式

1、黑箱測試(功能性測試)

2、白盒測試(存取碼,能夠查看和審查)

又可以分:

1、靜態測試 ——測試不啟動並執行部分,即檢查和審核

2、動態測試 ——通常意義上的測試,即使用和運行軟體

於是結合兩種就出現了以下測試方式:

1、靜態黑箱測試——測試產品說明書,並在軟體編寫之前找出問題(找出根本性問題)

2、動態黑箱測試——不深入代碼細節測試軟體的方法。

動態黑箱測試測試案例的方法

1)等價類別劃分

2)邊界值分析

3)資料測試

4)狀態測試

失敗狀態測試

(1)競爭條件測試和時序錯亂

(2)重複測試——是否存在記憶體泄露

   壓迫測試——儘可能地限制軟體的必要條件

   重負測試——盡量提供條件任其發揮

5)通過性測試和失效性測試

失效性測試——純粹為了破壞軟體而設計和執行的測試案例

 

其他:像笨拙的使用者那樣做、在已找到軟體缺陷的地方再找找、像駭客一樣思考問題、憑藉經驗,直覺和預感。

3、靜態白盒測試——通過正式審查和檢驗檢查代碼的細節

即在不執行軟體的條件下有條理地仔細審查軟體設計、體繫結構和代碼,從而找出軟體缺陷的過程,有時稱為結構化分析

1)正式審查——進行靜態白盒測試的過程。

確定問題、遵守規則、準備、編寫報告4個基本要素。

(1)同事審查——最簡單,要求最低

(2)走查——比同事審查更正規化的下一步

(3)檢驗——最正式的審查類型。表述者不是原來的程式員。

2)通用代碼審查清單

(1)資料引用錯誤

(2)資料聲明錯誤

(3)計算錯誤

(4)比較錯誤

(5)控制流程程錯誤

(6)子程式參數錯誤

(7)輸入/輸出錯誤

(8)其他檢查

4、動態白盒測試——利用查看代碼功能(做什麼)和實現方式(怎麼做)得到的資訊來確定哪些需要測試、哪些不需要測試、如何開展測試。(也稱結構化測試structural  testing)

測試案例方法:

1)分段測試

(1)單元測試(模組測試)

(2)整合測試

(3)系統測試

以上三種遞增測試有兩條路徑:自底向上(bottom-up)和自頂向下(top-down)

自底向上測試中要編寫測試驅動模組調用正在測試的模組。

自頂向上測試有點像小規模的大爆炸測試。(編寫一小段稱為樁Stub的代碼充當介面模組。)

2)資料覆蓋

資料流、次邊界、等式和公式、錯誤強制

3)代碼覆蓋

程式語句和程式碼覆蓋

分支覆蓋

條件覆蓋

沒有指明動靜態時好像通常指的是動態。

 

四、其他測試的技術

配置測試

相容性測試

外國語言測試

易用性測試

文檔測試

軟體安全性測試

網站測試

 

五、測試的補充

自動化的測試、缺陷轟炸、Beta測試(讓他人驗證和確認軟體的常用過程)

效能測試、特別測試

 

六、測試文檔

測試計劃==》測試設計說明==》測試案例說明==》測試過程說明

 

一些典型問題:

1、 問:軟體測試主要分哪些階段?

答:

和開發過程相對應,測試過程會依次經曆單元測試、整合測試、系統測試、驗收測試四個主要階段。

單元測試:單元測試是針對軟體設計的最小單位––程式模組甚至程式碼片段進行正確性檢驗的測試工作,通常由開發人員進行。

整合測試:整合測試是將模組按照設計要求組裝起來進行測試,主要目的是發現與介面有關的問題。由於在產品提交到測試部門前,產品開發小組都要進行聯合調試,因此在大部分企業中整合測試是由開發人員來完成的。。

系統測試:系統測試是在整合測試通過後進行的,目的是充分運行系統,驗證各子系統是否都能正常工作並完成設計的要求。它主要由測試部門進行,是測試部門最大最重要的一個測試,對產品的品質有重大的影響。

驗收測試:驗收測試以需求階段的《需求規格說明書》為驗收標準,測試時要求類比實際使用者的運行環境。對於實際項目可以和客戶共同進行,對於產品來說就是最後一次的系統測試。測試內容為對功能模組的全面測試,尤其要進行文檔測試。

 

2、軟體測試工程師所應具備的職業素質

優秀的測試工程師除了具備“專業技能、行業知識”外,還必須具備相應的交流技巧、組織技能、實踐技能和積極態度。除此之外,還應該具備一些基本的個人素養:即專心、細心、耐心、責任心和自信心“五心”

 

3、軟體測試職業發展方向

 

《軟體測試》總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.