【軟體測試】軟體及其開發過程
1.軟體
1.1 軟體的含義
能夠完成預定功能和效能的、可執行的指令(計算機程式);
使得程式能夠適當地操作資訊的資料結構;
描述程式的操作和使用的文件。
軟體 = 程式 + 資料 (庫) + 文件 + 服務
使得程式能夠適當地操作資訊的資料結構;
描述程式的操作和使用的文件。
軟體 = 程式 + 資料 (庫) + 文件 + 服務
1.2 軟體的組成
客戶需求 - Customer Requirements
市場需求文件 - MRD (Marketing Requirement Document)
軟體規格說明書 - Specifications
技術設計文件 – Technical Design Docs
測試文件 Test Documents
線上幫助 - Online help
產品釋出註釋 - Release Notes / Read Me
產品軟體包 - Release packages
市場需求文件 - MRD (Marketing Requirement Document)
軟體規格說明書 - Specifications
技術設計文件 – Technical Design Docs
測試文件 Test Documents
線上幫助 - Online help
產品釋出註釋 - Release Notes / Read Me
產品軟體包 - Release packages
幫助檔案 Help files
示例 Samples and examples to illustrate points
產品支援文件 Product support information
錯誤資訊 Error messages
安裝手冊 Setup and installation instructions
使用者手冊 User manual(s)
產品標籤 Label and stickers
產品廣告或宣傳材料 Ads and marketing material
示例 Samples and examples to illustrate points
產品支援文件 Product support information
錯誤資訊 Error messages
安裝手冊 Setup and installation instructions
使用者手冊 User manual(s)
產品標籤 Label and stickers
產品廣告或宣傳材料 Ads and marketing material
1.3 軟體的特點
軟體則是邏輯的、知識性的產品集合,是對物理世界的一種抽象,或者是某種物理形態的虛擬化
軟體是硬體的靈魂,硬體是軟體的基礎
軟體,是智慧和知識的結晶
軟體不會“磨損”,而是逐步完善 .
軟體是硬體的靈魂,硬體是軟體的基礎
軟體,是智慧和知識的結晶
軟體不會“磨損”,而是逐步完善 .
2.軟體開發過程的特性
2.1 軟體開發的基本過程
需求分析: 根據客戶的要求,清楚瞭解客戶需求中的產品功能、特性、效能、介面和具體規格等,然後進行分析,確定軟體產品所能達到的目標。
設計: 根據需求分析的結果,考慮如何在邏輯、程式上去實現所定義的產品功能、特性等,可以分為概要設計和詳細設計,也可分為資料結構設計、軟體體系結構設計、應用介面設計、模組設計、介面設計等。
程式設計: 將設計轉換成計算機可讀的形式。
測試: 對設計、程式設計進行驗證和使用者需求確認的過程
維護:維持軟體執行,修改軟體缺陷、增強已有功能、增加新功能、升級等。
設計: 根據需求分析的結果,考慮如何在邏輯、程式上去實現所定義的產品功能、特性等,可以分為概要設計和詳細設計,也可分為資料結構設計、軟體體系結構設計、應用介面設計、模組設計、介面設計等。
程式設計: 將設計轉換成計算機可讀的形式。
測試: 對設計、程式設計進行驗證和使用者需求確認的過程
維護:維持軟體執行,修改軟體缺陷、增強已有功能、增加新功能、升級等。
2.2 軟體開發過程模型
瀑布模型
原型模型
快速應用開發(RAD)模型
改進的V模型
螺旋模型
增量模型和迭代模型
構件組裝模型
併發模型
XP模型
原型模型
快速應用開發(RAD)模型
改進的V模型
螺旋模型
增量模型和迭代模型
構件組裝模型
併發模型
XP模型
瀑布模型
原型模型
原型+瀑布模型
螺旋模型
2.3 UML代表軟體建模的發展趨勢
- 敏捷開發(Agile Development)
- “極限程式設計”(eXtreme Programming
- 泛型程式設計(Generic Programming)
- 面向切面方面的程式設計(Aspect Oriented Programming,簡稱AOP)
UML( Unified Modeling Language, 統一建模語言 )可以說代表軟體建模的今後5到10年的發展方向,成為物件導向技術領域內占主導地位的標準建模語言,支援從需求分析開始的軟體開發的全過程。總的來說,UML是一種定義良好、易於表示、功能強大且普遍實用的建模語言
標準建模語言UML共定義了三大類、共12種模型圖:
- 結構類 Structural Diagrams:用4種模型圖描述系統應用的靜態結構,包括類圖、物件圖、元件圖和配置圖;
- 行為類 Behavior Diagrams:用5種模型圖描述系統動態行為的各個方面,包括用例圖、序列圖、行為圖、協作圖和狀態圖
- 模型管理類 Model Management Diagrams :用3種模型圖來組織和管理各種應用模型,包括軟體包、子系統、模型等
3. 軟體測試的重要性
3.1 軟體所帶來的悲劇
在上個世紀70年代,程式設計師為了節約非常寶貴的記憶體資源和硬碟空間,在儲存日期時,只保留年份的後兩位,如“1980”被存為“80”。當2000年到來的時候,問題就會出現,比如銀行存款程式在計算利息時,應該用現在的日期“2000年1月1日”減去當時存款的日期,比如“1989年1月1日” ,結果應該是21年,如果利息是3%,銀行要付給顧客每100元,大約86元利息。如果程式沒有糾正年份只儲存兩位的問題,其存款年數就變為-89年,變成顧客反要付銀行1288元的鉅額利息。
就是為了這樣一個簡單的設計缺陷,全世界付出幾十億美元。
就是為了這樣一個簡單的設計缺陷,全世界付出幾十億美元。
問題出在哪呢?
- 沒有足夠測試
- 缺乏測試平臺
- 不正確的測試環境
- 缺少整合測試
- 缺少效能測試
- 缺少強度測試
- 缺少可靠性測試
- “程式測試是為了發現錯誤而執行程式的過程”。測試的目的是發現程式中的錯誤,是為了證明程式有錯,而不是證明程式無錯。在軟體開發過程中,分析、設計與編碼等工作都是建設性的,惟獨測試是帶有“破壞性”,測試可視為分析、設計和編碼3個階段的“最終複審”,在軟體質量保證中具有重要地位。
- 微軟的經驗:Windows 95/98 Windows 2000 系統的穩定性有了明顯改善,DEV:QA = 1:2
3.3 軟體測試的目的
觀點一:
測試是程式的執行過程,目的在於發現錯誤
一個成功的測試用例在於發現至今未發現的錯誤
一個成功的測試是發現了至今未發現的錯誤的測試
這種觀點指出測試是以查詢錯誤為中心,而不是為了演示軟體的正確功能
測試是程式的執行過程,目的在於發現錯誤
一個成功的測試用例在於發現至今未發現的錯誤
一個成功的測試是發現了至今未發現的錯誤的測試
這種觀點指出測試是以查詢錯誤為中心,而不是為了演示軟體的正確功能
觀點二:
確保產品完成了它所承諾或公佈的功能,並且使用者可以訪問到的功能都有明確的書面說明
確保產品滿足效能和效率的要求
確保產品是健壯的和適應使用者環境的
確保最終交給使用者的產品功能符合使用者的需求,在產品交給使用者之前儘可能多的發現並改正問題
確保產品完成了它所承諾或公佈的功能,並且使用者可以訪問到的功能都有明確的書面說明
確保產品滿足效能和效率的要求
確保產品是健壯的和適應使用者環境的
確保最終交給使用者的產品功能符合使用者的需求,在產品交給使用者之前儘可能多的發現並改正問題
相關文章
- 軟體測試面試過程解析面試
- 軟體效能測試有哪些測試過程?
- 軟體測試真的比不上軟體開發嗎?
- 軟體測試培訓分享:軟體測試和軟體開發學哪個好呢
- 軟體測試過程中的痛點思考
- 軟體測試應該重點關注的測試過程,廣東軟體測試公司推薦
- 軟體功能測試在軟體開發中的重要性。在哪裡做軟體測試?
- 軟體開發的生命週期過程
- 軟體驗收測試 第三方軟體測試 軟體功能測試 軟體資訊保安測試
- 軟體測試:軟體缺陷管理
- 軟體測試——三、軟體測試的分類
- 軟體測試學習教程——JDBC開發JDBC
- 軟體測試
- 軟體測試開發:常見測試型別概念型別
- 軟體測試職業發展方向?2020軟體測試工作前景如何
- 軟體測試--軟體生命週期
- 軟體測試--中介軟體介紹
- 軟體測試教程之手機軟體測試方法
- 軟體測試學習教程—軟體測試質量
- 軟體測試學習 ——五種軟體測試模型模型
- 軟體工程-過程模型軟體工程模型
- 軟體工程-五 過程軟體工程
- 軟體測試,如何工資過萬?
- 軟體測試培訓分享:軟體測試的發展空間大嗎
- 【軟體測試】——介面測試
- 軟體測試學習教程—軟體測試基本知識
- 軟體測試入門【1】什麼是軟體測試
- 軟體測試真的很重要!——軟體測試的作用
- 軟體測試書籍-學軟體測試最好的書
- 軟體驗收測試的測試過程和內容有哪些?權威的軟體檢測機構哪家比較好?
- [武漢] 集度招軟體測試開發
- 軟體測試發展趨勢
- 軟體系統測試有哪些測試過程?系統測試報告如何收費?測試報告
- 軟體測試概要
- 軟體測試模式模式
- 軟體測試模型模型
- 【軟體測試】缺陷
- 軟體測試流程
- 軟體測試培訓分享:軟體測試的職業發展方向有哪些