白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。
這一方法是把測試對象看作一個打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。白盒測試的測試方法總體上分為靜態(tài)方法和動態(tài)方法兩大類。強度由低到高有語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋。
1、語句覆蓋,就是設(shè)計若干個測試用例,運行被測程序,使得每一可執(zhí)行語句至少執(zhí)行一次。
2、判定覆蓋,使設(shè)計的測試用例保證程序中每個判斷的每個取值分支(t or f)至少經(jīng)歷一次,判定覆蓋具有比語句覆蓋更強的測試能力,而且具有和語句覆蓋一樣的簡單性,無需細(xì)分每個判定就可以得到測試用例。
3、條件覆蓋。條件覆蓋是指選擇足夠的測試用例,使得運行這些測試用例時,判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,但未必能覆蓋全部分支,條件覆蓋要檢查每個符合謂詞的子表達(dá)式值為真和假兩種情況,要獨立衡量每個子表達(dá)式的結(jié)果,以確保每個子表達(dá)式的值為真和假兩種情況都被測試到。
4、判定條件覆蓋,就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能判斷結(jié)果至少執(zhí)行,即要求各個判斷的所有可能的條件取值組合至少執(zhí)行一次。
5、條件組合覆蓋,在白盒測試法中,選擇足夠的測試用例,使所有判定中各條件判斷結(jié)果的所有組合至少出現(xiàn)一次,滿足這種覆蓋標(biāo)準(zhǔn)成為條件組合覆蓋。
6、路徑覆蓋,是每條可能執(zhí)行到的路徑至少執(zhí)行一次。 語句覆蓋是一種最弱的覆蓋,判定覆蓋和條件覆蓋比語句覆蓋強,滿足判定/條件覆蓋標(biāo)準(zhǔn)的測試用例一定也滿足判定覆蓋、條件覆蓋和語句覆蓋,條件組合覆蓋是除路徑覆蓋外最強的,路徑覆蓋也是一種比較強的覆蓋,但未必考慮判定條件結(jié)果的組合,并不能代替條件覆蓋和條件組合覆蓋。 白盒測試作用,通過檢查軟件內(nèi)部的邏輯結(jié)構(gòu),對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設(shè)立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預(yù)期狀態(tài)是否一致。
接口測試也分白盒跟黑盒,單元測試階段有很多開發(fā)測試工程師做接口測試,也就是白盒測試,。大集成后就是黑盒測試,耍是有開發(fā)功底的話,就可以直接寫數(shù)據(jù)測試接口。
軟件測試的兩個方面而已。 白盒測試:是通過程序的源代碼進行測試而不使用用戶界面。這種類型的測試需要從代碼句法發(fā)現(xiàn)內(nèi)部代碼在算法,溢出,路徑,條件等等中的缺點或者錯誤,進而加以修正。 黑盒測試:是通過使用整個軟件或某種軟件功能來嚴(yán)格地測試, 而并沒有通過檢查程序的源代碼或者很清楚地了解該軟件的源代碼程序具體是怎樣設(shè)計的。測試人員通過輸入他們的數(shù)據(jù)然后看輸出的結(jié)果從而了解軟件怎樣工作。在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求 規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蘸驼_的輸出
首先糾正 這個問題不屬于“硬件”類的
什么是黑盒測試和白盒測試?
任何工程產(chǎn)品(注意是任何工程產(chǎn)品)都可以使用以下兩種方法之一進行測試。
黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能是否符合要求。
白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過檢查。
軟件的黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?
3、是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?
軟件的白盒測試是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。
4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。
以上事實說明,有一個致命的缺陷,即測試的不完全、不徹底性。由于任何程序只能進行少量(相對于窮舉的巨大數(shù)量而言)的有限的測試,在未發(fā)現(xiàn)錯誤時,不能說明程序中沒有錯誤。
黑盒測試是從一種從軟件外部對軟件實施的測試,也稱功能測試或基于規(guī)格說明的測試。其基本觀點是:任何程序都可以看作是從輸入定義域到輸出值域的映射,這種觀點將被測程序看作一個打不開的黑盒,黑盒里面的內(nèi)容(實現(xiàn))是完全不知道的,只知道軟件要做什么。因無法看到盒子中的內(nèi)容,所以不知道軟件是如何實現(xiàn)的,也不關(guān)心黑盒里面的結(jié)構(gòu),只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果。
白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能。
關(guān)注優(yōu)就業(yè),學(xué)習(xí)更多IT知識。
黑盒法:該方法是把被測試對象看成一個黑盒子,測試人員完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程.只在軟件的接口處進行測試,根據(jù)需求規(guī)格說明書.檢查程序是否滿足功能要求.因此黑盒測試有稱為功能測試或數(shù)據(jù)驅(qū)動測試/白盒法:該方法是把測試對象看作一個打開的盒子,測試人員須了解程序的內(nèi)部結(jié)構(gòu)和處理過程,一檢查處理過程的細(xì)節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行狀態(tài)與預(yù)期的狀態(tài)是否一致.
白盒測試和黑盒測試的根本區(qū)別就是白盒測試要看代碼,而黑盒測試就不需要了。在手機中的測試中也是一樣的。在手機的白盒測試中你還要看它是什么語言的什么平臺,工具的使用,這些都是必不可少的。手機的黑盒測試就查看需求是否覆蓋、功能是否實現(xiàn)。
軟件測試的兩個方面而已。
白盒測試:是通過程序的源代碼進行測試而不使用用戶界面。這種類型的測試需要從代碼句法發(fā)現(xiàn)內(nèi)部代碼在算法,溢出,路徑,條件等等中的缺點或者錯誤,進而加以修正。
黑盒測試:是通過使用整個軟件或某種軟件功能來嚴(yán)格地測試, 而并沒有通過檢查程序的源代碼或者很清楚地了解該軟件的源代碼程序具體是怎樣設(shè)計的。
測試人員通過輸入他們的數(shù)據(jù)然后看輸出的結(jié)果從而了解軟件怎樣工作。
在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求 規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蘸驼_的輸出
任何軟件產(chǎn)品都可以用:白盒測試和黑盒測試的方式進行測試。
下邊簡述下白盒測試、黑盒測試的概念。白盒測試:明確,或者知道軟件產(chǎn)品的內(nèi)部工作過程及機制,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,以及檢查所有內(nèi)部流程是否通過檢查。黑盒測試:明確,或者知道軟件產(chǎn)品的功能,設(shè)計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能是否符合要求。黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。