?? 200603101655385.html
字號:
<html>
<head><title>黑盒測試</title></head>
<center><h1>黑盒測試</h1></center>
<div><P align=right><FONT face=Verdana><FONT color=#f70938><FONT face=黑體><a href="200604112229525.html" tppabs="http://www.itisedu.com/phrase/200604112229525.html" target="_new">中科永聯</a>高級技術培訓中心(</FONT><FONT face=黑體>www.itisedu.com</FONT><FONT face=黑體>)<IMG src="200632722346845.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/200632722346845.jpg" border=0></FONT></FONT></FONT></P>
<P><FONT face=Verdana> <a href="200603101655385.html" tppabs="http://www.itisedu.com/phrase/200603101655385.html" target="_new">黑盒測試</a>(<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604241202225.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604241202225.html'" tppabs="http://www.itisedu.com/phrase/200604241202225.html" target="_new">Black-box Testing</a>,又稱為<a href="200604241204115.html" tppabs="http://www.itisedu.com/phrase/200604241204115.html" target="_new">功能測試</a>或<a href="200604241204265.html" tppabs="http://www.itisedu.com/phrase/200604241204265.html" target="_new">數據驅動測試</a>)是把測試<a href="200603090845215.html" tppabs="http://www.itisedu.com/phrase/200603090845215.html" target="_new">對象</a>看作一個黑盒子。利用黑盒測試法進行動態測試時,需要測試<a href="200604232134205.html" tppabs="http://www.itisedu.com/phrase/200604232134205.html" target="_new">軟件</a>產品的功能,不需測試軟件產品的內部結構和處理過程。</FONT></P>
<P><FONT face=Verdana> 采用黑盒技術設計<a href="200603291707535.html" tppabs="http://www.itisedu.com/phrase/200603291707535.html" target="_new">測試用例</a>的方法有:等價<a href="200603090857555.html" tppabs="http://www.itisedu.com/phrase/200603090857555.html" target="_new">類</a>劃分、邊界值分析、錯誤推測、因果圖和綜合策略。 </FONT></P>
<P><FONT face=Verdana> 黑盒測試注重于測試軟件的功能性<a href="200603101518295.html" tppabs="http://www.itisedu.com/phrase/200603101518295.html" target="_new">需求</a>,也即黑盒測試使<a href="200602281725525.html" tppabs="http://www.itisedu.com/phrase/200602281725525.html" target="_new">軟件工程</a>師派生出執行<a href="200604232224305.html" tppabs="http://www.itisedu.com/phrase/200604232224305.html" target="_new">程序</a>所有功能需求的輸入條件。黑盒測試并不是<a href="200603101705575.html" tppabs="http://www.itisedu.com/phrase/200603101705575.html" target="_new">白盒測試</a>的替代品,而是用于輔助白盒測試發現其他<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">類型</a>的錯誤。</FONT></P>
<P><FONT face=Verdana> 黑盒測試試圖發現以下類型的錯誤:</FONT></P>
<P><FONT face=Verdana> 1)功能錯誤或遺漏;<BR> 2)界面錯誤;<BR> 3)數據結構或外部<a href="200602271218062.html" tppabs="http://www.itisedu.com/phrase/200602271218062.html" target="_new">數據庫</a>訪問錯誤;<BR> 4)性能錯誤;<BR> 5)初始化和終止錯誤。</FONT></P>
<P><FONT face=Verdana><STRONG>一、黑盒測試的測試<a href="200604240937105.html" tppabs="http://www.itisedu.com/phrase/200604240937105.html" target="_new">用例</a>設計方法</STRONG></FONT></P>
<P><FONT face=Verdana>·等價類劃分方法<BR>·邊界值分析方法<BR>·錯誤推測方法<BR>·因果圖方法<BR>·判定表驅動分析方法<BR>·正交實驗設計方法<BR>·功能圖分析方法</FONT></P>
<P><FONT face=Verdana><STRONG>等價類劃分:</STRONG></FONT></P>
<P><FONT face=Verdana> 是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例.該方法是一種重要的,常用的黑盒測試用例設計方法.</FONT></P>
<P><FONT face=Verdana> 1) 劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試數據.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.</FONT></P>
<P><FONT face=Verdana> 有效等價類:是指對于程序的規格說明來說是合理的,有意義的輸入數據構成的集合.利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能.</FONT></P>
<P><FONT face=Verdana> 無效等價類:與有效等價類的定義恰巧相反.</FONT></P>
<P><FONT face=Verdana> 設計測試用例時,要同時考慮這兩種等價類.因為,軟件不僅要能接收合理的數據,也要能經受意外的考驗.這樣的測試才能確保軟件具有更高的可靠性. </FONT></P>
<P><FONT face=Verdana>2)劃分等價類的方法:下面給出六條確定等價類的原則.</FONT></P>
<P><FONT face=Verdana> ①在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類.</FONT></P>
<P><FONT face=Verdana> ②在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類.</FONT></P>
<P><FONT face=Verdana> ③在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類.</FONT></P>
<P><FONT face=Verdana> ④在規定了輸入數據的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類.</FONT></P>
<P><FONT face=Verdana> ⑤在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則).</FONT></P>
<P><FONT face=Verdana> ⑥在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類.</FONT></P>
<P><FONT face=Verdana>3)設計測試用例:在確立了等價類后,可建立等價類表,列出所有劃分出的等價類:</FONT></P>
<P><FONT face=Verdana> 輸入條件 有效等價類 無效等價類</FONT></P>
<P><FONT face=Verdana> ... ... ...</FONT></P>
<P><FONT face=Verdana> ... ... ...</FONT></P>
<P><FONT face=Verdana> 然后從劃分出的等價類中按以下三個原則設計測試用例:</FONT></P>
<P><FONT face=Verdana> ①為每一個等價類規定一個唯一的編號.</FONT></P>
<P><FONT face=Verdana> ②設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步.直到所有的有效等價類都被覆蓋為止.</FONT></P>
<P><FONT face=Verdana> ③設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步.直到所有的無效等價類都被覆蓋為止.</FONT></P>
<P><FONT face=Verdana><STRONG>邊界值分析法</STRONG></FONT></P>
<P><FONT face=Verdana> 邊界值分析方法是對等價類劃分方法的補充.</FONT></P>
<P><FONT face=Verdana>(1)邊界值分析方法的考慮:</FONT></P>
<P><FONT face=Verdana> 長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.</FONT></P>
<P><FONT face=Verdana> 使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據.</FONT></P>
<P><FONT face=Verdana>(2)基于邊界值分析方法選擇測試用例的原則:</FONT></P>
<P><FONT face=Verdana> 1)如果輸入條件規定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數據.</FONT></P>
<P><FONT face=Verdana> 2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試數據.</FONT></P>
<P><FONT face=Verdana> 3)根據規格說明的每個輸出條件,使用前面的原則1).</FONT></P>
<P><FONT face=Verdana> 4)根據規格說明的每個輸出條件,應用前面的原則2).</FONT></P>
<P><FONT face=Verdana> 5)如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例.</FONT></P>
<P><FONT face=Verdana> 6)如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例.</FONT></P>
<P><FONT face=Verdana> 7)分析規格說明,找出其它可能的邊界條件.</FONT></P>
<P><FONT face=Verdana><STRONG>錯誤推測法</STRONG></FONT></P>
<P><FONT face=Verdana> 錯誤推測法: 基于經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.</FONT></P>
<P><FONT face=Verdana> 錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例. 例如, 在<a href="200602281036115.html" tppabs="http://www.itisedu.com/phrase/200602281036115.html" target="_new">單元測試</a>時曾列出的許多在模塊中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入數據和輸出數據為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作為測試用例.</FONT></P>
<P><FONT face=Verdana><STRONG>因果圖方法</STRONG></FONT></P>
<P><FONT face=Verdana> 前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型). </FONT></P>
<P><FONT face=Verdana> 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況. </FONT></P>
<P><FONT face=Verdana> 利用因果圖生成測試用例的基本步驟: </FONT></P>
<P><FONT face=Verdana> (1) 分析軟件規格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件), 并給每個原因和結果賦予一個標識符. </FONT></P>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -