標籤:軟體測試
測試活動的開展
測試計劃
測試活動的目的和被測目標
測試的範圍
測試的方法
測試所用到的資源
測試的進度安排
測試的策略
測試案例的產生
何時開始編寫測試案例
選定測試方法
測試案例的內容
測試案例的粒度
測試案例的組織方式
測試案例的審查
測試案例的有效性檢驗
開始執行測試
報告測試缺陷
V模型
軟體需求分析——使用者驗收測試
系統概要設計——系統測試
詳細設計——整合測試
編碼——單元測試
1、什麼是黑箱測試?
測試人員把軟體產品看成是一個黑盒子,測試過程中對這個軟體黑盒的操作只關注會得到什麼結果,而不必關心盒子內部的邏輯結構
對這個軟體黑盒的操作可以是字串的輸入、圖片的輸入、視頻的流入、事件的輸入
簡單點說就是只關注input和output
2、為什麼要做黑箱測試?
驗證軟體是否符合需求文檔的設計
證實軟體是否符合終端使用者的需求
3、在軟體生命週期的哪些測試階段用到了黑箱測試?
4、黑箱測試的方法?
輸入範圍和輸出範圍;等價類別劃分;邊界值界定;狀態轉換;因果圖分析;文法測試
5、什麼叫打樁?什麼叫驅動?
6、什麼是白盒測試?
白盒測試又稱結構測試或邏輯驅動測試,它通過分析被測組件內部的工作原理,通過測試來檢測被測組件內部的運行是否符合產品規格說明書的規定
相對於黑箱測試需要測試人員檢查細節,這些細節包括資料流和控制流程
資料流方面:
控制流程方面:
7、白盒測試和黑箱測試的區別?
黑箱測試:適用於各個階段;完全不考慮程式內部的結構;黑箱測試是窮取輸入測試,輸入所有可能的情況
白盒測試:一般用於單元測試階段;需要全面瞭解程式內部邏輯、對所有邏輯路徑進行測試;白盒測試時窮舉路徑測試,
8、白盒測試的方法?
語句測試;分支/判定測試;條件測試(條件分支測試、條件組合測試、修正條件判定測試);資料流測試(變數的定義點——變數的值會隨著這些語句的執行發生變化、變數的使用點——謂詞使用(執行語句後程式出口>=2)和計算使用(執行語句後程式出口<=1))——為了覆蓋被測組件中所有變數從被定義點到被使用點的路徑。資料流測試(全定義覆蓋、全謂詞使用覆蓋、全計算使用覆蓋、全使用覆蓋、全定義使用對路徑覆蓋);基本路徑測試(循環複雜度V(G));線性代碼序列與跳轉測試
9、單元測試
對軟體的最基本組成單元進行測試,是最低級的測試
軟體的被測單元將在與其他組件隔離的情況下進行測試
被測單元在C語言這種面向過程中指函數或過程
在C++這種物件導向中可以是類也可以是成員函數
10、為什麼要對程式進行單元測試?
保證被測代碼有正確的行為,可以驗證代碼是否與詳細設計一致
窺探軟體內部的實現機制,可以發現其他階段難以發現的軟體缺陷(因為這個階段大多是白盒測試)
充分的單元測試可以降低軟體開發的成本
11、由誰來做單元測試?什麼時候開始做單元測試?
開發人員 軟體的編碼階段
12、怎麼做單元測試?
我們知道在編碼階段,由開發人員先設計各單元之間的介面,再依次實現個單元內部代碼,最後對各個單元進行測試
因此對於每個被測單元應該知道其對外介面(全域變數、類的公有成員、函數的形參、傳回值、函數名)
測試單元被測時,由於單元的獨立性,需編寫驅動程式或樁函數來類比被測單元的調用和被調用
單元測試的策略:自頂向下、自底向上、獨立測試
13、單元測試的允入準則和出口條件
14、整合測試
對軟體已測完成的單元或組件之間的介面進行測試,又稱組裝測試或子系統測試
當兩個已經完單元測試的單元要組成一個組件時,就必須對這個組件進行集合測試,測試通過後將跟多的組件彙總進行更大範圍的整合測試,從而得到更大的組件,進而組成模組、子系統和系統
整合測試一般按一下層次進行:
組件內部各單元之間的整合;
模組內部的整合;
子系統中各模組之間的整合;
系統中各個子系統之間的整合。
整合測試需要窺探程式內部的介面,但有大量使用的是黑箱測試的方法,所以它是結合了黑盒和白盒的特點,常被成為灰盒測試
15、為什麼要對程式進行整合測試?
可以發現在單元測試難以發現的缺陷,有時候基本單元的功能雖然實現了,但給出的介面並不正確,這樣的缺陷很容易在整合測試階段發現;
結合白盒測試和黑箱測試的特點進行測試;
逐步對軟體進行集合測試可以有效定位整合新的組件後所引入的缺陷;
逐步的對軟體進行集合測試可以有效評估被整合的新模組對原系統的影響,只有對軟體進行逐步整合測試才能形成穩定的、已完成整合的模組或系統;
充分的整合測試可以降低軟體測試的成本。
16、整合測試是為了完成哪一個文檔?
在軟體開發過程中,開發人員通常將需求分析轉換為軟體的概要設計文檔(指明各個模組之間的介面)
17、什麼時候開始做整合測試?
應該在被測組件的編碼完成之後,因為這個時候被測組件已經通過了單元測試,但並未集合成一個穩定的組件
18、怎麼做整合測試?
19、整合測試的允入準則和出口條件?
20、系統測試
系統測試就是在所有模組或子系統都完成了整合測試之後,測試人員對整個軟體系統按照軟體產品需求規格說明書進行的功能驗證測試
軟體測試直到這個階段所做的工作還是一直對一系列需求文檔進行驗證
在單元測試階段,主要是對軟體詳細設計文檔的驗證
在整合測試階段,主要是對軟體介面說明文檔進行驗證
在系統測試階段,主要是對產品需求規格說明書進行驗收
21、為什麼要對軟體進行系統測試?
系統測試與前面的階段測試的目的不同。單元測試是為了保證代碼有正確的行為,以及驗證代碼是否與詳細設計一致,整合測試是對軟體已完成測試的單元或組件之間的介面進行測試,這些介面屬於內部介面,而系統測試中的功能測試通常是測試軟體的使用者介面;
系統測試的範圍通常更廣泛。系統測試包括一些專項測試,如效能、易用性、壓力、健壯性測試;
系統測試是在類比真實環境下的測試。相比之前的測試,系統測試所使用的系統配置、軟硬體環境都必須按照產品需求規格說明書中的要求嚴格配置,因此,系統測試出來的結果更具有現實意義;
某些特殊的常量資料只能在系統測試階段來驗證,例如關於使用者介面的友好程度、UI的美觀程度、字型的大小及字型的類型
22、系統測試時為了驗證哪一個文檔?
軟體的產品需求規格說明書
23、什麼時候開始做系統測試?
在所有的模組都整合之後進行
24、怎麼做系統測試?
功能測試:測試產品的各項功能的正確性。如果發現功能實現的與產品需求規格說明書描述的一致但是並不正確,那麼測試人員應當與開發人員代表、專案管理人員和需求管理員溝通以確定產品需求規格說明書中對被測功能的描述是否是一個缺陷
效能測試:測試產品的各項效能是否達標
壓力測試:測試以獲得產品的某些關鍵效能指標的極限
健壯性測試:指產品正常運行時在遇到某些突發例外狀況事件的系統保持與恢複的能力
相容性測試:指產品的新舊版本之間的相容性以及軟體產品與軟體和硬體環境間的相容
使用者易用性測試:指產品是否為使用者提供了友好的介面及易操作的介面
安裝測試:軟體產品安裝是指測試軟體在各種軟硬體環境組合下是否能正常地進行安裝、卸載,還包括取消安裝時的復原操作是否徹底、是否清楚了檔案系統和註冊表中的內容以及在安裝過程中出現異常(斷電、系統崩潰等),帶到系統重啟之後軟體產品是否可以重新安裝等。
25、系統測試的入口和出口條件?
26、使用者驗收測試
故名思意就是交付給使用者,讓使用者執行產品驗收測試階段
27、為什麼要對軟體進行使用者驗收測試?
可以實現在使用者環境中對產品規格說明進行驗收;
可以實現在使用者環境中對產品的使用者文檔進行驗收;
可以降低產品中的缺陷數量;
可以擷取 使用者關於產品功能、效能的反饋
28、如何開展使用者驗收測試?
使用者是企業內部人員的軟體項目
使用者是其他企業或團體的軟體項目
使用者是福士,如手機、免費郵箱,其使用者體驗測試就擴充成為Alpha測試和Beta測試
Alpha測試:指產品上市之前在公司內部進行的使用者體驗測試
Beta測試:指產品上市之前讓使用者或企業的夥伴進行使用者體驗測試的行為
29、使用者驗收測試驗證的是那個文檔?
在使用者環境中隊產品過個說明書進行驗證
30、如何開展使用者體驗測試?
31、使用者驗收測試的出口條件和允入準則是什嗎?
32、迴歸測試
當開發人員對軟體產品的極限版本做出任何改變是,測試人員針對這些改變進行的有針對性的測試活動
33、什麼是軟體的基準版本?
是軟體在開發過程中某一時刻的快照,在這一時刻的軟體產品的版本一定是一個穩定的版本,一定可以作為繼續再其上做開發的依據
34、為什麼要做迴歸測試?
驗證開發人員所承若修複的軟體缺陷是否已被正確修複;
驗證新的軟體修改是否影響了原有的穩定模組的正確性;
驗證新的軟體修改是否引入了新的缺陷;
驗證新的軟體版本是否穩定,從而成為新的極限版本,以備後續開發使用
35、什麼時候開始做迴歸測試?
36、怎麼做迴歸測試?
37、煙霧測試 (Smoke Test)
38、α、β、γ測試
39、效能測試 效能指標 負載測試
從本質上來說都是體現在對時間的利用和對資源的佔用上
40、常用的效能指標
軟體的交易處理效率;IO效能;資料庫效能;記憶體利用率;CPU利用率;時間與資源的使用效率
41、什麼是軟體的交易處理時間?
指軟體在處理某一項事務時,從開始處理到完成所花費的所有時間
42、什麼是軟體產品的IO效能?
通常包括物理硬碟的IO效能、網路的IO效能和其他硬體的IO效能
在需要大量進行讀寫硬碟操作的軟體產品中物理硬碟的IO效能很容易成為其瓶頸,例如多任務多線程的下載大量檔案等
衡量IO效能的指標是單位時間內讀寫資料的數量
43、什麼是資料庫效能?
指軟體在進行資料庫的尋找、添加、刪除、更新資料記錄時要同時對多張表進行操作
提高對資料庫效能的方式通常有:減少對資料庫操作的次數,把一些常用的資料長期儲存記憶體中;較少表與表之間的依賴性
44、什麼是資源使用率?
指軟體產品實際使用資源數量與所申請的資源總量之間的比例
記憶體空間利用率:即實際使用的記憶體空間和軟體所申請的資源總量之間的比例
CPU的利用率:即應用程式使用CPU時間與應用程式總的已耗用時間的比例
45、負載測試
通過對被測軟體產品進行各種方式的載入負荷以獲得被測產品在各種載入情況下的績效參數等資訊
46、負載測試的目的是什嗎?
47、何時進行負載測試?
48、負載測試需要做那些環境配置?
49、負載測試的載入策略有哪些?
安全性測試
相容性測試
易用性測試
本文出自 “零蛋蛋” 部落格,謝絕轉載!
軟體測試理論學習