【正文】
3 JTB 可以從網(wǎng)上下載, 參考文獻(xiàn) [1] Roger T. Alexander and A. Jefferson Offutt. Analysis techniques for testing polymorphic relationships. In Thirtieth International Conference on Technology of ObjectOriented Languages and Systems (TOOLS30), pages 104– 114, Santa Barbara, CA, 1999. [2] F. E. Allen and J. Cocke. A program data flow analysis procedure. Communications of the ACM, 19(3):137– 146, March 1976. [3] Stephane Barbey and Alfred Strohmeier. The problematics of testing objectoriented software. InSQM’ 94 Second Conference on Software Quality Management, volume 2, pages 411– 426, Edinburgh, Scotland, UK, 1994. [4] Boris Beizer. Software Testing Techniques. Van Nostrand Reinhold, New York, New York, 2nd edition, 1990. [5] Edward Berard. Issues in the testing of objectoriented software. In Electro’ 94 International, pages 211– 219. IEEE Computer Society Press, 1994. [6] Edward V. on ObjectOriented Software Engineering, volume 1. Prentice Hall, 1993. [7] Robert V. Binder. Testing objectoriented software: A survey. Journal of Software Testing, Verification amp。目前,我們正在設(shè)計技術(shù),儀器的測試程序來判斷測試是否滿足在本文提出的測試標(biāo)準(zhǔn)。這些條件依賴于源代碼的詳細(xì)分析,并且可以被用來生成集成測試用于面向?qū)ο蟮能浖?,它是在檢測中的軟件組件之間的連接設(shè)計和編程錯誤有效。四個不同的標(biāo)準(zhǔn)被提出,可 11 以幫助測試人員評估基于繼承和多態(tài)的軟件組件之間的連接。然而,這種方法的重點是起因于多態(tài)調(diào)用中 MUT 的效果。這類似于全耦合定義用途。他們定義的施加方法測試要求兩個標(biāo)準(zhǔn)。本文不介紹如何在測試過程中使用此信息。他們的方法強調(diào)三個層次的測試:( 1)幀內(nèi)法測試 。檢測到故障時,系統(tǒng)輸出不期望的輸出相匹配。 Jensen 和 Erickson[17]描述了一種方法,集成測試,類似于許多黑盒測試技術(shù)。過濾器進(jìn)行檢查,以確定是否其中一種方法是正確的類型和值,則該方法被調(diào)用以正確的順序,而且如果所調(diào)用的方法的 前提是真實的。 在他的博士論文, Overbeck 提出了一種基于客戶端和服務(wù)器類 [22]中的測試合同的方法。方法在面向?qū)ο蟮能浖S玫姆绞揭馕吨S多傳統(tǒng)的軟件測試技術(shù)測試錯誤的東西。但是,如果 o 是代替 A,是由它綁定到一個方法調(diào)用 g 的返回值,改變實例的類型初始化的局部變量將是極其困難的,目前超出了我們目前的研究范圍之內(nèi)。 A 型 Tis 認(rèn)為是可行的,如果耦合序列的上下文變量可以經(jīng)常被綁定到一個實例,其中 Tis 無論是聲明的類型的上下文變量,或聲明的類型的后裔。等效突變體,在路徑測試技術(shù)不到的語句,和不可行 DU雙數(shù)據(jù)流測試是可行的路徑問題的所有實例。幀內(nèi)方法耦合序列是不可行的,如果沒有輸入,可以執(zhí)行該序列。雖然這極大地復(fù)雜的分析,可能類型的對象的數(shù)量是有限的,并且通常是小的。 圖 3 例如類層次結(jié)構(gòu)與重寫方法 9 有一個潛在的問題,數(shù)據(jù)流異常,因為顯然 A :: u 不使用前面的定義。也是沒有問題的,當(dāng) o 的類型為 B,因為 A :: u 通過調(diào)用已在聲明中的語句 3 定義了。 了解動態(tài)綁定和多態(tài)性可能對方法之間的數(shù)據(jù)流關(guān)系的影響,考慮表中,如圖 3( c) 所示,其中總結(jié)了在圖 3( a) 該方法的定義和用途所示。然而,由于動態(tài)綁定和多態(tài)性的方法,實際上是被稱為依賴型 T,實例的束縛。首先觀察有 f 需要被聲明為類型 A 的形式參數(shù) o。同樣, B 類包括方法 n 和 l 及狀態(tài)變量 w。沒有動態(tài)綁定,方法之間的數(shù)據(jù)流關(guān)系是靜態(tài)的,可以在被執(zhí)行之前知道。雖然有一定的異常,常見的假設(shè)是,在更高層次的包容層次結(jié)構(gòu)的標(biāo)準(zhǔn)有更多的測試功耗,成本較高。 定義 4 全聚耦合定義用途: 在方法 F 中的任意耦合序列 Sj,k,并為每類由 Sj,k 的上 下文中定義的類型的家族中,并為 Sj,k 的每一個耦合變量 v 和每個節(jié)點 n 中的最后一個定義具有第一個節(jié)點 m 使用的變量 v 有至少一個測試用例 T,使得當(dāng)采用 T 執(zhí)行 f 有在 Sj,k 的耦合路徑是 f 的跡的子路徑一個路徑 p。那就是,每一個可行的耦合路徑的每個耦合的定義和 V 耦合對之間必須至少有一個測試用例執(zhí)行。因此,被認(rèn)為是唯一的類重寫的前提 和隨之而來的方法。這 是對于每一個類通過確保至少有一個測試,可以為每個耦合序列來實現(xiàn)提供一個實例的上下文。這里,覆蓋面意味著每個偶聯(lián)序列被至少執(zhí)行一個測試用例。可能該分析的信息可以被用來解決在軟件工程中的其他問題。對于本研究中,數(shù)據(jù)有必要從流定義信息來調(diào)用站點,從調(diào)用點的用途,從入口節(jié)點到用途,以及從定義到結(jié)束節(jié)點。 當(dāng)使用測試標(biāo)準(zhǔn),它假定在該耦合序列的方法之前,前提和后果的方法已被單獨測試。 6 3. 耦合條件 本文定義了四個面向?qū)ο蟮鸟?合原則進(jìn)行集成測試。 1 請注意,對于一個給定的耦合序列,即通過先行或隨之而來的節(jié)點上執(zhí)行一個調(diào)用的結(jié)果的方法取決于該序列的上下文變量綁定到該實例的類型。這組變量被稱為耦合集 Sj,k, Sj,k 和這組的每個成員都是一個耦合變量。然而, 5 它不是正被測試的類,而是利用了對象和相應(yīng)的方法的方法。此外,存在兩種方法調(diào)用是定義清晰的相對于該上下文變量和到由第一種方 法中定義和第二種使用的至少一個狀態(tài)變量之間的至少一條路徑。耦合序列代表在 M 的文本中的故障很可能伴隨 O發(fā)生。 耦合序列 雖然面向?qū)ο蟮脑O(shè)計和編程的激勵目標(biāo)之一是減少軟件組件之間的耦合量,新的語言功能也引入組件耦合的新途徑。耦合路徑集是一組可以出現(xiàn)在子路徑通過一個耦合的定義和使用之間的