需求測(cè)試用例通常是按照需求執(zhí)行的功能逐條地編寫輸入數(shù)據(jù)和期望輸出。一個(gè)好的需求用例是可以用少量的測(cè)試用例就能夠覆蓋所有的程序功能! ≡O(shè)計(jì)測(cè)試用例檢測(cè)的是代碼和設(shè)計(jì)是否完全相符。是對(duì)底層設(shè)計(jì)和基本結(jié)構(gòu)上的測(cè)試。設(shè)計(jì)測(cè)試用例可以涉及到需求測(cè)試用例沒有覆蓋到的代碼空間(例如界面的設(shè)計(jì))。
代碼測(cè)試用例是基于運(yùn)行軟件和數(shù)據(jù)結(jié)構(gòu)上的。它要保證可以覆蓋所有的程序分支、最小的語句和輸出。
以上三種用例所用的數(shù)據(jù)又可分為正常數(shù)據(jù)、邊緣數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)。
*正常數(shù)據(jù):在測(cè)試中所用的正常數(shù)據(jù)的量是最大的,而且也是最關(guān)鍵的。少量的測(cè)試數(shù)據(jù)不能完全覆蓋需求,但我們要從中提取出一些具有高度代表性的數(shù)據(jù)作為測(cè)試數(shù)據(jù),以減少測(cè)試時(shí)間。
*邊緣數(shù)據(jù):邊緣測(cè)試是界于正常數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)之間的一種數(shù)據(jù)。它可以針對(duì)某一種編程語言、編程環(huán)境或特定的數(shù)據(jù)庫而專門設(shè)定。例如若使用SQL Server數(shù)據(jù)庫,則可把SQL Server關(guān)鍵字(如:‘;AS;Join等)設(shè)為邊緣數(shù)據(jù)。其它邊緣數(shù)據(jù)還有:HTML的HTML;<>等關(guān)鍵字以及空格、@、負(fù)數(shù)、超長(zhǎng)字符等。邊緣數(shù)據(jù)要靠測(cè)試人員的豐富經(jīng)驗(yàn)來制定。
*錯(cuò)誤數(shù)據(jù):顯而易見,錯(cuò)誤數(shù)據(jù)就是編寫與程序輸入規(guī)范不符的數(shù)據(jù)從而檢測(cè)輸入篩選、錯(cuò)誤處理等程序的分支。
由于執(zhí)行測(cè)試用例的數(shù)據(jù)量巨大以及還要進(jìn)行回歸測(cè)試,所以可以考慮使用自動(dòng)測(cè)試工具,但提取測(cè)試數(shù)據(jù)仍要依靠編寫測(cè)試用例人員的經(jīng)驗(yàn)。并且,我們還要注意到自動(dòng)測(cè)試也許不能找到程序中所有錯(cuò)誤,手動(dòng)測(cè)試所找到的錯(cuò)誤會(huì)比自動(dòng)測(cè)試所找到的要多。
有了測(cè)試用例,我們就可以進(jìn)行測(cè)試了吧?許多公司也是這樣做的,但在這里我建議大家最好要先進(jìn)行代碼的審議。通過代碼審議找到的錯(cuò)誤可以比測(cè)試用例測(cè)試所能找到的錯(cuò)誤更加深入,并且發(fā)現(xiàn)錯(cuò)誤的時(shí)間也比測(cè)試用例要早。代碼審議要以代碼標(biāo)準(zhǔn)(根各公司具體情況自行制定)為依據(jù),一般情況下要檢查以下幾點(diǎn):
* 代碼風(fēng)格和規(guī)則審核
* 程序設(shè)計(jì)和結(jié)構(gòu)的審核
* 業(yè)務(wù)邏輯的審核
代碼風(fēng)格和規(guī)則的審核是在每個(gè)程序員完成一個(gè)模塊或類的 時(shí)候要進(jìn)行編碼規(guī)范的檢查。要召開審核會(huì)議讓所有的項(xiàng)目組人員都參加。在會(huì)前項(xiàng)目經(jīng)理要做一個(gè)檢查表,以表的內(nèi)容為檢查依據(jù),檢查表的內(nèi)容主要是檢查的要點(diǎn)。在審核會(huì)上項(xiàng)目組的每一個(gè)人員都能看到自己和其他人員的編碼問題,從而起到預(yù)防的作用。這些問題都要被解決,并且解決的結(jié)果要在審議會(huì)上被確認(rèn)。
進(jìn)行程序設(shè)計(jì)和結(jié)構(gòu)的審議是因?yàn)殚_發(fā)工具的不同和項(xiàng)目時(shí)間的限制而造成設(shè)計(jì)不詳細(xì)。比較深入的設(shè)計(jì)通常是在編碼階段完成的,但由于程序人員和設(shè)計(jì)人員的經(jīng)驗(yàn)是不同的,所以會(huì)出現(xiàn)很大的問題。我們引入了程序設(shè)計(jì)和結(jié)構(gòu)審核來保證質(zhì)量。審核人員要有先進(jìn)的技術(shù)開發(fā)經(jīng)驗(yàn)。在審核之前也要一個(gè)審核列表,列出主要幾項(xiàng),如:程序的概要、詳細(xì)設(shè)計(jì)。但僅局限于列表是不夠的,審議人員 還要審議程序的精巧度和具有創(chuàng)造力的方面,這只能靠經(jīng)驗(yàn)而不能只靠列表中的內(nèi)容來審議。對(duì)于不同的程序員所檢測(cè)代碼的寬度和深度也是不同的。項(xiàng)目經(jīng)理可以根據(jù)程序員經(jīng)驗(yàn)的不同制定被審議人員的寬度和深度。例如:年輕的程序員要審議所有代碼。但有經(jīng)驗(yàn)的就可適當(dāng)減少。
業(yè)務(wù)邏輯性審議必須要在代碼完成后審議。業(yè)務(wù)邏輯審議實(shí)際上是審議單元模塊的功能。這些功能是以系統(tǒng)說明為依據(jù)的。審議人員要有開發(fā)的經(jīng)驗(yàn)并且對(duì)系統(tǒng)也要熟悉。審議人員通過執(zhí)行程序從而了解底層代碼的狀態(tài)。這階段的審議實(shí)際也包含了前兩種審議,因?yàn)閷徸h者也可以通過最后的結(jié)果檢測(cè)單元模塊設(shè)計(jì)和結(jié)構(gòu)的準(zhǔn)確性。
相關(guān)推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |