發現被測物件與使用者需求之間的差異,即缺陷
通過測試活動發現並解決缺陷,增加人們對軟體質量的信心
通過測試活動了解被測物件的質量狀況,為決策提供資料依據
通過測試活動積累經驗,預防缺陷出現,降低產品失敗風險。
需求表達、理解、編寫引起的錯誤
系統設計架構引起的錯誤
開發過程缺乏有效地溝通及監督,甚至沒有溝通或監督
程式設計師程式設計中產生的錯誤
軟體開發工具本身隱藏的問題
軟體複雜度越來越高
與使用者需求不符,即使軟體實現本身無缺陷
外界應用環境或電磁輻射導致的缺陷
1.遺漏:一是根本沒記錄需求,需求本身就遺漏了客戶的原始需求,二是需求是齊備完整的,但是在設計開發階段,遺漏了某些需求
2.錯誤:需求是正確的,但在軟體編碼實現階段未將規格說明正確實現,可能在概要、詳細設計時產生了錯誤,也可能是編碼錯誤,既有次需求,但是需求實現與使用者期望不一致
3.冗餘:需求規格說明書為涉及的需求被實現,即使用者未提及或無需的需求,在被測物件中得到了實現
4.不滿意:使用者對實現不滿意亦可稱為缺陷。
1.按測試方法劃分
黑盒測試:又稱功能測試、資料驅動測試或基於需求規格說明書的功能測試。通過測試活動了檢查被測物件每個功能能否正常使用,是否滿足使用者的需求。黑盒測試重點檢查的是被測物件介面、功能、相容性、易用性等方面的需求,主要的檢查點包括以下方面
功能不正確或遺漏
介面錯誤:一般集中在錯別字、介面布局等方面,並且缺陷級別通常都定位低。
資料訪問性錯誤:資料訪問性錯誤通常發生啊在介面上,比如,a系統需要呼叫b系統的某些資料,並設定定時自動呼叫資料的功能,實際工作中,隨著時間的推移,經常出現不能及時呼叫的錯誤,甚至不能工作
效能錯誤:黑盒測試階段,可以從被測物件的業務響應速度、業務併發處理能力、業務成功率、系統資源耗能等方面去衡量,而不需要考慮程式內部**的質量。
初始化和終止錯誤等:應用載入一些必須的配置資訊,一旦這個過程出現問題,即出現了初始化問題,可能導致程式閃退。終止性錯誤指某個應用在出現錯誤後無法保留當前工作狀態,執行其提示的操作後,導致程式崩潰,無法正常工作。
白盒測試:基於程式**內部結構的測試。測試方法主要包括:**檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法和基本路徑法,其中最為常用的方法是**檢查法。
**檢查法包括桌面檢查、**審查和走查,主要檢查**和設計的一致性,**對準的遵循性、可讀性,**邏輯表達的正確性,**結構的合理性等方面。
灰盒測試:黑盒測試僅關注程式**的功能性表現,不關注內部的邏輯設計、構成情況,白盒測試則僅從程式**的內部構成考慮,檢查其內部**設計結構、方法呼叫等,而灰盒測試結合兩種測試方法,一方面考慮程式**的功能性表現,另一方面有需要考慮程式**的內部結構。
靜態測試:不執行被測物件程式**而尋找缺陷的過程。通俗地講,靜態測試就是用眼睛看,閱讀程式**、文件資料等,與需求規格說明書進行比較,找出程式**中設計不合理以及文件資料有錯誤的地方。
一般在企業中召開正規的評審會,通過評審的方式,找出文件資料、程式**中存在缺陷的地方,並加以修改。
動態測試:指實際地執行被測物件的程式**,執行事先設計好的測試用例,檢查程式**執行得到的結果與測試用例中設計的預期結果之間是否有差異,判定實際結果與預期結果是否一致,從而檢驗程式的正確性、可靠性和有效性,並分享系統執行效率和健壯性等效能情況。
動態測試由四部分組成:設計測試用例、執行測試用例、分析比較輸出結果、輸出測試報告。
動態測試有三種主要的方法:黑盒測試、白盒測試以及灰盒測試。
手工測試:通過模擬終端使用者的業務流程應用軟體系統,檢查被測物件實際表現與預期結果間的差異,測試工程師手工執行被測物件,這種模式即為手工模式。
優點:充分發揮測試工程師的主觀能動性,將其智力活動體現於測試工作中,能發現很多的缺陷。
缺點:測試方法有一定的侷限性與單調枯燥性,當測試周期長、業務重複性較大時,手工測試容易變得枯燥乏味。
自動化測試:利用測試工具,編寫一下**。模擬使用者的業務使用流程,自動執行來查詢缺陷。自動化的引入,大大地提高了測試的效率和測試的準確性,而且寫出的比較好的測試指令碼,還可以在軟體生命週期的各個剪短重複利用。
2.按測試階段劃分
需求測試:指需求調研完成後,由測試部門或者需求小組進行需求的測試。需求測試從去求文件的規範性、正確性等方面檢查需求調研階段生成的文件,測試工程師最好有經驗的需求分析人員,並且得到了需求調研期間形成的demo。
單元測試:又稱模組測試,就是對程式**中最小的設計模組單元進行測試。
單元測試實在軟體開發過程中進行的最低級別的測試活動。主要採用靜態測試與動態測試相結合的辦法。首先採用靜態的**走查,檢查程式**中不符合程式設計規範,存在錯誤或者遺漏的地方,同時專案小組使用**審查的方法檢查專案**,以期發現更多的問題。
然後使用單元測試工具,比如juint、testng等工具進行程式**內邏輯結構、函式呼叫等方面地測試。
整合測試:又稱組裝測試,就是將軟體產品中各個模組整合組裝起來,檢查其介面是否存在問題,以及組裝後的整體功能、效能表現。
整合測試階段主要解決的是各個軟體組成單元**是否符合開發規範、介面是否存在問題、整體功能有無錯誤、介面是否符合設計規範、效能是否滿足使用者需求等問題。
系統測試:將通過整合測試的軟體,部署到某種較複雜的計算機使用者環境進行測試。
系統測試的目的在於通過與系統的需求定義做比較,發現軟體與系統的定義不符合與之矛盾的地方。這個階段主要進行的是安裝與解除安裝測試、相容性測試、功能確認測試和安全性測試等。
系統測試階段採用黑盒測試方法,主要考查被測軟體的功能與效能表現。
系統測試過程其實也是一種配置檢查過程,檢查在軟體生產過程是否有遺漏的地方,在系統測試過程中做到查漏補缺,以確保交付的產品符合使用者質量要求。
使用者測試:在系統測試完成後,將會進行使用者測試。
回歸測試:缺陷修復後,測試工程師需求重新執行測試用例,以驗證缺陷是否成功修復,並且沒有引發新的缺陷。
有些公司會採用自動化測試工具來進行回歸測試,比如利用uft、selenium等工具,對於產品級、變動量小的軟體而言,可以利用這一的工具去執行測試。
但一般情況下,都由測試工程師手動執行以前的測試用例,來檢查用例通過情況。敏捷開發模型中,傾向於實現回歸測試自動化。回歸測試可以發現產品發布前未能發現的問題,比如時鐘延遲、軟體效能問題等。
軟體測試基礎 軟體測試概要
1.歷史上由軟體bug引發的重大事故 因此,軟體質量是非常重要的,而軟體測試作為軟體質量保證重要的組成部分,在軟體研發中有著重要的地位,是不可或缺的一環。2.什麼是測試?ieee定義 iso iec ieee 29119 使用人工或自動的手段來執行或測量軟體系統的過程,以檢驗軟體系統是否滿足規定的要...
軟體測試基礎
功能測試 主要是黑盒測試,也稱行為測試 只考慮各個功能,不考慮整個軟體的內部結構及 一般從軟體產品的介面 架構出發 按照需求編寫出來的測試用例,輸入資料在預期結果和實際結果之間進行評測,進而提出使產品更加符合使用者使用的要求。包括邊界值測試 找到邊界,然後在其邊界及其邊界附近選點 健壯性測試 最壞情...
軟體測試基礎
1 缺陷編號 defect id 所提交的bug的順序 2 缺陷標題 summary 簡明扼要地說明一下該缺陷 3 缺陷的發現者 detected by 4 發現缺陷的日期 detected on date 5 缺陷所屬的模組 subject 在測試哪個模組的時候發現的bug 6 發現缺陷的版本 d...