當前位置:網站首頁>軟件測試 通用技術01 軟件及分類 bug的由來 缺陷的定義 軟件測試的定義 確認與驗證 軟件測試的目的 測試與調試 軟件工程 開發模型

軟件測試 通用技術01 軟件及分類 bug的由來 缺陷的定義 軟件測試的定義 確認與驗證 軟件測試的目的 測試與調試 軟件工程 開發模型

2022-01-27 01:03:40 哈呵噠~

1 軟件

軟件由三部分組成:程序、數據和文檔。
軟件的分類
按層次劃分:系統軟件和應用軟件。
按組織劃分:商業軟件和開源軟件。
按結構劃分:單機軟件和分布式軟件。

軟件缺陷的定義
軟件未實現產品說明書要求的功能。
軟件出現了產品說明書指明不該出現的功能。
軟件實現了產品說明書未提到的功能。
軟件未實現產品說明書雖未明確提及但應該實現的目標。
軟件難以理解、不易使用、運行緩慢或者從測試的角度看最終用戶認為不好。(把自己當成用戶使用軟件)
需求一定要明確!!
所有不滿足需求或超出需求的都是缺陷。
沒有不存在缺陷的軟件,只有尚未發現的缺陷。

軟件測試的由來
起源於上世紀70年代中期

2 軟件測試的定義和目的

缺陷的由來 bug(蟲子) defect

正向思維的定義
讓自己確信產品是能够正常工作的,然後去評價一個程序和系統的特性或者能力,並確定它是否達到期望結果,軟件測試就是以此為目的任何行為。
相信產品能正常工作。

反向思維的定義
測試是為發現錯誤而執行一個程序或者系統的過程。
一個成功的測試是發現了以前未發現的錯誤的測試。
懷疑一切的態度。

IEEE定義的軟件測試
在規定條件下運行系統或構件的過程:觀察和記錄結果,並對系統或構件的某些方面給出評價。(最全面)
分析軟件項目的過程:檢查現有狀况和所需狀况之間的不同,並評估軟件項目的特性。 (看整個項目的過程)
IEEE,電氣和電子工程協會(Institute of Electrical and Electronics Engineers)。

廣義的軟件測試
軟件測試是對軟件形成過程中的所有工作產品(包括程序以及相關文檔)進行測試,而不僅僅是對程序的運行進行測試。

確認VS驗證
確認:證實功能或應用是否已經實現。
驗證:證實指定的需求是否滿足。
確認軟件功能是否被開發出來了,若有了功能,需要驗證是否滿足需求。

軟件測試的目的
以最少的人力、物力和時間找出軟件中潜在的各種錯誤和缺陷,保證各種錯誤和缺陷得以修複,避免軟件發布後由於潜在的錯誤和缺陷造成的隱患所帶來的商業風險。
同時利用測試過程中得到的測試結果和測試信息,作為後續項目開發和測試過程改進的重要輸入,避免在將來的項目開發和測試中重複同樣的錯誤。
采用更加高效的測試管理手段,提高軟件測試的效率和軟件產品的質量。

測試和調試的區別
在主體、目標、方法和思路上有所不同
在這裏插入圖片描述

測試是從已知的條件開始,使用預先定義的過程,並且有預知的結果;調試是從未知條件開始,結束的過程可能不可預計。
測試可以計劃,可以預先指定測試用例和過程,工作進度可以度量;描述調試的過程或持續時間相對比較困難。
測試的對象包括軟件開發過程中的文檔、數據以及代碼,而調試的對象一般來說只是代碼。

3 軟件工程

軟件危機
落後的軟件生成方式無法滿足迅速增長的計算機軟件需求,從而導致軟件與維護過程中出現一系列嚴重問題的現象。

軟件工程包括兩方面的內容:
軟件開發技術:軟件開發方法學、軟件工具和軟件工程環境
軟件項目管理:軟件質量、項目估算、進度控制、人員組織、配置管理、項目計劃

引起軟件危機的主要問題是軟件質量問題
軟件工程主要解决的就是軟件質量問題
軟件測試是軟件質量管理體系中一個非常重要的手段

3.1 軟件生命周期模型

在這裏插入圖片描述

可以返回上個一個流程

3.2 開發模型

瀑布模型
最早提出的軟件開發過程模型。
在這裏插入圖片描述
必須有產出物:《項目計劃》、《需求規格說明書》、《概要設計》、《詳細設計》
瀑布模型優點:
1 為項目提供了按階段劃分的檢查點
2 當前一階段完成後,只需要去關注後續階段。

瀑布模型存在的問題:
1 强調時間順序的嚴格執行。前階段不完成,後階段不開始。
2 將測試放在了編碼之後。沒有體現出測試貫穿軟件生命周期的原則。可以避免需求的問題一致延續到代碼完成才暴露或被發現。
3 不適應用戶需求的變化

快速原型模型
應用領域越來越多。
原型:就是一個模型。可以模擬操作、簡單運行。
典型應用和工具:Axure。制作原型。

產品經理畫出原型圖,講解原型圖給客戶。如果客戶滿意,就交給開發工程師,進行開發;如果客戶不滿意,產品經理修改原型圖。
增量模型
把軟件分割獨立的模塊,分批次的完成和交付。
缺點:打破原有的軟件結構和框架,可能會帶來一定的風險。
增量模型一般會和迭代模型一起運用。
軟件增加了xxxx功能;
優化xxx體驗;
修複了xxxxbug。

迭代模型
特點:最初的版本是穩定可運行的。隨著版本迭代,產品功能更完善,越來越深入。
在這裏插入圖片描述
迭代包括產生產品發布(穩定、可執行的產品版本)的全部開發活動和要使用該發布必需的所有其他元素,强調開發的深入
在某種程度上,開發迭代是一次完整地經過所有工作流程的過程:需求分析、設計、實施和測試工作流程。
迭代過程具有以下優點:
降低了在一個增量上的開支風險。
降低了產品無法按照既定進度進入市場的風險。
加快了整個開發工作的進度。
迭代過程這種模式使適應需求的變化會更容易些。

螺旋模型
在這裏插入圖片描述
螺旋模型是一種演化軟件開發過程模型,它兼顧了快速模型的迭代的特征以及瀑布模型的系統化與嚴格監控。
引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以减小損失。
螺旋模型更適合大型的昂貴的系統級的軟件應用。(大廠和銀行經常使用)

敏捷開發模型
在這裏插入圖片描述

敏捷宣言,也叫做敏捷軟件開發宣言,證實了四種核心價值和十二條原則,可以指導迭代的以人為中心的軟件開發方法。
特點:
個體和互動高於流程和工具
工作的軟件公寓詳盡的文檔
客戶合作高於合同談判
相應變化高於遵循計劃

版權聲明
本文為[哈呵噠~]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270103397525.html

隨機推薦