靜態分析是不需要執行程式而進行測試的技術,其主要功能是檢查軟體與其描述是否一致,是否有衝突或歧義性。靜態分析的主要特徵是利用計算機作為工具來分析源程式,而不是執行程式。它檢查的是軟體系統在描述,表示和規格上的錯誤。是其他測試的前提.
**檢查
包括**走查和**審查。**走查除了閱讀程式外,還需要由測試員利用人工執行程式並得出輸出結果,然後由參加者對結果進行審查,以達到測試的目的。**審查的主要內容時檢查**和設計的一致性,**對標準的遵循程度,可讀性,**邏輯表達的正確性,**結構的合理性等方面。
靜態結構分析
靜態結構分析主要是以圖形的方式描述程式的內部結構。
**質量度量
軟體質量的iso/iec 9126國際標準的六個方面:功能性,可靠性,易用性,效率性,可維護性和可移植性。
發現程式的錯誤
尋找潛伏問題的原因
提供程式的資訊
選擇測試用例
為查錯做準備
靜態分析可為查錯做準備,在靜態分析過程中計算機並不執行被測試的程式,這是靜態分析與人工測試的根本區別
動態測試是使被測**在相對真實的環境下執行,從多個角度觀察與檢測程式執行時的功能,邏輯,行為和結構,並且通過比較實際執行的輸出結果和預期輸出結果,發現其中的錯誤。
動態測試是借助工具測試的技術,主要特徵是計算機必須真正執行被測試的程式,通過輸入測試用例,對齊運**況進行分析.
主要特點如下:
* 執行被測試程式,獲得程式執行的動態情況和真實結果,從而進行分析。
* 必須生成測試用例來執行程式,測試質量與測試用例密切相關。
* 生成測試用例,分析測試結果的工作量大,使得測試工作消耗較多.
* 動態測試中涉及人員多,裝置多,資料多,要求有較好的管理制度和工作流程。
功能確認和介面測試
覆蓋率分析
效能分析
記憶體分析
人工測試是指不依賴於具體的計算機,通過人工手段來進行測試的技術。主要包括軟體審查,**檢查和人工走查。
機器測試是指將大量的重複性工作利用計算機完成,是一種依賴於計算機的軟體測試技術。包括邊界值測試,分支覆蓋測試,原型和語法測試。
軟體審查的物件是各開發階段的成果,如需求分析,概要設計,詳細設計等階段的成果以及編碼,測試計畫和測試用例。
制定計畫:在軟體產品已具備階段審查的條件後開始制定計畫。
預審:預審是正審的初步,為了公正準確地完成評審,應該把與評審有關的資料提供給參審人員。
審查會返工
終審遺漏:在規格說明或標準中應該有的內容,但在送審資料中丟掉了。
多餘:超出規格說明和標準,給出了多餘的資訊。
錯誤:內容有誤的資訊。
介面問題
資料問題
邏輯問題
輸入和輸出問題
功能問題
效能問題
認為因素問題
標準問題
文件問題
語法問題
測試環境問題
測試覆蓋問題
其他問題
人工測試不能保證測試的科學性與嚴密性,這是因為:
* 測試人員要負責大量文件,報表的制定和整理工作,工作煩瑣。
* 受軟體分發日期,開發成本及測試人員,資源等多方面因素的限制,難以進行全面的測試。
* 如果修正缺陷所花費的時間相當長,回歸測試將變得更為困難。
* 對測試過程中發現的大量缺陷缺乏科學,有效的管理手段,責任含混不清,沒有人能向決策層提供精確的資料以度量當前的工作進度及工作效率。
* 反覆測試帶來的倦怠情緒及其他人為因素使得測試標準前後不一,測試花費的時間越長,測試的嚴格性也越低。
* 難以對不可視物件的不可視屬性進行測試。
而機器測試不但可以滿足測試的科學性,而且可以節約大量的時間,成本,人員和資源並且測試指令碼可以重複利用。
黑盒測試是對軟體功能和介面進行測試,是一種從使用者觀點出發的測試,其目的是發現軟體需求或者設計規格說明中的錯誤,所以又稱功能測試。
檢測錯誤型別
回答的問題
等價類劃分
邊界值分析
因果圖錯誤推測
白盒測試要求測試人員清楚盒子內部的內容以及內部如何運作,是一種通過分析程式內部的邏輯與程式執行路線來設計測試用例的測試方法,因此白盒測試也稱為邏輯驅動測試,以測試深度為主。
測試程式的邏輯細節從而發現軟體的缺陷.
軟體的缺陷包括:
控制流分析:指用控制流圖來表示程式控制結構。
資料流分析:利用資料流分析查詢是否使用了未定義的變數,或定義的變數是否從未使用過等情況。
邏輯覆蓋分類:指有選擇地執行程式中某些代表性的通路,是對窮盡測試唯一可行的替代辦法。
程式插裝:向被測程式中插入操作來達到測試的目的。被插入的語句稱為探測器或探針
符號測試:允許程式的輸入不僅可以是數值資料,也可以包括符號值。
程式強變異:程式被開發並經過簡單測試後,殘留在程式中的錯誤不再是很嚴重的錯誤,而是一些難以發現的小錯誤。
程式弱變異:強調制動程式的組成部分。
* 昂貴
* 無法檢測**中遺漏的路徑和資料敏感性錯誤
* 不驗證規格說明的正確性
* 只有一小部分輸入被測試到,要測試每個可能的輸入幾乎不可能
* 沒有清晰,簡明的規格說明,測試用例很難設計
* 如果測試人員不被告知開發人員已經執行過用例,在測試資料上回存在不必要的重複
* 有很多程式路徑沒有被測試到
* 不能直接針對特定程式段測試,而這些程式段可能很複雜,有可能隱藏更多的問題
* 大部分和研究相關的測試都是直接針對白盒測試
白盒測試只考慮測試軟體產品,它不能保證完整的需求規格說明是否被滿足。白盒測試會發現邏輯方面的缺陷,指出哪些實現部分是錯誤的。白盒測試主要用於效能測試。
黑盒測試只考慮測試需求規格說明,它不保證實現的所有部分是否被測試到。黑盒測試會發現遺漏的缺陷,指出規格說明的哪些部分沒有被完成。黑盒測試主要用於功能測試。
專案白盒測試
黑盒測試
測試依據
根據程式內部結構進行測試
根據軟體規格說明設計測試用例
優點能對程式特定部位進行覆蓋測試
站在使用者的立場上進行測試
缺點無法檢測程式外部特徵,無法對未實現規格說明的程式內部欠缺部分進行測試。
不能測試程式內部特定部位,如果規格說明有誤則無法發現。
方法程式控制流圖,邏輯覆蓋,路徑分析,程式插裝等
等價類劃分,邊界值劃分,決策表測試,因果圖。
* 敏捷測試需要多種成熟理論支援,如建立測試模型或畫出測試流圖等
* 敏捷測試是對已有方法的補充,而不是乙個完整的方**
* 敏捷測試是一種有效地共同工作的方法
* 敏捷測試有效地使用受限資源
* 敏捷測試強化單元測試理論和實現方式
* 敏捷測試是改進眾多軟體開發成果的有效技術
* 敏捷測試是面向開發人員和測試人員的
* 敏捷測試產生的輸出工件(測試計畫,測試用例,測試資料等)會在測試**中得到具體的體現,而無需產生大量的,難以管理的文件。
* 敏捷測試工具(可以來自於**商,也可能測試者自己寫)能夠幫助測試人員提高效果。
* 敏捷測試並不適合每乙個人。
敏捷測試並不適用於所有情況,即使條件非常適合,也不能保證它能良好地執行。敏捷測試需要滿足以下條件才能發揮其效力:
date:2017.4.11
軟體測試 軟體測試方法分類
目錄 軟體測試方法分類 一 從是否關心內部結構來看 1.白盒測試 2.黑盒測試 3.灰盒測試 二 從是否執行 看 1.靜態測試 2.動態測試 三 從開發過程級別看 1.單元測試 2.整合測試 3.系統測試 4.驗收測試 四 從執行過程是否需要人工干預來看 1.手工測試 2.自動化測試 五 從測試實施...
軟體測試之 軟體測試方法
1 介紹測試方法 2 區分黑盒測試 灰盒測試和白盒測試 邏輯覆蓋測試 3 區分靜態測試 控制流分析 資料流分析 資訊流分析 同行評審 和動態測試 動態測試工具 4 了解手工測試和自動化測試。在介紹以上軟體測試方法時,需要先了解軟體產品的概念,軟體研發過程中產生的所有文件和 都可以稱之為軟體產品,同時...
寒江雪 非功能性測試
測試系統對特定使用者組的操作和可用性 通過使用者的使用來評估產品的技術,由於它反映了使用者的真實使用經驗,所以可以視為一種不可或缺的可用性檢驗過程。也就是說,可用性測試是指讓使用者使用產品 服務 的設計原型或者成品,通過觀察,記錄和分析使用者的行為和感受,以改善產品 服務 可用性的一系列方法。測試系...