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

正文內(nèi)容

軟件測(cè)試教案ppt課件-資料下載頁(yè)

2025-05-04 13:15本頁(yè)面
  

【正文】 e Testing 72 類測(cè)試的延伸 ?本節(jié)將簡(jiǎn)要介紹類測(cè)試構(gòu)造思想以及如何對(duì)接口類、抽象類等進(jìn)行測(cè)試的方法。 ? 繼承層次結(jié)構(gòu)中類的測(cè)試 ? 接口類測(cè)試 ? 抽象類測(cè)試 ? 重載和覆蓋測(cè)試 ? 異常測(cè)試 RCIIP Software Testing 73 繼承層次結(jié)構(gòu)中類的測(cè)試 ?繼承是實(shí)現(xiàn)接口和代碼復(fù)用的有效機(jī)制。根據(jù)繼承機(jī)制的特點(diǎn),父類中被測(cè)試用例所測(cè)試的代碼被子類繼承,只要父類代碼沒(méi)有被子類“覆蓋”,那么就不用重新創(chuàng)建這些測(cè)試用例。 圖 51顯示了各類之間的繼承關(guān)系 RCIIP Software Testing 74 ? Class_A類有兩個(gè)實(shí)例方法 operation1()和 operation2(), Class_B類繼承了 Class_A類并且實(shí)現(xiàn)了新的實(shí)例方法 operation3(),Class_C類繼承了 Class_B類,覆蓋了 Class_B類的實(shí)例方法 operation3()和實(shí)例方法 operation2(). Clas s _A+ oper ation1( )+ oper ation2( )Clas s _B+ oper ation3( )Clas s _C+ oper ation2( )+ oper ation3( )圖 51 類之間的繼承關(guān)系 RCIIP Software Testing 75 繼承層次結(jié)構(gòu)中類的測(cè)試 ?根據(jù)圖 51中這三個(gè)類之間的區(qū)別,可以確定繼承的測(cè)試用例中是否需要產(chǎn)生新的子類測(cè)試用例,哪些測(cè)試用例適用于測(cè)試子類,哪些測(cè)試用例在測(cè)試子類中不必執(zhí)行,如下表所示 : 類繼 承 類類 方 法是 否 改 變 是 否 增 加 測(cè) 試 用 例C l a s s _ AC l a s s _ BC l a s s _ BC l a s s _ AC l a s s _ Co p e r a t i o n 1 ( )o p e r a t i o n 2 ( )o p e r a t i o n 3 ( )o p e r a t i o n 2 ( )o p e r a t i o n 1 ( )o p e r a t i o n 3 ( )o p e r a t i o n 2 ( )o p e r a t i o n 1 ( )F a l s eF a l s eF a l s eT r u eT r u eT r u eF a l s eF a l s eT r u eF a l s eT r u eT r u eRCIIP Software Testing 76 繼承層次結(jié)構(gòu)中類的測(cè)試 ?由此,可以得出繼承層次結(jié)構(gòu)中類測(cè)試的測(cè)試用例可以采用如下增補(bǔ)原則: 1)如果子類新增了一個(gè)或者多個(gè)新的操作,就需要增加相應(yīng)的測(cè)試用例。 2)如果子類定義的同名方法覆蓋了父類的方法,就需要增加相應(yīng)的測(cè)試用例。 那么,在具體構(gòu)建類測(cè)試用例時(shí)可以采用如圖 52所示的結(jié)構(gòu)。對(duì)于 基類 我們要全部測(cè)試, 底層的測(cè)試類 可以對(duì)其父類的測(cè)試方法回歸 。 RCIIP Software Testing 77 Cl a ss _A+ ope rat i on1()+ ope rat i on2()Cl a ss _B+ ope rat i on3()Cl a ss _C+ ope rat i on2()+ ope rat i on3()Cl a ss _A _Te stCa se+ t e stope rat i on1()+ t e stope rat i on2()Cl a ss _B_T e stCa se+ t e stope rat i on3()Cl a ss _C_T e stCa se+ t e stope rat i on2()+ t e stope rat i on3()圖 52 類測(cè)試用例的構(gòu)建 RCIIP Software Testing 78 接口類測(cè)試 ?對(duì)類進(jìn)行測(cè)試時(shí)需要構(gòu)建可執(zhí)行的類實(shí)例,而接口不存在任何構(gòu)造方法無(wú)法被實(shí)現(xiàn)。 ?由于接口一定會(huì)在某個(gè)類中實(shí)現(xiàn),因此就使用一個(gè)實(shí)現(xiàn)接口的類來(lái)做測(cè)試。遵循以下原則: ?如果接口沒(méi)有被任何類實(shí)現(xiàn)就無(wú)需進(jìn)行測(cè)試。 ?如果已被別的類實(shí)現(xiàn),那么就針對(duì)實(shí)現(xiàn)該接口的類進(jìn)行測(cè)試。 (如下圖 53) RCIIP Software Testing 79 Cl a ss _C+ Cl a ss _C+ a _M e t hod ()+ b_M e t hod ()+ c _M e t hod ()Cl a ss _C _T e stC a se+ Cl a ss _C _T e stC a se()+ a _M e t hod ()+ b_M e t hod ()+ c _M e t hod ()+ ne w O bj e c t ()+ t e stA _M e t hod ()+ t e stB _M e t hod ()+ t e stB _M e t hod ()Int e rfa c e _A+ a_ m eth o d ( )+ b _ m eth o d ( )圖 53 InterFace接口測(cè)試類圖 RCIIP Software Testing 80 抽象類測(cè)試 ? 如果要構(gòu)造抽象類的測(cè)試驅(qū)動(dòng)程序首先要繼承測(cè)試驅(qū)動(dòng)類,并且需要同時(shí)繼承被測(cè)試抽象類,因?yàn)樵擃惒荒鼙痪唧w化。但 Java采用單繼承機(jī)制,因此對(duì)該抽象類的測(cè)試驅(qū)動(dòng)程序就不能同時(shí)繼承兩個(gè)抽象類,通常,采用以下兩種方法來(lái)處理抽象類的測(cè)試問(wèn)題: ? 一般情況下,利用 Java的內(nèi)類機(jī)制,在抽象類的測(cè)試驅(qū)動(dòng)程序內(nèi)引入內(nèi)類,讓內(nèi)類實(shí)現(xiàn)對(duì)被測(cè)試抽象類的繼承,然后把它作為引用體,這樣對(duì)內(nèi)類的測(cè)試就等價(jià)于對(duì)被測(cè)試抽象類的測(cè)試。 (舉例) ? 如果抽象類被具體類繼承,那么,在創(chuàng)建該具體類的測(cè)試驅(qū)動(dòng)程序時(shí)要繼承抽象類的測(cè)試驅(qū)動(dòng)程序,在以后的回歸測(cè)試中,只要執(zhí)行最低層的測(cè)試類,就可以對(duì)其父測(cè)試類重新執(zhí)行一次測(cè)試,同時(shí)將測(cè)試結(jié)果分別返回。 RCIIP Software Testing 81 抽象類測(cè)試 (續(xù) ) ? /* *創(chuàng)建日期: *創(chuàng)建人員: *修改日期: *修改人員: */ package 。 public abstract class AbstractExample implements Example{ …… public AbstractExample(){ …… } …… } RCIIP Software Testing 82 /* *創(chuàng)建日期: *創(chuàng)建人員: *修改日期: *修改人員: */ 1. package 。 2. public abstract class AbstractExampleTester extends TestCase{ 3. static class AbstractExample_Inner extends AbstractExample{ 4. public AbstractExample_Inner(){ 5. super(argumentname)。 6. } 7. } 8. public AbstractExampleTester(){ 9. super(argumentname)。 10.} Example newObject(argumentname){ new AbstractExample_Inner()。 13.} void testAbstractExample_Inner(){ 15.…… 16.} 17.…… 18.} RCIIP Software Testing 83 重載和覆蓋測(cè)試 ?覆蓋是在子類中重新定義了從父類中繼承的同名方法;重載與覆蓋不同,不是子類對(duì)父類同名方法的重新定義,而是類對(duì)自身已有的同名方法的重新定義。 ?在測(cè)試過(guò)程中,可以參考如下兩個(gè)原則: ? 要對(duì)類實(shí)例方法的所有重載形式分別進(jìn)行測(cè)試。 ? 子類的測(cè)試驅(qū)動(dòng)程序在繼承父類測(cè)試驅(qū)動(dòng)程序的同時(shí),要對(duì)覆蓋了父類的同名方法進(jìn)行測(cè)試,而且應(yīng)該重新對(duì)父類的類實(shí)例方法的所有重載形式執(zhí)行一次測(cè)試。 RCIIP Software Testing 84 重載和覆蓋測(cè)試 (續(xù) ) 1. package 。 2. public class reload { 3. public reload(){ 4. } 5. public int method_a(){ 6. return “method_a()”。 7. } 8. public int method_a(String a){ 9. return “method_a(String a)”。 10.} 11. public int method_a(String a ,String b){ 12. return “method_a(String a ,String b)”。 13. } 14. public int method_b(){ 15. return “method_b()”。 16. } 17. public int method_c(){ 18. return “method_c()”。 19. } 20.} RCIIP Software Testing 85 重載和覆蓋測(cè)試(續(xù)) ? reload_TestCase為 reload類的測(cè)試驅(qū)動(dòng)程序,該類對(duì)reload類中包含的method_a實(shí)例方法的三種重載形式分別進(jìn)行了測(cè)試,代碼如下: 1. /* 2. reload_TestCase .java 3. */ 4. package 。 5. public class reload_TestCase extends TestCase{ 6. ….. 7. public reload_TestCase(argument ){ 8. …… 9. } void testMethod_a(){……} void testMethod_a_a(){……} void testMethod_a_ab(){……} void testMethod_b(){……} void testMethod_c(){……} 15.…… 16.} RCIIP Software Testing 86 異常測(cè)試 ?因?yàn)榇嬖诋惓?,在?gòu)建測(cè)試用例時(shí),還要考慮如何測(cè)試在某種特殊情況下程序代碼是否返回了指定的狀態(tài)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1