1. 程式人生 > >《軟件測試方法和技術》-讀書筆記(一)

《軟件測試方法和技術》-讀書筆記(一)

圖片 軟件工程 AI 開發 支持 ont 3年 發的 一次

軟件測試正反兩方面的爭辯

軟件測試領域先驅 Bill Hetzel 博士 1993年在美國的北卡羅來納大學組織了歷史上第一次正式的關於軟件測試的會議。從此以後,軟件測試開始頻繁出現在軟件工程的研究和實踐中,也可以認為,軟件測試作為一個學科正式誕生了。

1973年正式將軟件測試下了一個定義:軟件測試就是為程序能夠按預期設想運行而建立足夠的信心。

Bill hetzel 覺得這個定義不夠清楚,理解起來比較困難,所以在1983年將軟件測試定義修改為:軟件測試就是一系列活動,這些活動是為了評估一個程序或軟件系統的特性或能力,並確定是否達到了預期結果。

Bill hetzel 可以說是軟件測試的奠基人,但是他的觀點還是受到業界的一些權威的質疑和挑戰,其中代表人物要數Glenford J.Myers(軟件測試的藝術作者)Myers認為測試不應該著眼於驗證軟件是工作的,相反,應該用逆向思維發現盡可能多的錯誤。so?就引來了爭辯

Myers提出的”測試的目的就是證偽“和Bill hetzel提出的”測試是試圖驗證軟件是正確的“爭鋒相對。

我心裏比較支持Myers的定義,如果只是需要證明軟件是正確的,在測試過程中就不會刻意選擇一些盡量使程序出錯的測試數據,而選擇一些常用的數據,測試容易通過確不容易發現錯誤,而如果我們要證明的是程序有錯誤,那麽我們會想法設法選擇一些容易出錯的數據,這樣測試的結果更有意義,對軟件質量的提高會有更大的幫助。

兩個人的都會多少存在一些問題

Myers觀點中強調測試的目的是尋找錯誤,就可能使測試人員忽視軟件產品的某些基本需求或客戶的實際需求,測試活動存在一定的隨意性和盲目性

如果測試目的是尋找錯誤,會讓開發人員認為測試人員的工作就是挑刺挑毛病的

兩種觀點應該相輔相成,側重點不一樣,在各行業要求不一樣,so,按要求來。

最終定義就是:使用人工操作或者軟件自動運行的方式來檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別的過程。

測試和開發的關系:

技術分享圖片

1、需求驗證對應驗收測試,客戶需求的確認測試

2、系統架構設計的驗證對應系統非功能性測試

3、產品詳細設計的驗證對應功能測試

4、代碼的驗證對應單元測試和集成測試

也就是說,如果只是在某一兩方面(如代碼測試、功能測試)完成對軟件產品的測試,都說明測試不完整。

測試驅動開發方法(TTD)——測試在先、編程在後的開發方法

技術分享圖片

TTD從根本上改變了開發人員的編程態度,要求每行代碼都是有效代碼,寫完所有代碼就意味著真正完成了編碼任務。

遇到的問題:為什麽要開展軟件測試活動?

為了保證軟件的質量

什麽是軟件測試?

使用人工操作或者軟件自動運行的方式來檢驗它是否滿足規定的需求或弄清預期結果和實際結果之間的關系

如何理解軟件測試:

多方面來看軟件測試,質量,風險,經濟,安全等,抓請著重點

軟件測試和開發的關系?

V模型

軟件測試和質量保證的關系?

軟件測試是質量保證的重要手段之一。

《軟件測試方法和技術》-讀書筆記(一)