freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

清華大學(xué)殷仁昆教授講授軟件工程講義-08-文庫吧資料

2025-01-14 03:28本頁面
  

【正文】 試形式。 2) 基于線程的測試 它把為響應(yīng)某一系統(tǒng)輸入或 45 軟件工程 事件所需的一組對象類組裝在一起。這種測試 著眼于系統(tǒng)結(jié)構(gòu),首先測試幾乎不使用服務(wù)器類的獨(dú)立類,再測試那些使用了獨(dú)立類的下一層次的(依賴)類。 ? 面向?qū)ο笙到y(tǒng)的集成測試有 3 種可用的方法: 1) 用例或基于場景的測試 用例或場景描述了對系統(tǒng)的使用模式。類的行為與它的狀態(tài)密切相關(guān),狀態(tài)不僅僅是體現(xiàn)在類數(shù)據(jù)成員的值,也許還包括其他類中的狀態(tài)信息。此時(shí)不存在自底向上和自頂向下的集成。 43 軟件工程 面向?qū)ο蟮募蓽y試 (OO Integrate Test) ? 當(dāng)開發(fā)面向?qū)ο笙到y(tǒng)時(shí),集成的層次并不明顯。 3) 完全的單元應(yīng)當(dāng)保證類的執(zhí)行必須 覆蓋它的一個(gè)有代表性的狀態(tài)集合 。 ? 在設(shè)計(jì)對象類的行為測試時(shí)需要注意: 1) 基于對象的 狀態(tài)模型 進(jìn)行測試時(shí),首先要識(shí)別需要測試的 狀態(tài)的變遷序列 ,并定義事件序列來強(qiáng)制執(zhí)行這些變遷。將 使用對象相同屬性 的測試歸入同一個(gè)等價(jià)劃分集合中。 4) 檢查所有 public域 , protected域 及 private 域 中的操作以完全檢查對象中定義的操作。 2) 對于多數(shù)對象類,主要檢驗(yàn)在類聲明的 public 域 中的那些操作。 ? 設(shè)計(jì)對象類的規(guī)格說明測試時(shí)的要點(diǎn): 1) 把對象類當(dāng)做一個(gè)黑盒,確認(rèn)類的實(shí)現(xiàn)是否遵照它的定義。但這不夠,還必須測試這些操作的相互作用,才能認(rèn)為測試是充分的。 39 軟件工程 4) 然后再把測試用例組擴(kuò)充 , 針對被測操作調(diào)用對象類中其他操作的情況 , 設(shè)計(jì)操作序列的測試用例組 。 2) 對于一個(gè)單獨(dú)的操作 , 可通過該操作的 前置條件 選擇測試用例 , 產(chǎn)生輸出 , 讓測試者能夠判斷 后置條件 是否能夠得到滿足 。 因此對象類應(yīng)盡可能孤立地進(jìn)行測試 。 2. 對象類測試 38 軟件工程 ? 對象類 , 作為在語法上獨(dú)立的構(gòu)件 , 應(yīng)當(dāng)允許在不同應(yīng)用中使用 。 ? 測試對象的所有可能的 狀態(tài)轉(zhuǎn)換 。 ? 在測試對象時(shí),完全的覆蓋測試應(yīng)當(dāng)包括: ? 隔離對象中所有 操作 ,進(jìn)行獨(dú)立測試。 ? 多態(tài)有幾種不同的形式,如 參數(shù)多態(tài) , 包含多態(tài) ,重載多態(tài) 。 if ( value == 88 ) message(luck)。 else if ( value == 0 ) message (“ It is equal)。 else message (more)。 例如: ? Base::Redefined() 含有如下語句 if ( value 0 ) message (less)。對此,應(yīng)該對 Derived::Redefined() 重新設(shè)計(jì)測試用例。但如果 Derived::Inherited() 包含有調(diào)用 Redefined() 的語句(如: x = x / Redefined()),就需要重新測試;反之,則不必重新測試。尤其是繼承特性和多態(tài)特性, Brian Marick 提出 了兩點(diǎn): 1) 繼承的成員函數(shù)可能需要重新測試 ? 對父類中已經(jīng)測試過的成員函數(shù),兩種情況需要在子類中重新測試: a) 繼承的成員函數(shù)在子類中做了改動(dòng); b) 成員函數(shù)調(diào)用了改動(dòng)過的成員函數(shù)。 ? 因此,在設(shè)計(jì)測試用例時(shí),應(yīng)對 以函數(shù)返回值作為條件判斷 , 字符串操作 等情況特別注意。 ? 程序中將 if ( strncmp(str1, str2, strlen(str1)) ) 誤寫成了 if ( strncmp(str1, str2, strlen(str2)) )。此測試還忽略了數(shù)據(jù) 部分寫入 的情況,就給程序遺留了隱患。例如: 32 軟件工程 ? if ( 1 == write(fid, buffer, amount) ) error_out()。除非字符串的長度是固定的,如 IP地址字符串。 b) 如果操作(成員函數(shù))對某一復(fù)雜度的輸入能夠正確執(zhí)行,則對更高復(fù)雜度的輸入也應(yīng)能正確執(zhí)行。 2) 測試單個(gè)對象類 黑盒測試的原理不變,但等價(jià)劃分的概念要擴(kuò)展以適合操作序列的情況。 開發(fā)后期的面向?qū)ο鬁y試 面向?qū)ο蟮膯卧獪y試( Unit Test) 30 軟件工程 ? 面向?qū)ο蟮膯卧獪y試則是針對面向?qū)ο蟪绦虻幕締卧?- 對象類。 ? 必要時(shí)(如通過 OOD結(jié)果仍不清楚明確的地方)還應(yīng)該參照 OOA的結(jié)果 ,并以其為最終標(biāo)準(zhǔn)。因此需要進(jìn)行面向?qū)ο蟮募蓽y試。 ? 單獨(dú)地看類的成員函數(shù),與過程性程序中的函數(shù)或過程沒有本質(zhì)的區(qū)別,幾乎所有傳統(tǒng)的單元測試中使用的方法,都可在面向?qū)ο蟮膯卧獪y試中使用。 27 軟件工程 2. 類是否實(shí)現(xiàn)了要求的功能 ? 類的功能都是通過類的成員函數(shù)實(shí)現(xiàn)的。 Visible *qq = (Visible *) pp。 char *s = visible。 26 軟件工程 char *p = hiden。 ? 值得注意,有時(shí)強(qiáng)制的類型轉(zhuǎn)換會(huì)破壞數(shù)據(jù)的封裝特性。 25 軟件工程 1. 數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求 ? 檢查數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求,就是檢查其 數(shù)據(jù)成員是否能被外界(數(shù)據(jù)成員所屬的類或子類以外的調(diào)用)直接調(diào)用 。這種面向?qū)ο蟪绦蝻L(fēng)格,可將出現(xiàn)的錯(cuò)誤精確定位在某一個(gè)具體的對象。 ? 面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類中。 ? 繼承 提高了代碼的復(fù)用率,同時(shí)也提高了錯(cuò)誤傳播的概率。 23 軟件工程 面向?qū)ο缶幊痰臏y試 ? 典型的面向?qū)ο蟪绦蚓哂?繼承 、 封裝 和 多態(tài) 等新特性,這使得傳統(tǒng)的測試策略必須有所改變。 b) 類中方法( C++稱為類的成員函數(shù))的功能是否比較單一,相應(yīng)的代碼行是否較少(建議不超過 100行)。由于它并不直接影響當(dāng)前軟件的開發(fā)和功能實(shí)現(xiàn),可以將其單獨(dú)提出來測試。 e) 子類之間的共同特性是否完全在父類中得以體現(xiàn)。 c) 是否能實(shí)現(xiàn) OOA中所定義的消息連接。為此應(yīng)做如下幾個(gè)方面的檢查: 21 軟件工程 a) 類層次結(jié)構(gòu)中是否涵蓋了所有定義的類。 2. 對構(gòu)造的類層次結(jié)構(gòu)的測試 ? 為能充分發(fā)揮面向?qū)ο蟮睦^承共享特性, OOD的類層次結(jié)構(gòu),通?;?OOA中產(chǎn)生的泛化結(jié)構(gòu)的原則來組織,著重體現(xiàn)父類和子類之間一般性和特殊性關(guān)系。 20 軟件工程 e) 是否盡可能少地依賴其他類。 c) 是否能實(shí)現(xiàn) OOA中定義的服務(wù)。 19 軟件工程 ? OOD的測試可從如下三方面考慮: ? 對認(rèn)定的類的測試 ? 對構(gòu)造的類層次結(jié)構(gòu)的測試 ? 對類庫的支持的測試 1. 對認(rèn)定的類的測試 ? 認(rèn)定的類的測試應(yīng)考慮以下幾個(gè)方面: a) 是否涵蓋了 OOA中所有認(rèn)定的對象。因此, OOD是 OOA的進(jìn)一步細(xì)化和更高層的抽象,OOD與 OOA 的界限通常是難以嚴(yán)格區(qū)分的。 18 軟件工程 面向?qū)ο笤O(shè)計(jì)的測試 ? 面向?qū)ο笤O(shè)計(jì)( OOD)從“建模的觀點(diǎn)”出發(fā),基于 OOA模型歸納出類,并建立類的層次結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫,實(shí)現(xiàn)分析結(jié)果對問題領(lǐng)域的抽象。 d) 沿著消息連接所執(zhí)行的線索(消息的調(diào)用序列)是否合理,是否符合實(shí)際。 b) 類或結(jié)構(gòu)所需要的服務(wù)是否都定義了相應(yīng)的消息連接。由于問題領(lǐng)域中的實(shí)例之間需要通信,在 OOA中就需要定義消息的連接。 h) 在問題領(lǐng)域中實(shí)例連接的定義是否完整,特別需要注意一對多和多對多的實(shí)例連接。 f) 問題領(lǐng)域中每個(gè)類的屬性是否定義完整。 d) 定義的
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1