黑盒測試與白盒測試區別
黑盒測試
黑盒測試也稱(chēng)功能測試或數據驅動(dòng)測試,它是在已知產(chǎn)品所應具有的功能,通過(guò)測試來(lái)檢測每個(gè)功能是否都能正常使用,在測試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規格說(shuō)明書(shū)的規定正常使用,程序是否能適當地接收輸入數鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。黑盒測試方法主要有等價(jià)類(lèi)劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒”法著(zhù)眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進(jìn)行測試?!昂诤小狈ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實(shí)際上測試情況有無(wú)窮多個(gè),人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。
白盒測試
白盒測試也稱(chēng)結構測試或邏輯驅動(dòng)測試,它是知道產(chǎn)品內部工作過(guò)程,可通過(guò)測試來(lái)檢測產(chǎn)品內部動(dòng)作是否按照規格說(shuō)明書(shū)的規定正常進(jìn)行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動(dòng)、基路測試等,主要用于軟件驗證。
“白盒”法全面了解程序內部邏輯結構、對所有邏輯路徑進(jìn)行測試?!鞍缀小狈ㄊ歉F舉路徑測試。在使用這一方案時(shí),測試者必須檢查程序的內部結構,從檢查程序的邏輯著(zhù)手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規范,即程序本身是個(gè)錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現不了一些與數據相關(guān)的錯誤。
軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查:
– 對程序模塊的所有獨立的執行路徑至少測試一次;
– 對所有的邏輯判定,取 “ 真 ” 與取 “ 假 ” 的兩種情況都至少測試一次;
– 在循環(huán)的邊界和運行界限內執行循環(huán)體;
– 測試內部數據結構的有效性,等。
具體包含的邏輯覆蓋有: – 語(yǔ)句覆蓋 – 判定覆蓋 – 條件覆蓋 – 判定-條件覆蓋 – 條件組合覆蓋 – 路徑覆蓋。
白盒測試技術(shù)(White Box Testing) : 深入到代碼一級的測試,使用這種技術(shù)發(fā)現問(wèn)題最早,效果也是最好的。該技術(shù)主要的特征是測試對象進(jìn)入了代碼內部,根據開(kāi)發(fā)人員對代碼和對程序的熟悉程度,對有需要的部分進(jìn)行在軟件編碼階段,開(kāi)發(fā)人員根據自己對代碼的理解和接觸所進(jìn)行的軟件測試叫做白盒測試。這一階段測試以軟件開(kāi)發(fā)人員為主,在 JAVA 平臺使用 Xunit 系列工具進(jìn)行測試, Xunit 測試工具是類(lèi)一級的測試工具對每一個(gè)類(lèi)和該類(lèi)的方法進(jìn)行測試。
黑盒測試技術(shù)( Black Box Testing ):黑盒測試的內容主要有以下幾個(gè)方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結合兼容,性能測試等方面進(jìn)行,根據軟件需求,設計文檔,模擬客戶(hù)場(chǎng)景隨系統進(jìn)行實(shí)際的測試,這種測試技術(shù)是使用最多的測試技術(shù)涵蓋了測試的方方面面,可以考慮以下方面
c正確性 (Correctness) :計算結果,命名等方面。
d可用性 (Usability) :是否可以滿(mǎn)足軟件的需求說(shuō)明。
e邊界條件 (Boundary Condition) :輸入部分的邊界值,就是使用一般書(shū)中說(shuō)的等價(jià)類(lèi)劃分,試試最大最小和非法數據等等。
f性能 (Performance) : 正常使用的時(shí)間內系統完成一個(gè)任務(wù)需要的時(shí)間,多人同時(shí)使用的時(shí)候響應時(shí)間在可以接受范圍內。 J2EE 技術(shù)實(shí)現的系統在性能方面更是需要照顧的,一般原則是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影響易用性了。如果在測試過(guò)程中發(fā)現性能問(wèn)題,修復起來(lái)是非常艱難的,因為這常常意味著(zhù)程序的算法不好,結構不好,或者設計有問(wèn)題。因此在產(chǎn)品開(kāi)發(fā)的開(kāi)始階段,就要考慮到軟件的性能問(wèn)題
g壓力測試 (Stress) : 多用戶(hù)情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來(lái)進(jìn)行。如果有負載平衡的話(huà)還要在服務(wù)器端打開(kāi)監測工具 , 查看服務(wù)器 CPU 使用率,內存占用情況,如果有必要可以模擬大量數據輸入,對硬盤(pán)的影響等等信息。如果有必要的話(huà)必須進(jìn)行性能優(yōu)化 ( 軟硬件都可以 ) 。這里的壓力測試針對的是某幾項功能。
h錯誤恢復 (Error Recovery) :錯誤處理,頁(yè)面數據驗證,包括突然間斷電,輸入臟數據等。
i安全性測試 (Security) :這個(gè)領(lǐng)域正在研究中,防火墻、補丁包、殺毒軟件等的就不必說(shuō)了,不過(guò)可以考慮。破壞性測試時(shí)任意看了一些資料后得知 , 這里面設計到的知識 內容可以寫(xiě)本書(shū)了 , 不是一兩句可以說(shuō)清的,特別是一些商務(wù)網(wǎng)站,或者跟錢(qián)有關(guān),或者和公司秘密有關(guān)的 web 更是需要這方面的測試,在外國有一種專(zhuān)門(mén)干這一行的人叫安全顧問(wèn),可以審核代碼,提出安全建議,出現緊急事件時(shí)的處理辦法等,在國內沒(méi)有聽(tīng)說(shuō)哪里有專(zhuān)門(mén)搞安全技術(shù)測試的內容。
j 兼容性 (Compatibility) :不同瀏覽器,不同應用程序版本在實(shí)現功能時(shí)的表現不同的上網(wǎng)方式,如果你測試的是一個(gè)公共網(wǎng)站的話(huà)。
黑盒測試也稱(chēng)功能測試或數據驅動(dòng)測試,它是在已知產(chǎn)品所應具有的功能,通過(guò)測試來(lái)檢測每個(gè)功能是否都能正常使用,在測試時(shí),把程序看作一個(gè)不能打開(kāi)的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規格說(shuō)明書(shū)的規定正常使用,程序是否能適當地接收輸入數鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。黑盒測試方法主要有等價(jià)類(lèi)劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒”法著(zhù)眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進(jìn)行測試?!昂诤小狈ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實(shí)際上測試情況有無(wú)窮多個(gè),人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。
白盒測試
白盒測試也稱(chēng)結構測試或邏輯驅動(dòng)測試,它是知道產(chǎn)品內部工作過(guò)程,可通過(guò)測試來(lái)檢測產(chǎn)品內部動(dòng)作是否按照規格說(shuō)明書(shū)的規定正常進(jìn)行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動(dòng)、基路測試等,主要用于軟件驗證。
“白盒”法全面了解程序內部邏輯結構、對所有邏輯路徑進(jìn)行測試?!鞍缀小狈ㄊ歉F舉路徑測試。在使用這一方案時(shí),測試者必須檢查程序的內部結構,從檢查程序的邏輯著(zhù)手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規范,即程序本身是個(gè)錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現不了一些與數據相關(guān)的錯誤。
軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查:
– 對程序模塊的所有獨立的執行路徑至少測試一次;
– 對所有的邏輯判定,取 “ 真 ” 與取 “ 假 ” 的兩種情況都至少測試一次;
– 在循環(huán)的邊界和運行界限內執行循環(huán)體;
– 測試內部數據結構的有效性,等。
具體包含的邏輯覆蓋有: – 語(yǔ)句覆蓋 – 判定覆蓋 – 條件覆蓋 – 判定-條件覆蓋 – 條件組合覆蓋 – 路徑覆蓋。
白盒測試技術(shù)(White Box Testing) : 深入到代碼一級的測試,使用這種技術(shù)發(fā)現問(wèn)題最早,效果也是最好的。該技術(shù)主要的特征是測試對象進(jìn)入了代碼內部,根據開(kāi)發(fā)人員對代碼和對程序的熟悉程度,對有需要的部分進(jìn)行在軟件編碼階段,開(kāi)發(fā)人員根據自己對代碼的理解和接觸所進(jìn)行的軟件測試叫做白盒測試。這一階段測試以軟件開(kāi)發(fā)人員為主,在 JAVA 平臺使用 Xunit 系列工具進(jìn)行測試, Xunit 測試工具是類(lèi)一級的測試工具對每一個(gè)類(lèi)和該類(lèi)的方法進(jìn)行測試。
黑盒測試技術(shù)( Black Box Testing ):黑盒測試的內容主要有以下幾個(gè)方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結合兼容,性能測試等方面進(jìn)行,根據軟件需求,設計文檔,模擬客戶(hù)場(chǎng)景隨系統進(jìn)行實(shí)際的測試,這種測試技術(shù)是使用最多的測試技術(shù)涵蓋了測試的方方面面,可以考慮以下方面
c正確性 (Correctness) :計算結果,命名等方面。
d可用性 (Usability) :是否可以滿(mǎn)足軟件的需求說(shuō)明。
e邊界條件 (Boundary Condition) :輸入部分的邊界值,就是使用一般書(shū)中說(shuō)的等價(jià)類(lèi)劃分,試試最大最小和非法數據等等。
f性能 (Performance) : 正常使用的時(shí)間內系統完成一個(gè)任務(wù)需要的時(shí)間,多人同時(shí)使用的時(shí)候響應時(shí)間在可以接受范圍內。 J2EE 技術(shù)實(shí)現的系統在性能方面更是需要照顧的,一般原則是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影響易用性了。如果在測試過(guò)程中發(fā)現性能問(wèn)題,修復起來(lái)是非常艱難的,因為這常常意味著(zhù)程序的算法不好,結構不好,或者設計有問(wèn)題。因此在產(chǎn)品開(kāi)發(fā)的開(kāi)始階段,就要考慮到軟件的性能問(wèn)題
g壓力測試 (Stress) : 多用戶(hù)情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來(lái)進(jìn)行。如果有負載平衡的話(huà)還要在服務(wù)器端打開(kāi)監測工具 , 查看服務(wù)器 CPU 使用率,內存占用情況,如果有必要可以模擬大量數據輸入,對硬盤(pán)的影響等等信息。如果有必要的話(huà)必須進(jìn)行性能優(yōu)化 ( 軟硬件都可以 ) 。這里的壓力測試針對的是某幾項功能。
h錯誤恢復 (Error Recovery) :錯誤處理,頁(yè)面數據驗證,包括突然間斷電,輸入臟數據等。
i安全性測試 (Security) :這個(gè)領(lǐng)域正在研究中,防火墻、補丁包、殺毒軟件等的就不必說(shuō)了,不過(guò)可以考慮。破壞性測試時(shí)任意看了一些資料后得知 , 這里面設計到的知識 內容可以寫(xiě)本書(shū)了 , 不是一兩句可以說(shuō)清的,特別是一些商務(wù)網(wǎng)站,或者跟錢(qián)有關(guān),或者和公司秘密有關(guān)的 web 更是需要這方面的測試,在外國有一種專(zhuān)門(mén)干這一行的人叫安全顧問(wèn),可以審核代碼,提出安全建議,出現緊急事件時(shí)的處理辦法等,在國內沒(méi)有聽(tīng)說(shuō)哪里有專(zhuān)門(mén)搞安全技術(shù)測試的內容。
j 兼容性 (Compatibility) :不同瀏覽器,不同應用程序版本在實(shí)現功能時(shí)的表現不同的上網(wǎng)方式,如果你測試的是一個(gè)公共網(wǎng)站的話(huà)。
評論