版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第九章第九章 面向?qū)ο筌浖膶?shí)現(xiàn)與測(cè)試面向?qū)ο筌浖膶?shí)現(xiàn)與測(cè)試l面向?qū)ο蟪绦蛟O(shè)計(jì)言語的優(yōu)點(diǎn)面向?qū)ο蟪绦蛟O(shè)計(jì)言語的優(yōu)點(diǎn)l程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格l如何對(duì)面向?qū)ο蟪绦蜻M(jìn)展測(cè)試?如何對(duì)面向?qū)ο蟪绦蜻M(jìn)展測(cè)試? 面向?qū)ο蟮膶?shí)現(xiàn)主要包括兩項(xiàng)任務(wù):面向?qū)ο蟮膶?shí)現(xiàn)主要包括兩項(xiàng)任務(wù): 1寫面向?qū)ο蟪绦?;寫面向?qū)ο蟪绦颍?2測(cè)試并調(diào)試面向?qū)ο蟪绦驕y(cè)試并調(diào)試面向?qū)ο蟪绦?面向?qū)ο蟪绦虻馁|(zhì)量根本上由面向?qū)ο竺嫦驅(qū)ο蟪绦虻馁|(zhì)量根本上由面向?qū)ο笤O(shè)計(jì)的質(zhì)量決議,但程序設(shè)計(jì)言語的特設(shè)計(jì)的質(zhì)量決議,但程序設(shè)計(jì)言語的特點(diǎn)和設(shè)計(jì)風(fēng)格也將影響程序的可靠性、點(diǎn)和設(shè)計(jì)風(fēng)格也將影響程序的可靠性、可重用性和可維護(hù)性可重用性和可維護(hù)性 軟件測(cè)
2、試是保證軟件可靠性的主要措施軟件測(cè)試是保證軟件可靠性的主要措施9.1 9.1 程序設(shè)計(jì)言語程序設(shè)計(jì)言語9.1.1 9.1.1 面向?qū)ο笱哉Z的優(yōu)點(diǎn)面向?qū)ο笱哉Z的優(yōu)點(diǎn)1 1一致的表示方法一致的表示方法2 2可重用性可重用性3 3可維護(hù)性可維護(hù)性9.1.2 9.1.2 面向?qū)ο笱哉Z的技術(shù)特點(diǎn)面向?qū)ο笱哉Z的技術(shù)特點(diǎn)1 1支持類與對(duì)象概念的機(jī)制支持類與對(duì)象概念的機(jī)制2 2實(shí)現(xiàn)整體實(shí)現(xiàn)整體-部分構(gòu)造的機(jī)制部分構(gòu)造的機(jī)制3 3實(shí)現(xiàn)普通實(shí)現(xiàn)普通-特殊構(gòu)造的機(jī)制特殊構(gòu)造的機(jī)制4 4實(shí)現(xiàn)屬性和效力的機(jī)制實(shí)現(xiàn)屬性和效力的機(jī)制5 5類型檢查類型檢查6 6類庫(kù)類庫(kù)7 7效率效率8 8耐久保管對(duì)象耐久保管對(duì)象9 9參數(shù)化
3、類參數(shù)化類1010開發(fā)環(huán)境開發(fā)環(huán)境9.1.3 9.1.3 選擇面向?qū)ο笱哉Z選擇面向?qū)ο笱哉Z1 1未來能否占主導(dǎo)位置未來能否占主導(dǎo)位置2 2可重用性可重用性3 3類庫(kù)和開發(fā)環(huán)境類庫(kù)和開發(fā)環(huán)境4 4其他要素其他要素9.2 9.2 程序設(shè)計(jì)風(fēng)程序設(shè)計(jì)風(fēng)格格9.2.1 9.2.1 提高可重用性提高可重用性1 1提高方法的內(nèi)聚提高方法的內(nèi)聚2 2減小方法的規(guī)模減小方法的規(guī)模3 3堅(jiān)持方法的一致性堅(jiān)持方法的一致性4 4把戰(zhàn)略與實(shí)現(xiàn)分開把戰(zhàn)略與實(shí)現(xiàn)分開5 5全面覆蓋全面覆蓋6 6盡量不運(yùn)用全局信息盡量不運(yùn)用全局信息7 7利用承繼機(jī)制利用承繼機(jī)制 調(diào)用子過程調(diào)用子過程 分解因子分解因子 運(yùn)用委托運(yùn)用委托 把代
4、碼封裝在類中把代碼封裝在類中9.2.1 9.2.1 提高可擴(kuò)展性提高可擴(kuò)展性1 1封裝實(shí)現(xiàn)戰(zhàn)略封裝實(shí)現(xiàn)戰(zhàn)略2 2不要用一個(gè)方法遍歷多條不要用一個(gè)方法遍歷多條關(guān)聯(lián)鏈關(guān)聯(lián)鏈3 3防止運(yùn)用多分支構(gòu)造防止運(yùn)用多分支構(gòu)造4 4精心確定公有方法精心確定公有方法9.2.1 9.2.1 提高強(qiáng)壯性提高強(qiáng)壯性1 1預(yù)防用戶的操作錯(cuò)誤預(yù)防用戶的操作錯(cuò)誤2 2檢查參數(shù)的合法性檢查參數(shù)的合法性3 3不要預(yù)先確定限制條件不要預(yù)先確定限制條件4 4先測(cè)試后優(yōu)化先測(cè)試后優(yōu)化可以利用既存類來生成新類可以利用既存類來生成新類 針對(duì)實(shí)現(xiàn)的承繼 針對(duì)特殊化的承繼9.3 9.3 面向?qū)ο蟮臏y(cè)試戰(zhàn)面向?qū)ο蟮臏y(cè)試戰(zhàn)略略 測(cè)試計(jì)算機(jī)軟件的
5、經(jīng)典戰(zhàn)略是從測(cè)試計(jì)算機(jī)軟件的經(jīng)典戰(zhàn)略是從“小型小型測(cè)試開場(chǎng),逐漸過渡到測(cè)試開場(chǎng),逐漸過渡到“大型測(cè)試大型測(cè)試測(cè)試順序:測(cè)試順序:?jiǎn)卧獪y(cè)試單元測(cè)試 集成測(cè)試集成測(cè)試-確定測(cè)試確定測(cè)試-系統(tǒng)系統(tǒng)測(cè)試測(cè)試 完全孤立地測(cè)試類的各個(gè)完全孤立地測(cè)試類的各個(gè)操作是不行的。操作是不行的。 對(duì)于面向?qū)ο笙到y(tǒng)的集成測(cè)試,對(duì)于面向?qū)ο笙到y(tǒng)的集成測(cè)試,存在兩種不同的測(cè)試戰(zhàn)略。存在兩種不同的測(cè)試戰(zhàn)略。 例:例: 銀行運(yùn)用系統(tǒng)中,銀行運(yùn)用系統(tǒng)中,account帳戶帳戶類的操作有:類的操作有:open,setup,deposit,withdraw,balance,summarize, creditLimit和和close
6、限制:限制: 在一切操作中最先執(zhí)行在一切操作中最先執(zhí)行open 在一切操作中最后執(zhí)行在一切操作中最后執(zhí)行close 那么:那么: 一個(gè)一個(gè)account類的最小測(cè)試序列包括如下操作:類的最小測(cè)試序列包括如下操作: open.setup.deposit.withdraw.close 但該序列中能夠有許多其它行為:但該序列中能夠有許多其它行為: open.setup.deposit.deposit|withdraw|balance|summarize|creditLimit.withdraw.close從上述序列中可以隨機(jī)地產(chǎn)生一系列不同的操作序列:從上述序列中可以隨機(jī)地產(chǎn)生一系列不同的操作序列:
7、 #r1:open.setup.deposit.deposit.balance.summarize.withdraw.close #r2:open.setup.deposit.withdraw.deposit.balance.creditLimit.withdraw.close基于形狀的劃分基于形狀的劃分 根據(jù)類操作改動(dòng)形狀的才干來劃分類操作。根據(jù)類操作改動(dòng)形狀的才干來劃分類操作。 對(duì)對(duì)account類來說,形狀操作包括類來說,形狀操作包括deposit和和withdraw,非形狀操作有,非形狀操作有balance,summarize和和creditLimit#r1:open.setup.de
8、posit.deposit.withdraw.withdraw.close#r2:open.setup.deposit.summarize.creditLimit.withdraw.close基于屬性的劃分基于屬性的劃分 根據(jù)類操作運(yùn)用的屬性來劃分類操作。根據(jù)類操作運(yùn)用的屬性來劃分類操作。 對(duì)對(duì)account類來說,操作分成三個(gè)類別:類來說,操作分成三個(gè)類別: 運(yùn)用運(yùn)用balance的操作的操作 修正修正balance的操作的操作 不運(yùn)用也不修正不運(yùn)用也不修正balance的操作的操作基于功能的劃分基于功能的劃分 根據(jù)類操作所完成的功能來劃分類操作。根據(jù)類操作所完成的功能來劃分類操作。 對(duì)對(duì)a
9、ccount類來說:類來說: 初始化操作初始化操作open,setup 計(jì)算操作計(jì)算操作deposit,withdraw 查詢操作查詢操作balance,summarize,creditLimit 終止操作終止操作close 與傳統(tǒng)的方法類似,也是首先推測(cè)軟件中與傳統(tǒng)的方法類似,也是首先推測(cè)軟件中能夠錯(cuò)誤,然后設(shè)計(jì)出最能夠發(fā)現(xiàn)這些能夠錯(cuò)誤,然后設(shè)計(jì)出最能夠發(fā)現(xiàn)這些錯(cuò)誤的測(cè)試用例。錯(cuò)誤的測(cè)試用例。例:測(cè)試?yán)簻y(cè)試SQRT計(jì)算平方根操作計(jì)算平方根操作 把語句把語句if(x=0)calculate_square_root(); 誤寫成誤寫成if(x0)calculate_square_root();
10、 對(duì)每個(gè)客戶類,運(yùn)用類操作符列表來對(duì)每個(gè)客戶類,運(yùn)用類操作符列表來生成一系列隨機(jī)測(cè)試序列,這些操作符向生成一系列隨機(jī)測(cè)試序列,這些操作符向效力器類實(shí)例發(fā)送音訊。效力器類實(shí)例發(fā)送音訊。 對(duì)所產(chǎn)生的每個(gè)音訊,確定協(xié)作類和對(duì)所產(chǎn)生的每個(gè)音訊,確定協(xié)作類和在效力器對(duì)象中的對(duì)應(yīng)操作符在效力器對(duì)象中的對(duì)應(yīng)操作符 對(duì)效力器中的每個(gè)操作符曾經(jīng)被來對(duì)效力器中的每個(gè)操作符曾經(jīng)被來自客戶對(duì)象的音訊調(diào)用,確定傳送的音自客戶對(duì)象的音訊調(diào)用,確定傳送的音訊訊 對(duì)每個(gè)音訊,確定下一層被調(diào)用的操對(duì)每個(gè)音訊,確定下一層被調(diào)用的操作符,并把這些操作符結(jié)合進(jìn)測(cè)試序列中作符,并把這些操作符結(jié)合進(jìn)測(cè)試序列中例:銀行系統(tǒng)協(xié)作圖例:銀行系
11、統(tǒng)協(xié)作圖 對(duì)于操作序列:對(duì)于操作序列: Bank類對(duì)類對(duì)ATM的操作序列:的操作序列:verifyAcct.verifyPIN.verifyPolicy.withdrawReq|depositReq|acctInfoREQ 對(duì)對(duì)Bank類的測(cè)試用例能夠是:類的測(cè)試用例能夠是: #r3 verifyAcct. verifyPIN.depositReq為思索協(xié)作者,上述序列中需求思索與為思索協(xié)作者,上述序列中需求思索與測(cè)試用例測(cè)試用例#r3中的每個(gè)操作相關(guān)的音訊中的每個(gè)操作相關(guān)的音訊 Bank需與需與ValidationInfo協(xié)作以執(zhí)行協(xié)作以執(zhí)行verifyAcct和和VerifyPIN,Ban
12、k還必需還必需與與Account協(xié)作以執(zhí)行協(xié)作以執(zhí)行depositReq,因此上述協(xié)作的新測(cè)試用例是:因此上述協(xié)作的新測(cè)試用例是:#r4:verifyAcctBank.validAcctValidationInfo.verfyPINBank.validPINvalidationInfo.depositReq.depositaccount 例:例: 設(shè)計(jì)出的測(cè)試用例應(yīng)該覆蓋一切形狀,設(shè)計(jì)出的測(cè)試用例應(yīng)該覆蓋一切形狀,即操作序列應(yīng)該使得即操作序列應(yīng)該使得account類實(shí)例遍類實(shí)例遍歷一切允許的形狀轉(zhuǎn)換:歷一切允許的形狀轉(zhuǎn)換:#s1:open.setupAccnt.deposit(initial)
13、.withdraw(final).close向該序列中參與附加的測(cè)試序列,可得向該序列中參與附加的測(cè)試序列,可得到其他測(cè)試用例:到其他測(cè)試用例:#s2:open.setupAccnt.deposit(initial).deposit.balance.credit.withdraw(final).close#s3:open.setupAccnt.deposit(initial).deposit.withdraw.accntInfo.withdraw(final).closeD. D. 該軟件的設(shè)計(jì)人員該軟件的設(shè)計(jì)人員 程序的復(fù)雜程度程序的復(fù)雜程度 源程序源程序 工程工程開發(fā)方案開發(fā)方案用戶插卡用戶插卡讀卡機(jī)讀出剩余金額讀卡機(jī)讀出剩余金額讀卡機(jī)顯示剩余金額給用戶和操作員讀卡機(jī)顯示剩余
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【《借助現(xiàn)代化網(wǎng)絡(luò)技術(shù)優(yōu)化小學(xué)英語課堂教學(xué)探究》3400字】
- 【《初中歷史人物教學(xué)探究》14000字(論文)】
- 2024年學(xué)校安全工作總結(jié)參考(四篇)
- 2024年學(xué)困生幫扶工作計(jì)劃例文(三篇)
- 2024年司機(jī)崗位職責(zé)模版(五篇)
- 2024年大學(xué)秘書部工作計(jì)劃(四篇)
- 2024年商品混凝土運(yùn)輸合同(三篇)
- 2024年學(xué)前班班主任的工作計(jì)劃樣本(三篇)
- 2024年小學(xué)跳繩興趣小組活動(dòng)計(jì)劃(二篇)
- 2024年小班班級(jí)工作總結(jié)(三篇)
- 新視野大學(xué)英語視聽說教程ppt課件
- 攻城掠地?cái)?shù)據(jù)以及sdata文件修改教程
- 醫(yī)療廢物轉(zhuǎn)運(yùn)箱消毒記錄表
- 最新投標(biāo)書密封條
- 看守所崗位職責(zé)
- 2019年青年英才培養(yǎng)計(jì)劃項(xiàng)目申報(bào)表
- Sentaurus在ESD防護(hù)器件設(shè)計(jì)中的應(yīng)用PPT課件
- 《拋物線焦點(diǎn)弦的性質(zhì)探究》學(xué)案
- 人教版小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)教案【表格式】
- 佛山嶺南新天地項(xiàng)目概況.
- 噴碼機(jī)操作手冊(cè)
評(píng)論
0/150
提交評(píng)論