




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第九章第九章 面向?qū)ο筌浖膶崿F(xiàn)與測試面向?qū)ο筌浖膶崿F(xiàn)與測試l面向?qū)ο蟪绦蛟O(shè)計言語的優(yōu)點面向?qū)ο蟪绦蛟O(shè)計言語的優(yōu)點l程序設(shè)計風格程序設(shè)計風格l如何對面向?qū)ο蟪绦蜻M展測試?如何對面向?qū)ο蟪绦蜻M展測試? 面向?qū)ο蟮膶崿F(xiàn)主要包括兩項任務(wù):面向?qū)ο蟮膶崿F(xiàn)主要包括兩項任務(wù): 1寫面向?qū)ο蟪绦?;寫面向?qū)ο蟪绦颍?2測試并調(diào)試面向?qū)ο蟪绦驕y試并調(diào)試面向?qū)ο蟪绦?面向?qū)ο蟪绦虻馁|(zhì)量根本上由面向?qū)ο竺嫦驅(qū)ο蟪绦虻馁|(zhì)量根本上由面向?qū)ο笤O(shè)計的質(zhì)量決議,但程序設(shè)計言語的特設(shè)計的質(zhì)量決議,但程序設(shè)計言語的特點和設(shè)計風格也將影響程序的可靠性、點和設(shè)計風格也將影響程序的可靠性、可重用性和可維護性可重用性和可維護性 軟件測
2、試是保證軟件可靠性的主要措施軟件測試是保證軟件可靠性的主要措施9.1 9.1 程序設(shè)計言語程序設(shè)計言語9.1.1 9.1.1 面向?qū)ο笱哉Z的優(yōu)點面向?qū)ο笱哉Z的優(yōu)點1 1一致的表示方法一致的表示方法2 2可重用性可重用性3 3可維護性可維護性9.1.2 9.1.2 面向?qū)ο笱哉Z的技術(shù)特點面向?qū)ο笱哉Z的技術(shù)特點1 1支持類與對象概念的機制支持類與對象概念的機制2 2實現(xiàn)整體實現(xiàn)整體-部分構(gòu)造的機制部分構(gòu)造的機制3 3實現(xiàn)普通實現(xiàn)普通-特殊構(gòu)造的機制特殊構(gòu)造的機制4 4實現(xiàn)屬性和效力的機制實現(xiàn)屬性和效力的機制5 5類型檢查類型檢查6 6類庫類庫7 7效率效率8 8耐久保管對象耐久保管對象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類庫和開發(fā)環(huán)境類庫和開發(fā)環(huán)境4 4其他要素其他要素9.2 9.2 程序設(shè)計風程序設(shè)計風格格9.2.1 9.2.1 提高可重用性提高可重用性1 1提高方法的內(nèi)聚提高方法的內(nèi)聚2 2減小方法的規(guī)模減小方法的規(guī)模3 3堅持方法的一致性堅持方法的一致性4 4把戰(zhàn)略與實現(xiàn)分開把戰(zhàn)略與實現(xiàn)分開5 5全面覆蓋全面覆蓋6 6盡量不運用全局信息盡量不運用全局信息7 7利用承繼機制利用承繼機制 調(diào)用子過程調(diào)用子過程 分解因子分解因子 運用委托運用委托 把代
4、碼封裝在類中把代碼封裝在類中9.2.1 9.2.1 提高可擴展性提高可擴展性1 1封裝實現(xiàn)戰(zhàn)略封裝實現(xiàn)戰(zhàn)略2 2不要用一個方法遍歷多條不要用一個方法遍歷多條關(guān)聯(lián)鏈關(guān)聯(lián)鏈3 3防止運用多分支構(gòu)造防止運用多分支構(gòu)造4 4精心確定公有方法精心確定公有方法9.2.1 9.2.1 提高強壯性提高強壯性1 1預(yù)防用戶的操作錯誤預(yù)防用戶的操作錯誤2 2檢查參數(shù)的合法性檢查參數(shù)的合法性3 3不要預(yù)先確定限制條件不要預(yù)先確定限制條件4 4先測試后優(yōu)化先測試后優(yōu)化可以利用既存類來生成新類可以利用既存類來生成新類 針對實現(xiàn)的承繼 針對特殊化的承繼9.3 9.3 面向?qū)ο蟮臏y試戰(zhàn)面向?qū)ο蟮臏y試戰(zhàn)略略 測試計算機軟件的
5、經(jīng)典戰(zhàn)略是從測試計算機軟件的經(jīng)典戰(zhàn)略是從“小型小型測試開場,逐漸過渡到測試開場,逐漸過渡到“大型測試大型測試測試順序:測試順序:單元測試單元測試 集成測試集成測試-確定測試確定測試-系統(tǒng)系統(tǒng)測試測試 完全孤立地測試類的各個完全孤立地測試類的各個操作是不行的。操作是不行的。 對于面向?qū)ο笙到y(tǒng)的集成測試,對于面向?qū)ο笙到y(tǒng)的集成測試,存在兩種不同的測試戰(zhàn)略。存在兩種不同的測試戰(zhàn)略。 例:例: 銀行運用系統(tǒng)中,銀行運用系統(tǒng)中,account帳戶帳戶類的操作有:類的操作有:open,setup,deposit,withdraw,balance,summarize, creditLimit和和close
6、限制:限制: 在一切操作中最先執(zhí)行在一切操作中最先執(zhí)行open 在一切操作中最后執(zhí)行在一切操作中最后執(zhí)行close 那么:那么: 一個一個account類的最小測試序列包括如下操作:類的最小測試序列包括如下操作: open.setup.deposit.withdraw.close 但該序列中能夠有許多其它行為:但該序列中能夠有許多其它行為: open.setup.deposit.deposit|withdraw|balance|summarize|creditLimit.withdraw.close從上述序列中可以隨機地產(chǎn)生一系列不同的操作序列:從上述序列中可以隨機地產(chǎn)生一系列不同的操作序列:
7、 #r1:open.setup.deposit.deposit.balance.summarize.withdraw.close #r2:open.setup.deposit.withdraw.deposit.balance.creditLimit.withdraw.close基于形狀的劃分基于形狀的劃分 根據(jù)類操作改動形狀的才干來劃分類操作。根據(jù)類操作改動形狀的才干來劃分類操作。 對對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ù)類操作運用的屬性來劃分類操作。根據(jù)類操作運用的屬性來劃分類操作。 對對account類來說,操作分成三個類別:類來說,操作分成三個類別: 運用運用balance的操作的操作 修正修正balance的操作的操作 不運用也不修正不運用也不修正balance的操作的操作基于功能的劃分基于功能的劃分 根據(jù)類操作所完成的功能來劃分類操作。根據(jù)類操作所完成的功能來劃分類操作。 對對a
9、ccount類來說:類來說: 初始化操作初始化操作open,setup 計算操作計算操作deposit,withdraw 查詢操作查詢操作balance,summarize,creditLimit 終止操作終止操作close 與傳統(tǒng)的方法類似,也是首先推測軟件中與傳統(tǒng)的方法類似,也是首先推測軟件中能夠錯誤,然后設(shè)計出最能夠發(fā)現(xiàn)這些能夠錯誤,然后設(shè)計出最能夠發(fā)現(xiàn)這些錯誤的測試用例。錯誤的測試用例。例:測試例:測試SQRT計算平方根操作計算平方根操作 把語句把語句if(x=0)calculate_square_root(); 誤寫成誤寫成if(x0)calculate_square_root();
10、 對每個客戶類,運用類操作符列表來對每個客戶類,運用類操作符列表來生成一系列隨機測試序列,這些操作符向生成一系列隨機測試序列,這些操作符向效力器類實例發(fā)送音訊。效力器類實例發(fā)送音訊。 對所產(chǎn)生的每個音訊,確定協(xié)作類和對所產(chǎn)生的每個音訊,確定協(xié)作類和在效力器對象中的對應(yīng)操作符在效力器對象中的對應(yīng)操作符 對效力器中的每個操作符曾經(jīng)被來對效力器中的每個操作符曾經(jīng)被來自客戶對象的音訊調(diào)用,確定傳送的音自客戶對象的音訊調(diào)用,確定傳送的音訊訊 對每個音訊,確定下一層被調(diào)用的操對每個音訊,確定下一層被調(diào)用的操作符,并把這些操作符結(jié)合進測試序列中作符,并把這些操作符結(jié)合進測試序列中例:銀行系統(tǒng)協(xié)作圖例:銀行系
11、統(tǒng)協(xié)作圖 對于操作序列:對于操作序列: Bank類對類對ATM的操作序列:的操作序列:verifyAcct.verifyPIN.verifyPolicy.withdrawReq|depositReq|acctInfoREQ 對對Bank類的測試用例能夠是:類的測試用例能夠是: #r3 verifyAcct. verifyPIN.depositReq為思索協(xié)作者,上述序列中需求思索與為思索協(xié)作者,上述序列中需求思索與測試用例測試用例#r3中的每個操作相關(guān)的音訊中的每個操作相關(guān)的音訊 Bank需與需與ValidationInfo協(xié)作以執(zhí)行協(xié)作以執(zhí)行verifyAcct和和VerifyPIN,Ban
12、k還必需還必需與與Account協(xié)作以執(zhí)行協(xié)作以執(zhí)行depositReq,因此上述協(xié)作的新測試用例是:因此上述協(xié)作的新測試用例是:#r4:verifyAcctBank.validAcctValidationInfo.verfyPINBank.validPINvalidationInfo.depositReq.depositaccount 例:例: 設(shè)計出的測試用例應(yīng)該覆蓋一切形狀,設(shè)計出的測試用例應(yīng)該覆蓋一切形狀,即操作序列應(yīng)該使得即操作序列應(yīng)該使得account類實例遍類實例遍歷一切允許的形狀轉(zhuǎn)換:歷一切允許的形狀轉(zhuǎn)換:#s1:open.setupAccnt.deposit(initial)
13、.withdraw(final).close向該序列中參與附加的測試序列,可得向該序列中參與附加的測試序列,可得到其他測試用例:到其他測試用例:#s2:open.setupAccnt.deposit(initial).deposit.balance.credit.withdraw(final).close#s3:open.setupAccnt.deposit(initial).deposit.withdraw.accntInfo.withdraw(final).closeD. D. 該軟件的設(shè)計人員該軟件的設(shè)計人員 程序的復(fù)雜程度程序的復(fù)雜程度 源程序源程序 工程工程開發(fā)方案開發(fā)方案用戶插卡用戶插卡讀卡機讀出剩余金額讀卡機讀出剩余金額讀卡機顯示剩余金額給用戶和操作員讀卡機顯示剩余
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理層收購案例分享
- 三方收款合同協(xié)議書范本
- 工業(yè)機器人技術(shù)與應(yīng)用模擬練習題(含參考答案)
- 大型廣告位租賃合同標準模板
- 物業(yè)管理高空作業(yè)安全合同協(xié)議
- 建筑消防系統(tǒng)施工合同范本
- 網(wǎng)絡(luò)平臺廣告位租賃合同25B
- 實習生勞動合同
- 新修訂教育法解讀
- 房地產(chǎn)景觀綠化工程合同
- 2023學年杭州市余杭區(qū)七年級語文下學期期中考試卷附答案解析
- 貴州省縣中新學校計劃項目2025屆高三下學期開學聯(lián)考語文試題及答案
- 2023-2024年護師類之護師初級基礎(chǔ)試題庫和答案要點
- 加快形成農(nóng)業(yè)新質(zhì)生產(chǎn)力
- 演員經(jīng)紀合同法律風險-洞察分析
- 綜合實踐項目 制作細胞模型 教學實錄-2024-2025學年人教版生物七年級上冊
- 對口高考模擬卷(1)-【中職專用】2025年湖南省普通高等學校對口招生高考模擬測試(原卷版)
- 橋隧建筑物安全監(jiān)控相關(guān)知79課件講解
- 小紅書種草營銷師(初級)認證考試真題試題庫(含答案)
- 《醫(yī)療廢物的處理》課件
- 繩子莫泊桑課件
評論
0/150
提交評論