Using Spin to Generate Tests from ASM Specifications Angelo ...

2 downloads 0 Views 223KB Size Report
Redmond [9]. In order to find a test ... Paul Ammann, Paul Black, and W illiam Ma j ursk. Using model checking to ... In Oscar ierstras and Michel Lemoine, editors ...
   !#" $% '& ( )*+-, *.-# /1032547698;:2?BC03BEDGF3HI6CJKB903BL< MBLNN-8POQ470347R5FSo¥Pehdfd1–ˆ•Pehdˆjhސac”G”7`Sei¡}jhdœ–fn3”@¤3nP¯d;?–ˆd1”-b!dfdf¥5emސodf—Gehdzac˜˜dˆ`“dœojhg] emgiac`?•5o—`KehdˆnPo˜”7eh˜²d|dˆ`“nPj¨jhacdˆgi¢Cgª–ˆ”7jh•Pe’gIgigi—Go;dœdˆnS`P–œ¤odfgiemd(ojhgªac”7jh•K`Qn@¤?v™³}dˆac`?˜d>Ž?›?ucjhdˆgŸ˜o7dˆ`?`“n¬jhdœucnac˜apac`±jmo-°!jhoœac”Gb7`?o5gI¡aco`(`Kn™•Pgi–ˆac`?”G—˜˜Ž?o”@ehn5acgidˆ”Gu3`™–>P‘Idˆ–>akjh£“ ] ´ µ?¶Ÿ·¸3¹º¨»1¼ƒ·3½h¹Ÿ¶ ¿38@/|Á¦=>6C885B90QT03NÅS8@47Ás0?Å3A>A7=f8|F4AfAfÁE¾34785Àm4I=§A>=fBCAf0347¾3N2'4¨4BC0?Ò~À|AU(8@Ê|Á47ËmN4-U385ÄKÌÍ03A>=f8P=f4Ã#4à ¿ƒÈ’854=>BLBCÀIAŸÃ(4GÎCÏ7¿ƒÀhÐ!Af85B9Ѫ=>Ã'F-AfAf85470SÀ.À7B9É@AfÀUK8@=fÁs4Ah6CÂBC447TzAf47A>Àm4GA>BCÀh03AfB92'0S23N-8PìƒÀm< AfÀ7À>É ¿Q4GN-B9ëQNBC850VNÀ¾3É Ã'À|8P=|Af47Nˆ¾303BLÇ?Å347À A>Àm8'Å3B9A>ÉÅSÎ Ê|Â+Ã'25447N44Í47=fÀ.B98PÁEòü Ã(ÀmÅS85NˆA>¾~BCJ“AfÀm4GATþN-=fÀmBpAf474J5=f47BC=fA>474}=>AfBL47< ÀmAÁE85Àm=#ÅSBp/~Af47UÀ¦òñ4ÄKÀ7¿SF69¾347À4¬ÅSÀ>ÀmNBC8503¿ƒ2¨4Ã(8@8ÁTA>47¾363BLÀNˆ¾3¿S47B94V0?4(AfA>T447=fBLÀmÀ>47AfNÀmÀ7ÅSA>É BCÀ>03À> .214747T403ɦÄK4-¿ƒUë3474AˆNœ=fÀzBCAfÃ(B9B9BC0S03¾S224 85UKÅ3Ȑ=IÀhAfà 4à 4A>¾3tU8ËmT U Af|8’ÎkÔ!=>Ѫ4GFP6S47N7ÀmAÀm474GÀ§ÇP478’À.=f¾3=f=(ò™47T)ÀmH§85À>ÁsAfAhÈK/1Ã'4'03À~T254GT3ÅSÀm472525B90þ2P4,0œ¿3Ȑ=>Àh8“AfJP44~Ã'À>À7ȐÉKÀhÌAf4¾SÃù4¨Af¿38K=f85856¦¿ƒNˆ4¾3=>A>47BCN 47ÀÀ7+ÉK˪A>A¾S4~Â+8P6C85= 2PÀBCN7õ“4F0QÂN-È'¾3BL8@Nˆ¾Á}47¿QN¾S47N-à 850Q¿3Àh=fAf85=>ÅS¿ƒN-4AI=>A>8@BC47Á¦À7Å36¨8çBCBLT3Àz¾Q47¾3¿34-6C=fÈØÄ85¾SO3ÂÅS4GÀmNœ4GA>TVUK0S¿347F¦8PB98N-4GÀ>À7É ¾S0S4GT3BC6§0ñ¾3447à =>4(¿BLAhÀÈ™ÀmNˆ¿S¾STBC69ÀfÈP3Â0z41É#'¨BCOƒ0?Û-4-A>âAh8#Â.æ5*“047á“0SôK¿3Tå|=f478KNˆWN¾SJ547Aˆ=fÀ8¿ST=>ÅS8NN-4ñ4GÀ>Ã#¾38ÅST×03BCA>N78B9ëQۈæ-N4GÀm¿ƒ47N-A.Af8(A>¾34Å3¿T347À7É 5687

9:=?

Í4’À>¾38“ ¾S4=f4~¾S8“Â÷47254= RÅ3B9AfSBC85Af¾30S4#À0S47J!4-8BC854¬0zÀf¾3 4 'N Å3. =f =>47'!0PEA'"É SJ“!#E ¾3à 470VJ“+ 4’¾SBL4À1030S4-FÄKA>A|¾S4#ÀhAˆÃ'¾S4#N-Å3=f=f40?A1ÀhAˆBLN™Àh Aˆ A þ 8 S Å > À ñ 4 ) < 3 0 5 8  0 i Æ  T  4 > A  4 f = à 9 B S 0 C B m À A>Ï7¾3é“4GѪFÀm4|+J“BCBC4GÃ#ÀÉÅ336L\OKGF=H =?I:n#G%J IJh5?I:n#G J MLRPkj @@ED W: j B90?A>47˪=>ÁŸJ“¾S6|4(T4-J“ëSBLBp4-ÁEA|8P69856C8“Á}ÂÀ>B9B9à 0S2;¿36CÀ>4Nˆ=|¾3=f47Å3Ã'6C47< À€6CÀ>B B9P4à BC6C¾Q4Æ   D  :4W !" #D ? Y <  D   I !" I ? Y <  I  :4W ? Y <  J A     D   :4: W

W"#$ % #D ? Y <  D        4: W&#$ ! 

? Y <  

Ëi0zAf¾34ÁE856C698“ÂBC032 Â.4~¿S=>4GÀm470PAAhÂ.8 Ã(4A>¾38T3À.ÁE8P=A>¾34Af=f6CBC850 8@Á=fÅ36C47À6CB P4   É Ã(' `b8;T:)476t(:4É6WF4S; 85A =# ?:=BL¾3=f40?AJ“À14|47À~À>Ã'È?Å3:46CW4 4-Đ 47?NŐY A> BC< 850 BC À F

? J A ? ?  Y  ¾3A>BL4N44à A>¾3I ¾S8P 8KŐ:TA¬ÉSB947Ì0?0SA>¾3Àm474ÅS=>=f=>ÀhÅ34GAˆÀ¿B94¾Q8Pà A¾3Ì4 ¾3[.4(ÀhAˆ:#=fNBC847O3TÀ+=ˆ47T±N8 P4B9=f-0±47AfTz¾3¿347?B9ÀI0#ÁE 85Ã(?¬=+8ëSA>T¾3=>474G4~6PÀ.=f8PA>Å3O¾369Af4G4BCÂT3[.B94|A>: ¾#A>¾SNˆ4¨¾Sjh•Pehd A>O?=ˆÈ×¾S6C69BC8P85A>Å30=ˆ25Â.8“6C47BC0ç4À>=GÅ3F=fà 47NˆÇ?¾S4#Å3486LNˆÀ¾×OQ=>4(ÅSà 0VÀm854G=fÀ>ÇP46CB9ÅS2Pà 4¾P0?Af4A>69à BLÈ;¾34Af4(=¾S¿3¾S8P0¾38?8?ÿQÀm4GÀm
8

>í*!ۜß@åœîcôSôîcÛ¬àá Ýs-#âçÜ ß’Ú3ß@Ýsí á -¬á@ôàªÜˆá4,'Û-å  /3Ûí>Û(à0/3Û*“ß“îcôSÛ;á -,4 ÝLå æ“Ýsí>ۈÜàtîcõ™Üˆá“íœí>Ûî9ß@àªÛˆæ  Ýsà /Íà0/3Û  ËA>i0^¾S8P¾S04|FÁE>85T6C6CB98“=fÂ47N-B9A>036C2’ÈçAhN-Â+8P8#=>=fÀ>4B96LA>Å3BpAf4 4¬B9J“à =>Å3ÅS4 4 BCÃ È 0S8@À>AB9à =>4GBC6CÇPAf¾S84¨¾3ò 8P6CTñ  ë3Đ 47FKTÍO3Ő¾3¾34470'=AfÀm8PA>BCÃ(032 BLN(BpBLAfN-B9ÅS8P0S6C=>¾3BCÅ3074'4(4²2P4¾SÁE854Ÿ=fÁE45Å3Fƒ6C6Kà D25ÅSàª6CBCÛ-6903È'åœ2’ÉPT/Ø2P48PëSAf:4  D BCÀ|A>=fÅ34’¿3à 47BC47Àm=Ÿ474-J5Ä3474A>BCN4785À§Ã Af¾S¿3A+¾S4|¾S85Àm6L¿ƒT 47NB90zBpëQA>N7¾34G6LTA>¾3¾Sà 4 TÀm4G47ÇPÀfÅSN-=f4B90SOƒN474TÍA>BC¾S0FƒÈKÁEBC0385=2(4GA>A>4G¾±TBLUKN¿3¾S4;hF¦àtÂ.ífßf4'Ú N-ڃ85í>à áˆÚ3¿3ÛÅ3íœA>àt4(õ A># ¾34(%Af>47ÉSÀm˪A Á ÀhUKAˆ¿30ñ4ëSÀ>470SÇ?TSÅ3À¨474-8(ÄKA>à =ˆ4476LTÍÀ+ÂÁE=fB985A>Ãð¾ BC0U4òT8Pà À¾F?OQBC4G0NëSÀm448K=f478À>O340?BC2|AfÀ§¾3T¨4¨BC0?à A>=ˆ474PNœFA¾3Af8#8“Â+Oƒ474¨J547Af=>=7ÅSFS45A>¾SFKO34(8¬ÅSëSÀm0S4¬T A>¾SN-8P4¬Å3à 0?A>84T=.44-6IÄ3Nˆ854G=ÇPÅSAf=fB9=f47Â+BC4JKN7J5B9F4¾S0?A4'47NˆÅ3¾S4G4;À|ÀhJ5B940S=G2 F Ã(03BC8Ç?Å3T474G6ƒÀÉ Nˆ¾SS4785N =544-7Ä3=fÀIB9¾30)4~ÅSÀhAˆÀ>8BLNT3À+À¾3Af447ÆtNˆÿS¾È Æ ÀhAˆ4¬4-Đ¿36C85=ˆ4(=>4G850SÀ7F3Â.4#¾S












Õ



9Bò™0SÀm85A>=f4G4¾347J54 47N-698P8P¿3à B90S¿32'694A>854 Å3=|¿SAf4#476C85Ç?=ˆÅ38Pà ŸM ~ò™H /äÀm¿ƒ47NBpëQN7AhAfÈK4GBCN7Nœ¿ƒB92P:~038@4ÁE=47A>=z8ÎC47ÏGT3ÔGBpÑA6C8P6946CA>À4'A>¾3=f4.Å369254P47F¦03=>4ÅS=ˆ69Àm¾S474= ¿38@ÁŸ=>4AfÁE474Àm=fA’40S¿3N=f4747À7TFBLNAf47ÀhÀ~Af85¾S¿^480þN-85ÀfAfBLB9Àm0KëSÅ3474T¦É¦A>4G/.ÀhA'AAf25¾3474'0344=ˆ0S=f4P8TÅQN-47TÉ3̾34A>4GÀhA1À>Å3B9A>4’N8'4ÄKAëS694PÉ NˆÀm'1¿ƒ¾3Û 4747, NNÍBBpß@ëQ2í N7p14Á|8P¾30 ¨47=< Å3=>A>ÀmBC4GAf03Àhà ¾3=>4G4 4T0?AfBLA|47N4 ¾3ÇPà 8ÅQT­6CBCBp85Ah0ÈFSÀmO385ŐÁsAhAÂ.A>44PÉ ëS0Semojhac”G` ¢C”7e.š5rªš 

m8@À ¿ƒÁ}47UKNËmBpUzëQBC=ˆN7Àh¾3A>4~4~BC25À47N038“4J5=ˆ4854GA>=§T™¾3Af4¨47A>Àm4GÀmAIÀh4GAˆN-¿3À’85=f0Q47À>T¾3T'BL8“NN-Â0±6CÅ347ÀŸÃ BC0)=>É?¾34Gò™4 8PFG4GB969T¦ÁÅ3à ɓ4#47NÀm8“BCÀ1AfJ5À¬403=+8 A>¾QT4G¾SÇP4~ÅS4zAf447Àm0SÀmB9ÄKNA|4A>¿3¾^A>=>¾S4GNTA>¾Q4 ¾SA 4GAf47¾36ÀmA|4™470KÀmNÅ3J?8KBCB9T3A>=f4¨85403A>=fà 8(47J“4G=|¾34Af47ÀmA1ÀmÅSBpAf4 60%

70%

80%

90%

100%

Basic Rule Cov. for R7 (1) Basic Rule Cov. for not R7 (1) Basic Rule Cov. for R3 Basic Rule Cov. for R4 Basic Rule Cov. test suite Update Rule Coverage R2, 2 branch

statement

Œ SŒ Z}”@nPd–f”bGdfemo7—7d|ehdfgi•?ukjhg

  

ÁE25854=+0SA>4¾3=ˆ4¾S=(¾QOƒ¾;A>¾3ô8PâS¿Qài8?Ûí#Àm4GÛfT;óôS, B9A>ßNۏ8“í>J5ۈ4ßP=ˆÜÀ./SÂß5ã¾3î94Û0 /KAfõf¾3ÚS4’Û-íˆ25åœÅQàiߓ< Û ÏGï

96Å347J5BLBC403À=|2’¿3< =fÂ85¿Q¾3O34A>A>¾3à BL47N-=Å3BCÀ¨6L=f8PBLNA#¾32P4;40385BC=ˆ85À¨0¿SÅS=>À>4GB9Àm0S472ñ0PA#à < 8KT3à 44-6+AfNˆ¾3¾S847TÍN 54A>78™=fÀ’2547¾S03¿ƒ47Ç?8PÅ3À>474T)0QN-BC470^ÀÀmÅQ47ÀmJ5BC4703=f2ñ4G¾SÀÅ3N=f=>47B9TA>47BC=>0þBC850™A>47=>BLÀÃ'NÀ¬¾S,(4zô0KàªÅ3ß@Ã#àt݀á@Oƒâç4=(ß58@æ5Á|ۈóBCôS0Sß5NÜ85õ =f-=>4GÉNœËiA’0^Ã#Î Å3ÑAfA>4¬¾S4GÀhAzÀ>Å3B9A>47À ÁEM=>8P47TÃðà /~8P0SUTûò Î Õ@À>Ñ®¿QÉ4GËiN-0B9ëQ8PN=f47BC85=~0SA>À8VBLÀëS0SAfTþ¾S4PTF¦4A>JP¾S446C85È)¿ƒ4-47ÄKTA>=ˆOK¾38?ÀhÀmAˆ858A>¾3§47U0;òñÅSÀÀ>4|BLÀA>Å34GÀh0SA.T254GN-47BL03T34=ˆ¿Q4BC=f85BL0SA>¾3¾34|4VBC8P0çà ¿S4 6CA¬8;À>BC470?Ç?A>Å3=f480QTN-ÅS47N-À~4(ÁEÀm=f8P85à à 4#/¨=ˆÀ’Ã(BC8580×T47A>6C47À1NˆÂ¾S03BpAfBC¾™Ç?Å3B94G03À¬ëS03A>¾SB9A>A>=ˆ¾S4ëS¿303=fB947A>À>4™4=fTJ5854GÃ'T¦F34G470PTAfÅS69N-È'4¨Â.A>¾S85=4¨KB6C9B 0SP42’6CB9A>¾S8 8?BC8Ã Tz¿38@=>Á8“JPAf¾3414~8PÅ3ÀmAf=.A>8K4~854-6ĐB9Af8P8(0;À>¿3Å3=f¿385¿ƒO3856C=>4Aà A>4GtÀh Æ Àm¿ƒ47NBpëQN7eœ¤ { ”@n5dˆu–m?dˆ–m£@ac`?—gi•?ŽPސ”7eijŸ¢L”e.jh?d1\.š { PI%acY—G P$& ']€uc3Zdˆb!mdf¡?u§ŽKu9oo—G`?dˆ—7g•K "o7 —7'dGO¤ç r®"@R` ¡ Q"5, S¤ ()7E;, T'$9853L/7-!U $*'G% V$*+W(XE(, Y S #@¤|‚¤ ]t°P¤5Z}”7•Peijh”Gacg}o7`Kn y o-b@apn ¤“‚¦oeh`Kogˆ¤ y ”“–ˆ•?˜df`@jmo-jhac”G`¢L”egho-¢Ldfjtv–fehakjhac–œo7ugi”¢Cj®‘oehdG¤Qr®`   C[=\]$98^ %$C> ,.-![_`I'$*K[a5[":-.Ibc> @d/Bœ¡?Ž?o7—7dˆg  #/O " 5¡³o7ukjhac˜”7ehdG¡ {(y ¡  " 5¤ "5¤|\Ÿ`Kn@ e e’[`P—Gdˆucgˆ¡ Q”“d # dˆa ®gˆ¡o7`Knñš ª”7•?£!d { o7•“‘¤¯ƒdˆgªj~—Gdˆ`Pdfemojhac”7`ñ¢C”7eac`“jhdˆucucac—Gdˆ`“j`Pdfji] ‘}-!”7eh3£@k)g§G•?$&gi 'acj`P—¨I V˜+ '”@n5 dˆ u\–>Pb\Tdˆ–mf-£5¡?acŽ?`Po7—P—7¤dˆrtg`( [§ C¤PO³ ehac5`?¤S£@giš@˜’ŽPeho5ac`?¡@dˆ—7nPdfeœakjh¡ ”7 eœ!¡ Qb @E1¤ -2EIM> @5fCgS¡V”Guk¢9emo7˜ š5–m@•?ukjhdG¡Po7`?n { oeh—7•?gmwdˆo7`?dfgˆ¤Z}”7`P] ¢C”7 @eh¡ ˜’{ oac`?–f–ˆehd|”Ggijh”dˆ¢CgªjjhacŸ`?—dœo‘Igidœakojh eh–mQo 8?¡gªž.jiem–fojh”–fj8dfgªejmo- jh"d~˜’G¤ o7–m?ac`Pdˆgˆ¤¯Qdˆ–>P`?ac–œou+dfސ”7eij { š@Ÿ]t¯I] "f]  5¤|¤ND.acdfeh”7`?go`Knz°P¤ y dfeiehac–m£3¤~š@ސdˆ–ˆapo7u¦acgigi•?d~”G`zgiސdˆ–ˆak›K–œo-jhac”G`P]@8?o7gidœn;jhdˆgªjhac`?—P¤Ir'$*K"( $& ' $*5g"u '  x" ($*+#yW V, +(TzV*, 9$*YJ:+I_Ql{|MBœ¡ Pq !2w :  O"@¡ y df–ˆdˆ˜ 8d>e "5¤ G ¤ ¨¤P°P%¤ D.”7u ˆ˜’o7`P`Q¤¦¯Pd˜”@nPdfuS–m?df–>£!d>eŸšP‚r 1!¤  !"RQ% (%V( V$*+U1`I'$*K"( l*}  ''57¡  Pq #Gw2:   O  #@¡ { oˆv  " @¤ @¤|\|¤°G'd ~3dfehgi”G`©;ž ~3•Pjijœ;¡ vak‘dˆ4a +ac”G`?—5¡|o7`?n š5Ko”œvPac`P—× Sac•Q¤ Zehacjhd>eha9oþ¢L”e™—Gdf`?dfemo-jhap`P— gi9ސƒdf–ˆak›K–œ-!o-jhap3”7`Pk@] ,„8K …`ogi-!dœn±3jhkUdfgªGbjh$&gˆ '¤jI%r®p` Y 0"$& ' 3Z'$98#4:* !-2!-€†-. %I?$& '> '@T)@V(Bœ¡P$*+ŽKo)—G(dˆ,1g-!" O '  '7¡  ‚¤ M5N ''}  "  5¤ y ¤œ°P¤œŸac–>?oemn5gi”G`Q¡œš3¤- ¤œ\ŸKo5¡ˆo7`?n¯.¤ž¨¤Zž ‡ { o7ucucdfv“¤!š5ސdˆ–ˆak›?–œojhac”G`5@] 8Ko7gidˆnjhdfgªjƒ”emo7–ˆucdˆgƒ¢C”7e ehdˆo7–f9jhNacb! d ''gª9v5gª7jh¡PdˆŽK˜o7gˆ—7¤ƒdˆgr®J` M#/O   5¤Q9š@ŽP1ehac`?—7df$98Ueœ¡ Z{ \Vˆ%oˆ$9v 8ƒ  U$&“ ' ¤ ($*+(,"-!/ ' ') ' 1`Ir'$*K"( "  P¤|°5¤Iš5–m?˜apn3¤­Z}”7˜Ž?acucap`P—ño 8Pgªjiemo7–fj¬gªjmojhd;˜’o7–m?ac`Pdˆgjh”±†Z ‰j‰¨Š ¤ sG (,jr‹taU9u '''(, -!3k)G$& 'jI V+ ' >¡ @q "-w>¡ G¤ #@¤|°5¤š@–>P˜a9n3¤" U$*G% V$*+$HE 3Snmr '>¡ G¤  "5 ¤ +ehdf—G”7eiv¯o7gigid>v“¤Ø¯Pdzdf–ˆ”G`P”G˜ac–'ac˜ŽKo7–>jhg#ac`?oGnPdˆ«@•?ojhdˆac`5¢Cemo7gªjieh•P–fjh•Pehd'gi”¢Cjt‘§oehd;jhdˆgªji] ac¯Q`Pdˆ—P–>¤1P`?¯ƒ”7dˆup–m”7?—7`Pv“ac¡ –œ{o7uoˆŸv dˆ ސ"”7"ei@j¤ ‚upo7`P`?ac`?—¬+dfސ”7eij "-] 5¡ .ojhac”G`?o7ur®`Pgªjhacjh•5jhd¨”¢Eš“jmo7`KnPoemn5go7`?n  @¤|[upo7ac`?d.°P5¤ Vd>vP•P£!dfeœ¤S¯Qemo`?giupojmo 8?acucakj®v#o7`?n’nPdˆ–ˆapnPo 8?acucakj®v’«“•Pdˆgªjhac”G`?g¢L”eehdˆgªjiehac–fjhdœn’–ˆupo7gigidˆg ”¢¦ŽPeh”7—7emo˜úgi–m?df˜’o7gˆ†¤ Ib E6ŒsG (,.-!3k)G$*57¡ 5q “2w : #" O#  @¡    ¤ 5¤jD+”G`P—Sސ@•Q¡K‚¦ojiehac–>£ \1¤w1¤Doupus¡So`Kn;°G”GP`D¨¤|¤ { oˆv“¤š@”7¢9j®‘§o-ehd~•P`?akj.jhdf¥@j+–ˆ”-b!dfemo—Gd o`Kn¬oGnPdˆ«@•?o7–fv“!¤ E1-26-!3k)G$*5ƒIUG u 'Yh¡   q !2w : ""O! ! @¡ y dˆ–fdˆ˜ 8dfe  " @¤ @¤|‚¦o•?u\Ÿ˜˜’o7`P`Q¡7‚¦o7•Pu3³}upo7–m£3¡“o7`Knþacucucapo7˜

Ï!Ô

Suggest Documents