2022-01-10 14:31:12|已瀏覽:237次
軟件測試概念
A.1 經典定義
軟件測試(Software Testing),在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。
A.2 標準定義(IEEE)
軟件測試是使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。
A.3 測試目的
軟件測試的目的是發現問題,發現至今未發現的問題。檢查系統是否滿足需求。
Grenford J.Myers觀點
(1)測試是程序的執行過程,目的在于發現錯誤;
(2)一個好的測試用例在于能發現至今未發現的錯誤;
(3)一個成功的測試是發現了至今未發現的錯誤的測試;
A.4 測試的對象
程序、數據、文檔。
A.5 軟件錯誤占比
據業界著名的統計公司的統計表明,屬于需求分析和軟件設計錯誤的約占64%,屬于程序編寫錯誤的僅占36%。
軟件測試分類
B.1 wikipedia
測試級別:單元測試、集成測試、接口測試、系統測試、驗收測試測試方法:動態測試、靜態測試;黑盒測試、白盒測試、灰盒測試。
B.2 綜合整理分類
B.2.1 按階段劃分 //重要
√ 單元測試(Unit Testing)
單元測試是對軟件組成單元進行測試。其目的是檢驗軟件基本組成單位的正確性。測試的對象是軟件設計的最小單位:模塊。Findyou又稱為模塊測試
測試階段:編碼后
測試對象:最小模塊
測試人員:白盒測試工程師或開發工程師
測試依據:代碼和注釋+詳細設計文檔
測試方法:白盒測試
測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試
√ 集成測試(Integration Testing)
集成測試也稱聯合測試、組裝測試,將程序模塊采用適當的集成策略組裝起來,對系統的接口及集成后的功能進行正確性檢測的測試工作。阿旺主要目的是檢查軟件單位之間的接口是否正確。
測試階段:一般單元測試之后進行
測試對象:模塊間的接口
測試人員:白盒測試工程師或開發工程師
測試依據:單元測試的模塊+概要設計文檔
測試方法:黑盒測試與白盒測試相結合
測試內容:模塊之間數據傳輸、模塊之間功能沖突、模塊組裝功能正確性、全局數據結構、單模塊缺陷對系統的影響
√ 系統測試(System Testing)
將軟件系統看成是一個系統的測試。包括對功能、性能以及軟件所運行的軟硬件環境進行測試。時間大部分在系統測試執行階段。
測試階段:集成測試通過之后
測試對象:整個系統(軟、硬件)
測試人員:黑盒測試工程師
測試依據:需求規格說明文檔
測試方法:黑盒測試
測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
√ 驗收測試(Acceptance Testing)
驗收測試是部署軟件之前的最后一個測試操作。它是技術測試的最后一個階段,也稱為交付測試。阿旺總結驗收測試的目的是確保軟件準備就緒,按照項目合同、任務書、雙方約定的驗收依據文檔,向軟件購買都展示該軟件系統滿足原始需求。
測試階段:系統測試通過之后
測試對象:整個系統(包括軟硬件)。
測試人員:主要是最終用戶或者需求方。
測試依據:用戶需求、驗收標準
測試方法:黑盒測試
測試內容:同系統測試(功能...各類文檔等)
B.2.2、按是否查看代碼劃分 //重要
∑ 黑盒測試(Black-box Testing)
黑盒測試也稱功能測試,測試中把被測的軟件當成一個黑盒子,不關心盒子的內部結構是什么,只關心軟件的輸入數據與輸出數據。
∑ 白盒測試(White-box Testing)
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基于代碼的測試。白盒指的打開盒子,去研究里面的源代碼和程序結果。
∑ 灰盒測試(Gray-Box Testing)
灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。
B.2.3、按是否執行程序劃分
£ 靜態測試(Static testing)
靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。阿旺分析如下
檢查項:代碼風格和規則審核;程序設計和結構的審核;業務邏輯的審核;走查、審查與技術復審手冊。
靜態質量:度量所依據的標準是ISO9126。在該標準中,軟件的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。
£ 動態測試(Dynamic testing)
動態測試方法是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能。這種方法由三部分組成:構造測試用例、執行程序、分析程序的輸出結果。
B.2.4、按是否查看代碼劃分 //重要
∂ 手工測試(Manual testing)
手工測試就是由人去一個一個的輸入用例,然后觀察結果,和機器測試相對應,屬于比較原始但是必須的一個步驟。阿旺總結優缺點:
優點:自動化無法替代探索性測試、發散思維類無既定結果的測試。
缺點:執行效率慢,量大易錯。
∂ 自動化測試(Automation Testing)
就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。簡單說自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。
自動化測試比如功能測試自動化、性能測試自動化、安全測試自動化。
通常所說的自動化是指功能測試自動化。
Findyou看AI技術的興起發展,類似可預見工作都有可能會被偽AI代替。
B.2.5、其他匯總
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-14260.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注軟件測試頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050