Chapter 1 全面認識軟體測試

2022-05-29 09:42:14 字數 2091 閱讀 3871

1.1軟體測試基本認知

為了做好測試,既要有深度,又要有廣度;既要有效率,又要有測試工作自身完整的質量。所以,我們應該將正向思維和逆向思維有機地結合起來,做到效率和質量的平衡。

正向思維:驗功能。  逆向思維:盡可能找bug。

1.2從狹義測試到廣義測試

狹義:動態測試——執行程式而進行的測試,測試只是程式設計之後的階段,這也是由傳統的瀑布模型兒決定的。

廣義:動態測試+靜態測試,將需求評審、設計評審、**評審等也納入軟體測試工作之中。使軟體測試成為貫穿整個軟體研發週期的質量保證活動。引入靜態測試,就可以盡早地發現問題,把問題消滅在萌芽之中,將每個階段產生的缺陷及時清除,極大地提高產品的質量,有效降低企業成本。

1.3基於質量的認知

缺陷(bug)就是質量的對立面,一切違背質量的問題都可以看作軟體缺陷。

質量相對客戶而存在,沒有客戶就沒有質量,質量是客戶的滿意度。

1.產品質量

功能適應性、效率、相容性、易用性、可靠性、安全性、可維護性、可移植性。

2.使用質量

有效性、效率、滿意(有用、信任、愉悅、舒服)、遠離風險(經濟、健康、安全、環境)、語境完整性(完整、靈活)。

1.4基於風險的認知

軟體測試不僅僅停留在單個缺陷上,要從所發現的問題看到(分析出)某類質量風險或某個具有潛在風險的區域。

軟體測試被看作是乙個動態的質量監控過程,對軟體開發全過程進行檢測,隨時發現不健康的徵兆,及**估新的風險,設定新的監控基準,不斷持續。

在敏捷開發中,軟體測試就能被解釋為對軟體產品質量的持續評估。

1.5基於社會性的認知

由於軟體常和人類活動緊密聯絡在一起,所以軟體具有很強的社會性,所以有必要把心理學、人類學和社會學等引入到軟體測試中。

1.6基於經濟的認知

軟體測試就是通過投入較低的保障性成本來降低劣質成本,幫助企業獲得利潤,因此應該從專案啟動的第一天起,測試人員就參與進去,盡快盡早地發現更多的缺陷,並督促和幫助開發人員修正缺陷。

1.7基於標準的認知

軟體測試被視為「驗證」和「有效性確認」這兩類活動構成的整體。

驗證:檢驗軟體是否已正確地實現了產品規格說明書所定義的系統功能和特性。

有效性確認:確認開發的軟體是否滿足使用者實際需求的活動。

1.8基於test oracle的認知

軟體測試包括兩部分工作——對已知的檢測和對未知的試驗。即要了解測試的輸入具有兩重性——確定性和不確定性,而且測試的輸出也具有很大的不確定性。

一種決定一項測試是否通過的(判斷)機制。test oracle一般依據下列內容作出判斷:

1.需求規格說明書和其他需求,設計規範文件;2.競品;3.啟發式測試預言(heuristic oracle);4.統計測試預言(statistical oracle );5.一致性測試預言(consistency oracle);6.基於模型的測試預言(model-based oracle);7.人類預言(human oracle)。

「測試=檢測+試驗」意味著:測試=基於確定性模型/明確測試預言的自動化測試+基於ai搜尋的/工具隨機/模糊模型的/手工的探索式測試。

1.9基於批判性思維的認知

從批判性思維看,軟體測試就是借助觀察、經驗、反思,推理或溝通等收集資訊,並對軟體產品相關的質量資訊進行分析,以此評估軟體質量,並做出結論。

批判性思維促進我們重新審視問題或主題、意圖和陳述之間實際的推論關係,勇於質疑證據,去分析和評估陳述、論證的過程。

基於批判性思維,重新定義「軟體測試」:軟體測試就是測試人員不斷質疑被檢測系統的過程。

探索式測試聚焦被測系統,側重發現缺陷,強調在乙個相對封閉時間(90min左右的session)內以「設計、執行、分析、學習」的過程不斷優化測試的過程。,

1.10基於傳統開發模式的認知

軟體測試和軟體開發構成乙個全過程的互動、協作的關係,兩者自始至終一起工作,共同致力於同乙個目標——按時、高質量地完成專案。「w模型」可以較好的呈現軟體測試在sdlc中的位置。

1.11基於敏捷開發的認知

敏捷測試就是符合敏捷宣言思想,遵守敏捷開發原則,在敏捷開發環境下能夠很好地和其整體開發流程融合的一系列的測試實踐,並具有鮮明的敏捷開發的特徵。

1.12小結

軟體測試有以下四個方面的的作用:產品質量評估;持續的質量反饋;客戶滿意度的提公升;缺陷預防。

課後習題Chapter1

相似之處 這兩個問題都是求最短的路徑 不同之處 最短路徑問題其實是給定了情景並且不需要遍歷所有的點只需要得到乙個點到另外乙個點的最短路徑就可以了,而旅行商人問題則需要遍歷所有的點並求得最短的路程,問題的複雜度不一樣。亦可以找到乙個最短的路徑,但是你無法找到乙個選擇一條送貨車行駛距離最短的送貨順序。其...

Chapter 1 內容梳理

目錄標準輸入與標準輸出 定位符號 scope operator 換行符號 endl 如何輸入eof 類,型別,成員,物件,變數等概念間的關係 從標準輸入讀取 v1,v1 從標準輸出列印求和結果 include includeint main std cout v2 std cout 輸出標準輸入與輸...

讀書筆記 chapter1

1.setw size 的使用方法 include setw int asize const int nm size 128 char user name nm size cin setw nm size user name 如輸入的字元個數超過nm size,則取前nm size 1 個字元給陣列...