從因果圖生成的測試用例(局部,組合關系下的)包括了所有輸入數據的取TRUE與取FALSE的情況,構成的測試用例數目達到最少,且測試用例數目隨輸入數據數目的增加而線性地增加.
前面因果圖方法中已經用到了判定表.判定表(Decision Table)是分析和表達多邏輯條件下執行不同操作的情況下的工具.在程序設計發展的初期,判定表就已被當作編寫程序的輔助工具了.由于它可以把復雜的邏輯關系和多種條件組合的情況表達得既具體又明確.
判定表通常由四個部分組成.
條件樁(Condition Stub):列出了問題得所有條件.通常認為列出得條件的次序無關緊要.
動作樁(Action Stub):列出了問題規定可能采取的操作.這些操作的排列順序沒有約束.
條件項(Condition Entry):列出針對它左列條件的取值.在所有可能情況下的真假值.
動作項(Action Entry):列出在條件項的各種取值情況下應該采取的動作.
規則:任何一個條件組合的特定取值及其相應要執行的操作.在判定表中貫穿條件項和動作項的一列就是一條規則.顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列.
判定表的建立步驟:(根據軟件規格說明)
?、俅_定規則的個數.假如有n個條件.每個條件有兩個取值(0,1),故有 種規則.
?、诹谐鏊械臈l件樁和動作樁.
?、厶钊霔l件項.
?、芴钊雱幼黜?等到初始判定表.
?、莺喕?合并相似規則(相同動作).
B. Beizer 指出了適合使用判定表設計測試用例的條件:
?、僖幐裾f明以判定表形式給出,或很容易轉換成判定表.
?、跅l件的排列順序不會也不影響執行哪些操作.
?、垡巹t的排列順序不會也不影響執行哪些操作.
?、苊慨斈骋灰巹t的條件已經滿足,并確定要執行的操作后,不必檢驗別的規則.
?、萑绻骋灰巹t得到滿足要執行多個操作,這些操作的執行順序無關緊要.
>>>---------我想分頁!--這么長的文章,在這里來個分頁多好啊!哈哈----------<<<
引用內容
《軟件測試的14種類型》
作者:啄木鳥(Sawin網站)
軟件測試是指使用人工或者自動的手段來運行或測定某個軟件產品系統的過程,其目的是在于檢驗是否滿足規定的需求或者弄清預期的結果與實際結果的區別。本文主要描述軟件測試的類型。
1 數據和數據庫完整性測試
數據與數據庫完整測試是指測試關系型數據庫完整性原則以及數據合理性測試。
數據庫完整性原即:
主碼完整性:主碼不能為空;
外碼完整性:外碼必須等于對應的主碼或者為空。
數據合理性指數據在數據庫中的類型,長度,索引等是否建的比較合理。
在項目名稱中,數據庫和數據庫進程應作為一個子系統來進行測試。在測試這些子系統時,不應將測試對象的用戶界面用作數據的接口。對于數據庫管理系統 (DBMS),還需要進行深入的研究,以確定可以支1持測試的工具和技術。
比如,有兩張表:部門和員工。部門中有部門編號,部門名稱,部門經理等字段,主碼為部門編號;員工表中有員工編號,員工所屬部門編號,員工名稱,員工類型等字段,主碼為員工編號,外碼為員工所屬部門編號,對應部門表。如果在某條部門記錄中部門編號或員工記錄員工編號為空,他就違反主碼完整性原則。如果某個員工所屬部門的編號為##,但是##在部門編號中確找不到,這就違反外碼完整性原則。
員工類型如下定義:0:職工,1:職員,2:實習生。但數據類型為Int,我們都知道Int占有4個字節,如果定義成char(1).就比原來節約空間。
2 白盒測試
白盒測試是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發工具中的單步調試來判斷軟件的質量,一般黑盒測試由項目經理在程序員開發中來實現。白盒測試分為動態白盒測試和靜態白盒測試
2.1 靜態白盒測試
利用眼睛,瀏覽代碼,憑借經驗,找出代碼中的錯誤或者代碼中不符合書寫規范的地方。比如,代碼規范中規定,函數必須為動賓結構。而黑盒測試發現一個函數定義如下:
Function NameGet(){
….
}
這是屬于不符合開發規范的錯誤。
有這樣一段代碼:
if (i<0) & (i>=0)
…
這段代碼交集為整個數軸,IF語句沒有必要
I=0;
while(I>100){
J=J+100;
T=J*PI;
}
在循環體內沒有I的增加,bug產生。
2.2 動態白盒測試
利用開發工具中的調式工具進行測試。比如一段代碼有4個分支,輸入4組不同的測試數據使4組分支都可以走通而且結果必須正確。
看一段代碼
if(I<0){
P1
}else{
P2
}
在調試中輸入I=-1,P1程序段通過, P2程序段未通過,屬于動態黑盒測試的缺陷
3.功能測試
功能測試指測試軟件各個功能模塊是否正確,邏輯是否正確。
對測試對象的功能測試應側重于所有可直接追蹤到用例或業務功能和業務規則的測試需求。這種測試的目標是核實數據的接受、處理和檢索是否正確,以及業務規則的實施是否恰當。此類測試基于黑盒技術,該技術通過圖形用戶界面 (GUI) 與應用程序進行交互,并對交互的輸出或結果進行分析,以此來核實應用程序及其內部進程。功能測試的主要參考為類似于功能說明書之類的文檔。
比如一個對電子商務系統,前臺用戶瀏覽商品-放入購物車-進入結賬臺,后臺處理訂單,配貨,付款,發貨,這一系列流程必須正確無誤的走通,不能存在任何的錯誤。
4.UI測試
UI測試指測試用戶界面的風格是否滿足客戶要求,文字是否正確,頁面美工是否好看,文字,圖片組合是否完美,背景是否美觀,操作是否友好等等
用戶界面 (UI) 測試用于核實用戶與軟件之間的交互。UI 測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覽功能。另外,UI 測試還可確保 UI 中的對象按照預期的方式運行,并符合公司或行業的標準。包括用戶友好性,人性化,易操作性測試。UI測試比較主觀,與測試人員的喜好有關
比如:頁面基調顏色刺眼;用戶登入頁面比較難于找到,文字中出現錯別字,頁面圖片范圍太廣等都屬于UI測試中的缺陷,但是這些缺陷都不太嚴重。
2 軟件測試的14種類型
5.性能測試
性能測試主要測試軟件測試的性能,包括負載測試,強度測試,數據庫容量測試,基準測試以及基準測試
5.1負載測試
負載測試是一種性能測試指數據在超負荷環境中運行,程序是否能夠承擔。
在這種測試中,將使測試對象承擔不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續正常運行的能力。負載測試的目標是確定并確保系統在超出最大預期工作量的情況下仍能正常運行。此外,負載測試還要評估性能特征,例如,響應時間、事務處理速率和其他與時間相關的方面。
比如,在B/S結構中用戶并發量測試就是屬于負載測試的用戶,可以使用webload工具,模擬上百人客戶同時訪問網站,看系統響應時間,處理速度如何?
5.2強度測試
強度測試是一種性能測試,他在系統資源特別低的情況下軟件系統運行情況。這類測試往往可以書寫系統要求的軟硬件水平要求。
實施和執行此類測試的目的是找出因資源不足或資源爭用而導致的錯誤。如果內存或磁盤空間不足,測試對象就可能會表現出一些在正常條件下并不明顯的缺陷。而其他缺陷則可能由于爭用共享資源(如數據庫鎖或網絡帶寬)而造成的。強度測試還可用于確定測試對象能夠處理的最大工作量。
比如:一個系統在內存366M下可以正常運行,但是降低到258M下不可以運行,告訴內存不足,這個系統對內存的要求就是366M。
5.3數據庫容量測試
數據庫容量測試指通過存儲過程往數據庫表中插入一定數量的數據,看看相關頁面是否能夠及時顯示數據。
數據庫容量測試使測試對象處理大量的數據,以確定是否達到了將使軟件發生故障的極限。容量測試還將確定測試對象在給定時間內能夠持續處理的最大負載或工作量。例如,如果測試對象正在為生成一份報表而處理一組數據庫記錄,那么容量測試就會使用一個大型的測試數據庫,檢驗該軟件是否正常運行并生成了正確的報表。做這種測試通常通過書寫存儲過程向數據庫某個表中插入一定數量的記錄,計算相關頁面的調用時間。
比如,在電子商務系統中,通過insert customer 往user表中插入10 000數據,看其是否可以正常顯示顧客信息列表頁面,如果要求達到最多可以處理100 000個客戶,但是顧客信息列表頁面不能夠在規定的時間內顯示出來,就需要調整程序中的SQL查詢語句;如果在規定的時間內顯示出來,可以將用戶數分別提高到20 000 , 50 000, 100 000進行測試。
5.4基準測試
基準測試與已知現有的系統進行比較,主要檢驗是否與類似的產品具有競爭性的一種測試。
如果你要開發一套財務系統軟件并且你已經獲得用友財務系統的性能等數據,你可以測試你這套系統,看看哪些地方比用友財務系統好,哪些地方差?以便改進自己的系統,也可為產品廣告提供數據。
5.5競爭測試
軟件競爭使用各種資源(數據紀錄,內存等),看他與其他相關系統對資源的爭奪能力。比如:一臺機器上即安裝您的財務系統,又安裝用友財務系統。當CPU占有率下降后,看看是否能夠強過用友財務系統,而是自己的系統能夠正常運行?
6. 安全性和訪問控制測試
安全性和訪問控制測試側重于安全性的兩個關鍵方面:
應用程序級別的安全性,包括對數據或業務功能的訪問
系統級別的安全性,包括對系統的登錄或遠程訪問。
6.1應用程序級別的安全性
可確保:在預期的安全性情況下,主角只能訪問特定的功能或用例,或者只能訪問有限的數據。例如,可能會允許所有人輸入數據,創建新賬戶,但只有管理員才能刪除這些數據或賬戶。如果具有數據級別的安全性,測試就可確保“用戶類型一”能夠看到所有客戶消息(包括財務數據),而“用戶二”只能看見同一客戶的統計數據。
比如B/S系統,不通過登入頁面,直接輸入URL,看其是否能夠進入系統?
6.2系統級別的安全性
可確保只有具備系統訪問權限的用戶才能訪問應用程序,而且只能通過相應的網關來訪問。
3 軟件測試的14種類型
比如輸入管理員賬戶,檢查其密碼是否容易猜取,或者可以從數據庫中獲得?
原文轉自:http://www.anti-gravitydesign.com