《軟件測試》總結

《軟件測試》Ron Patton著。程序員

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

 

1、軟件測試工程師究竟要作些什麼?編程

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

在面試過程當中,面試官曾經告訴過我,並非爲了找bug,而是協助開發人員完善產品。有道理,因而就更加贊成一個忘了是在哪裏看到的說法:軟件測試有如下兩個內容。(大概意思是如下)性能

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

2)檢驗產品是否符合最終用戶的體驗。測試

 

2、軟件開發生命週期模式網站

4種最經常使用的模式spa

一、大爆炸模式設計

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

二、邊寫邊改模式

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

三、瀑布模式

強調三點:

一、瀑布模式很是強調產品定義

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

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

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

螺旋模式的整體思想是一開始沒必要詳細定義全部細節。從小開始,定義重要功能,努力實現這些功能,接收客戶反饋,而後進入下一階段。重複上述過程,直至獲得最終產品。

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

五、有些公司採用的模式:敏捷軟件開發,快速原型,極限編程,進化開發等。

 

3、測試的方式

一、黑盒測試(功能性測試)

二、白盒測試(訪問代碼,可以查看和審查)

又能夠分:

一、靜態測試 ——測試不運行的部分,即檢查和審覈

二、動態測試 ——一般意義上的測試,即便用和運行軟件

因而結合兩種就出現瞭如下測試方式:

一、靜態黑盒測試——測試產品說明書,並在軟件編寫以前找出問題(找出根本性問題)

二、動態黑盒測試——不深刻代碼細節測試軟件的方法。

動態黑盒測試測試用例的方法

1)等價類劃分

2)邊界值分析

3)數據測試

4)狀態測試

失敗狀態測試

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

2)重複測試——是否存在內存泄露

   壓迫測試——儘量地限制軟件的必要條件

   重負測試——儘可能提供條件任其發揮

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

失效性測試——純粹爲了破壞軟件而設計和執行的測試用例

 

其餘:像笨拙的用戶那樣作、在已找到軟件缺陷的地方再找找、像黑客同樣思考問題、憑藉經驗,直覺和預感。

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

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

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

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

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

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

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

2)通用代碼審查清單

(1)數據引用錯誤

(2)數據聲明錯誤

(3)計算錯誤

(4)比較錯誤

(5)控制流程錯誤

(6)子程序參數錯誤

(7)輸入/輸出錯誤

(8)其餘檢查

四、動態白盒測試——利用查看代碼功能(作什麼)和實現方式(怎麼作)獲得的信息來肯定哪些須要測試、哪些不須要測試、如何開展測試。(也稱結構化測試structural  testing

測試用例方法:

1)分段測試

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

(2)集成測試

(3)系統測試

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

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

自頂向上測試有點像小規模的大爆炸測試。(編寫一小段稱爲樁Stub的代碼充當接口模塊。)

2)數據覆蓋

數據流、次邊界、等式和公式、錯誤強制

3)代碼覆蓋

程序語句和代碼行覆蓋

分支覆蓋

條件覆蓋

沒有指明動靜態時好像一般指的是動態的。

 

4、其餘測試的技術

配置測試

兼容性測試

外國語言測試

易用性測試

文檔測試

軟件安全性測試

網站測試

 

5、測試的補充

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

性能測試、特別測試

 

6、測試文檔

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

 

一些典型問題:

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

答:

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

單元測試:單元測試是針對軟件設計的最小單位––程序模塊甚至代碼段進行正確性檢驗的測試工做,一般由開發人員進行。

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

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

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

 

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

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

 

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

 

相關文章
相關標籤/搜索