軟體測試基礎知識總結

2021-03-04 05:38:54 字數 4575 閱讀 9961

一、 什麼是軟體測試?

2023年,myer:軟體測試就是為了發現錯誤而執行程式或系統的過程。

2023年,ieee:軟體測試即使用人工或自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。

二、現代軟體測試活動的內容?

制定測試計畫、設計測試用例、實施測試、提交缺陷報告、測試總結

三、軟體測試的目的?

grenford j.myers在《the art of software testing》一書中的觀點:

1、 測試是程式的執行過程,目的在於發現錯誤

2、 乙個成功的測試用例在於發現至今未發現的錯誤

3、 乙個成功的測試是發現了至今未發現的錯誤的測試

簡單的說,測試的根本目的就是確保最終交給使用者的產品符合使用者的需求,在產品交給使用者之前盡可能多的發現並改正問題。

四、測試一般要達到的目標?

確保產品完成了它所承諾或公布的功能,並且使用者可以訪問到的功能都有明確的書面說明;

確保產品滿足效能和效率的要求;

確保產品是健壯的和適應使用者環境的。

五、軟體測試分類?

1、按測試策略分類:

a靜態測試與動態測試

靜態測試

定義:不執行被測程式本身而尋找程式**中可能存在的錯誤或評估程式**的過程。

ps: 通過分析或檢查源程式的文法、結構、過程、介面等來檢驗程式的正確性,找出缺陷和可疑之處,例如不匹配的引數、不適當的分支巢狀和迴圈巢狀、未使用過的變數、空指標的引用等; 可採用人工和軟體工具進行; 靜態測試工具的代表:telelogic公司的logiscope軟體、pr公司的prqa軟體等。

靜態測試特點:

不必動態地執行程式,也不必進行測試用例設計和結果判斷等工作;

可由人工進行,充分發揮人得邏輯思維優勢;

不需要特別的條件,容易展開。

靜態測試要點:

**審查(code inspection或code review)、**走查(walkthrough)、桌面檢查、技術評審(軟體需求分析和設計評審)、靜態分析(使用軟體工具,包括控制流分析、資料流分析、介面分析和表示式分析)

動態測試

定義:實際執行被測程式,輸入相應的測試例項,檢查執行結果和預期結果的差異,判斷執行結果是否符合要求,從而檢驗程式的正確性、可靠性和有效性,並分析系統執行效率和健壯性等效能。

組成:構造測試例項、根據測試例項執行程式、分析程式的輸出結果。

主要方法:黑盒測試和白盒測試。

動態測試特點:

實際執行被測試程式,取得程式執行的真實情況、動態情況,並進行分析;

必須生成測試資料來執行程式,測試質量依賴於測試資料;

生成測試資料、分析測試結果工作量大,使開展測試工作費時、費力、費人;

動態測試中涉及多方面工作,人員多、裝置多、資料多,要求有較好的管理和工作規程。

b黑盒測試和白盒測試

黑盒測試 (black-box testing)又稱功能測試、資料驅動測試、基於規格說明書的測試。

定義:測試者把被測程式看成乙個黑盒,不考慮程式的內部結構和特性,只需知道該程式輸入和輸出之間的關係和程式功能,依靠能夠反映這一關係和程式功能的需求規格說明書,來確定測試用例和推斷測試結果的正確性。

白盒測試(white-box testing)又稱結構測試、邏輯驅動測試、基於程式本身的測試。

定義:從程式的內部邏輯結構入手,按照一定的原則設計測試用例,對軟體的邏輯路徑進行測試,在程式的不同點檢查程式的狀態,來判定其實際情況是否和預期的狀態一致。

c手工測試與自動測試

手工測試

定義:由測試人員來執行測試用例,然後根據實際的結果去和預期的結果相比較並記錄測試結果。手工測試時現在多數公司使用的測試形式。

自動測試

定義:引入自動測試工具。

通常以手工測試為主,自動測試為輔。

d冒煙測試(**oke test):在版本投入正式測試前,對其重要的步伐先進行大概的測試,看系統重要的功能是否正確,再進行徹底的測試。

e回歸測試(regression test):一段時間以後對以前修復過的缺陷重新進行測試,看該缺陷是否會重新出現。

2、按測試階段分類

單元測試又稱模組測試

定義:針對每乙個程式模組進行正確性檢驗,檢查各個程式模組是否正確的實現了規定的功能。如乙個視窗、函式、選單、報表或乙個儲存過程。

依據是詳細設計,應對所有重要的控制路徑設計測試用例。

整合測試又稱綜合測試。

定義:在單元測試的基礎上,將已經通過測試的單元模組按照設計要求組裝成系統或子系統,再進行的測試。

系統測試

定義:是將通過確認測試的軟體,作為整個基於計算機系統的乙個元素,與計算機硬體、外設、某些支援軟體、資料和人員等其他系統元素結合在一起,在實際執行環境下,對計算機系統進行全面的功能覆蓋。

單元測試——整合測試——確認測試(有效性測試、軟體配置審查)——系統測試——驗收測試(以使用者為主)

3、其他常見測試方法

功能測試(functiong testing)又稱正確性測試,軟體的功能是否符合規格說明;

效能測試(performance testing),系統是否滿足需求說明書中規定的效能,通常使用自動化測試工具;

壓力測試(stress testing):檢查系統在瞬間峰值負荷下正確執行的能力,通常用測試工具測試;

負載測試(volume testing):用於檢查系統在使用大量資料時正確工作的能力;

易用性測試(usability testing):合理性、方便性;

安裝測試(installation testing):對軟體的全部、部分或公升級安裝/解除安裝處理過程的測試;

介面測試:包括視窗測試、下拉式選單和滑鼠操作、資料項測試;

配置測試(configuration testing):主要檢查計算機系統內各個裝置或各種資源之間的相互連線和功能分配中的錯誤。包括驗證全部配置命令的可操作性,軟體配置,硬體配置,利用手動或自動方式驚喜配置狀態間的轉換;

文件測試(documentation testing):文件的正確性、完備性、可理解性;

相容性測試(***patibility testing):產品在不同產品之間的相容性;

安全性測試(security testing):非法侵入的防範能力,已存在的安全性、保密性,有無漏洞;

恢復測試(recovery testing):容錯能力,在指定的時間內修正錯誤並恢復正常,又不傷害系統。

六:軟體的開發周期(軟體生命週期)和模型?

瀑布模型:

計畫——需求分析——設計——編碼——測試——執行、維護

嚴格按照固定順序,每個階段結束,經過專案小組審查,決定是否進入下一步。

螺旋模型:

確定目標、可選方案和現在條件——指出並解決風險——評估方案——本階段開發和測試——計畫下一階段——確定進入下一階段的方法(該過程重複進行)

螺旋模型是瀑布模型的發展,較常用。

七、軟體測試生命週期?

制定測試計畫——測試設計和開發——實施軟體測試——評審——版本發布

八、什麼是軟體的缺陷(bug)?

定義:在軟體使用過程中所出現的任何問題,或者導致軟體不能符合設計要求或滿足消費者需求的問題。包括程式錯誤等等。

九、書寫缺陷報告的準則?

保證重現缺陷;分析故障,使用最少步驟重現缺陷;包含所有重現缺陷的必要步驟;方便閱讀(編號,分步驟);盡量簡單(乙個缺陷乙個報告);注意語氣。

識別和判斷缺陷的輔助工具:軟體需求說明書、使用者手冊、聯機幫助。

十、bug的生命週期?

有效地記錄bug;

使用bug模板;

評價bug優先順序和嚴重性;

bug的生命;

維護bug資料庫。

十一、bug的型別?

軟體沒有實現產品規格說明所要求的功能模組;

軟體中出現了產品規格說明指明不應該出現的錯誤;

軟體實現了產品規格說明沒有提到的功能模組;

軟體沒有實現雖然產品規格說明沒有明確提及但應該實現的目標;

軟體難以理解,不容易使用,執行緩慢,或從測試員的角度看,終端使用者會認為不好。

功能缺陷:規格說明書、能功、測試

系統缺陷:內部介面、硬體、作業系統、軟體結構、控制與順序、資源

加工缺陷:算術、初始化、控制與次序、靜態邏輯、其他

資料缺陷:型別、結構、初始值、其他

**缺陷:程式編寫、文件、其他

十二、bug中通常包含的內容????

硬體平台和作業系統

版本bug報告優先順序

bug狀態

報告人reporter

指定處理人assigned to

概述summary

郵件抄送列表cc list

從屬關係(bug 「id」 depends on, bug 「id」 block)

附加描述additional ***ments

十三、bug中的優先順序的定義?

優先順序表示修復缺陷的重要程度和應該何時修復:

1應立即修復的問題

2在產品發布之前必須修復的問題

3如果時間允許應該修復的問題

4可以在發布版本中存在的問題

缺陷的二八定理:一般情況下,在分析、設計、實現階段的複查和測試工作能夠發現和避免80%的缺陷,而系統測試又能找到剩餘缺陷的80%,最後的4%的缺陷可能只有在使用者大範圍、長時間使用後才會暴露出來。

軟體測試面試題測試基礎知識

軟體測試面試題 軟體測試是軟體工程過程的乙個重要階段,是在軟體公升級發布之前對軟體開發各階段產品的最終檢查,是為了保證軟體開發產品的正確性 完全性和一致性而檢測軟體錯誤 修正軟體錯誤的過程。軟體測試是 1 程式測試是為了發現錯誤而執行程式的過程 2 測試是為了證明程式有錯,而不是證明程式無錯誤 3 ...

電腦的基礎知識 軟體知識

神舟電腦使用者學習手冊 軟體 中國大陸及香港用語,台灣叫作軟體 是一系列按照特定順序組織的計算機資料和指令的集合。軟體並不只是包括可以在計算機上執行的電腦程式,與這些電腦程式相關的文件一般也被認為是軟體的一部分。簡單的說軟體就是程式加文件的集合體。型別劃分 一般來講軟體被劃分為系統軟體 應用軟體,管...

軟體工程基礎知識

課程2 軟體工程基礎知識 91過軟考教育學院 class txt 小馬老師qq 858301448 tel 180 2013年1月2013年上半年資訊系統專案管理師軟體需求定義必須掌握。p15 3種需求 功能 非功能 設計約束,要會判斷和區分。需求工程,包含需求開發和需求管理p16 需求開發 需求捕...