- 相關(guān)推薦
軟件測(cè)試中筆試中不可遺忘的基礎(chǔ)知識(shí)
軟件測(cè)試是一項(xiàng)批判性的工作,目的就是找出軟件中的缺陷。這里暫時(shí)不去深究為什么要進(jìn)行軟件測(cè)試,以及軟件測(cè)試帶來的好處。只介紹軟件測(cè)試中一些基本的測(cè)試方法。根據(jù)是否查看代碼程序分為黑盒測(cè)試和白盒測(cè)試;根據(jù)是否運(yùn)行軟件又可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。
黑盒測(cè)試:又叫功能測(cè)試或行為測(cè)試,只需考慮各個(gè)功能,不需要考慮整個(gè)軟件的內(nèi)部結(jié)構(gòu)及代碼。
白盒測(cè)試:訪問代碼,通過檢查代碼的線索來協(xié)助測(cè)試。
靜態(tài)測(cè)試:測(cè)試軟件不運(yùn)行的部分,只是檢查和審核。
動(dòng)態(tài)測(cè)試:使用和運(yùn)行軟件進(jìn)行測(cè)試。
1、靜態(tài)黑盒測(cè)試:檢查產(chǎn)品說明書,并在軟件編寫之前找出問題
· 對(duì)產(chǎn)品說明書或軟件需求報(bào)告進(jìn)行高級(jí)審查:
(1)站在一個(gè)設(shè)計(jì)者的角度進(jìn)行審查,找出根本性問題或遺漏之處
(2)站在客戶(使用者)的角度來審查,因?yàn)檐浖|(zhì)量的定義是滿足客戶的需求
(3)研究現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范,可以是公司習(xí)慣用語和約定、行業(yè)要求、GUI、安全標(biāo)準(zhǔn);檢查所用標(biāo)準(zhǔn)是否正確、遺漏,是否與標(biāo)準(zhǔn)和規(guī)范相抵觸
(4)審查和測(cè)試類似軟件,檢查它的規(guī)模、復(fù)雜性、測(cè)試性、質(zhì)量和可靠性、安全性
· 對(duì)產(chǎn)品說明書或軟件需求報(bào)告進(jìn)行低層次測(cè)試:
一份優(yōu)秀的產(chǎn)品說明書或者需求報(bào)告:必須是完整、準(zhǔn)確、精確(不含糊、清晰)、一致、貼切、合理、代碼無關(guān)、可測(cè)試性
2、動(dòng)態(tài)黑盒測(cè)試:在不了解軟件如何工作的前提下進(jìn)行測(cè)試
兩種基本方法:通過性測(cè)試和失效性測(cè)試
選擇測(cè)試用例:等價(jià)類劃分:把軟件具有相似輸入,相似輸出,相似操作的分在一組。一個(gè)等價(jià)類或等價(jià)類劃分是指測(cè)試相同目標(biāo)或者暴露相同軟件缺陷的一組測(cè)試用例。
等價(jià)類劃分的目標(biāo):把可能的測(cè)試用例集縮減到可控制且仍然足以測(cè)試軟件的小范圍內(nèi)。
(1)測(cè)試數(shù)據(jù)
通過性測(cè)試:
a) 邊界條件:軟件運(yùn)行在計(jì)劃操作界限的邊界情況。測(cè)試邊界包括測(cè)試臨近邊界的有效數(shù)據(jù)、測(cè)試最后一個(gè)可能有效的數(shù)據(jù)、測(cè)試剛超過邊界的無效數(shù)據(jù)。
b)次邊界條件:典型的次邊界條件:2的冪、ASCII表
c)測(cè)試默認(rèn)、空白、空值、零值和無這些數(shù)據(jù)
失效性測(cè)試:
d)測(cè)試非法、錯(cuò)誤、不正確和垃圾數(shù)據(jù)
(2)測(cè)試狀態(tài)
軟件狀態(tài):軟件當(dāng)前所處的條件或者模式。
狀態(tài)測(cè)試:測(cè)試程序的狀態(tài)及其轉(zhuǎn)換。
步驟:1)建立狀態(tài)轉(zhuǎn)換圖
2)減少要測(cè)試的狀態(tài)及其轉(zhuǎn)換的數(shù)量
a. 每一種狀態(tài)至少訪問一次
b. 測(cè)試狀態(tài)之間最不常用的分支
c. 測(cè)試所有錯(cuò)誤狀態(tài)及其返回值
d. 測(cè)試隨機(jī)狀態(tài)轉(zhuǎn)換
e. 測(cè)試看起來是最常見和普遍的狀態(tài)轉(zhuǎn)換
通過性狀態(tài)測(cè)試:審查軟件,描繪狀態(tài),嘗試各種合法可能性,確認(rèn)狀態(tài)及其轉(zhuǎn)換正常。
失效性狀態(tài)測(cè)試:競(jìng)爭(zhēng)條件、重復(fù)(檢查內(nèi)存泄漏)、壓迫(在不夠理想條件下運(yùn)行:內(nèi)存小,磁盤空間少...盡量限制軟件的必要條件)、重負(fù)(提供條件任其發(fā)揮)。
3、靜態(tài)白盒測(cè)試:在不執(zhí)行軟件的條件下有條理地仔細(xì)審查軟件設(shè)計(jì)、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過程
(1) 編碼標(biāo)準(zhǔn)和規(guī)范:可靠性、可讀性/可維護(hù)性、可移植性
(2)通用代碼審查清單:
a. 數(shù)據(jù)引用錯(cuò)誤 -> 緩存區(qū)溢出
b. 數(shù)據(jù)聲明錯(cuò)誤 <- 不正確地聲明和使用變量和常量
c. 計(jì)算錯(cuò)誤
d. 比較錯(cuò)誤 <- 邊界條件問題
e. 控制流程錯(cuò)誤 <- 循環(huán)等控制結(jié)構(gòu)未按預(yù)期方式工作,由計(jì)算或比較錯(cuò)誤間接引起
f. 子程序參數(shù)錯(cuò)誤 <- 子程序不正確地傳遞數(shù)據(jù)
g. 輸入/輸出錯(cuò)誤
h. 其他檢查 -> 編碼、可移植、兼容
4、動(dòng)態(tài)白盒測(cè)試:結(jié)構(gòu)化測(cè)試,檢查代碼并觀察運(yùn)行狀況,利用查找代碼功能和實(shí)現(xiàn)方式得到的信息來確定哪些需要測(cè)試,哪些不需要,如何開展測(cè)試,包括如下內(nèi)容:
(1) 直接測(cè)試底層函數(shù)過程,子程序和庫(kù)(API)
(2) 以完整程序的方式從頂層測(cè)試軟件,根據(jù)對(duì)軟件運(yùn)行的了解調(diào)整測(cè)試用例
(3)從軟件獲得讀取變量和狀態(tài)信息的訪問權(quán),確定測(cè)試與預(yù)期結(jié)果是否相符,強(qiáng)制軟件以正常測(cè)試難以實(shí)現(xiàn)的方式運(yùn)行
(4) 估算執(zhí)行測(cè)試時(shí)命中的代碼量和具體代碼,調(diào)整測(cè)試,去掉多余的測(cè)試用例,補(bǔ)充遺漏的用例
動(dòng)態(tài)白盒測(cè)試與調(diào)試的區(qū)別:都包括處理軟件缺陷和查看代碼的過程,但是它們的目標(biāo)不同:測(cè)試的目標(biāo)是尋找軟件缺陷;調(diào)試的目標(biāo)是修復(fù)缺陷
測(cè)試方法:分段測(cè)試(單元測(cè)試和集成測(cè)試)、數(shù)據(jù)覆蓋、代碼覆蓋
數(shù)據(jù)覆蓋:
數(shù)據(jù)流覆蓋,在軟件中完全跟蹤一批數(shù)據(jù)。
次邊界:與動(dòng)態(tài)黑盒測(cè)試類似。
公式和等式:類似除法運(yùn)算中,考慮除數(shù)為0的情況。
錯(cuò)誤強(qiáng)制:迫使軟件中的所有錯(cuò)誤提示信息顯示出來。
代碼覆蓋:測(cè)試程序的狀態(tài)以及程序的流程,設(shè)法進(jìn)入和退出每一個(gè)模塊,執(zhí)行每一行代碼,進(jìn)入軟件每一條邏輯和決策分支
代碼覆蓋包括:程序語句和代碼行覆蓋、分支覆蓋(比如判斷語句中if分支和else分支)、條件覆蓋(一個(gè)條件中可能包含幾個(gè)子條件,要覆蓋每一個(gè)子條件及它們的組合)。
軟件測(cè)試其實(shí)就是在用戶之前使用和運(yùn)行軟件,盡早找出軟件中存在缺陷。我們不可能對(duì)軟件進(jìn)行完全測(cè)試,只可能在測(cè)試有限的用例后使得軟件仍然存在bug的概率盡可能小。以上所述僅僅只是一點(diǎn)皮毛,軟件測(cè)試覆蓋的知識(shí)面很廣,需要學(xué)習(xí)的還有很多!
【軟件測(cè)試中筆試中不可遺忘的基礎(chǔ)知識(shí)】相關(guān)文章:
軟件測(cè)試筆試題11-03
中糧筆試11-06
中金筆試11-06
軟件測(cè)試筆試題目12-11
軟件測(cè)試筆試題及答案02-10
軟件測(cè)試筆試題201511-24
中興軟件測(cè)試筆試題11-02
軟件測(cè)試筆試題及答案02-21
軟件測(cè)試筆試題目分享07-06
軟件測(cè)試筆試題及答案下載02-24