Hummerfedora16

fedora16  时间:2021-05-01  阅读:()
TestingIdempotenceforInfrastructureasCodeWaldemarHummer1,FlorianRosenberg2,FabioOliveira2,andTamarEilam21DistributedSystemsGroup,ViennaUniversityofTechnology,Austriahummer@dsg.
tuwien.
ac.
at2IBMT.
J.
WatsonResearchCenter,YorktownHeights,NY,USA{rosenberg,fabolive,eilamt}@us.
ibm.
comAbstract.
Duetothecompetitivenessofthecomputingindustry,soft-waredevelopersarepressuredtoquicklydelivernewcodereleases.
Atthesametime,operatorsareexpectedtoupdateandkeepproductionsys-temsstableatalltimes.
Toovercomethedevelopment–operationsbar-rier,organizationshavestartedtoadoptInfrastructureasCode(IaC)toolstoecientlydeploymiddlewareandapplicationsusingautoma-tionscripts.
Theseautomationscompriseaseriesofstepsthatshouldbeidempotenttoguaranteerepeatabilityandconvergence.
Rigoroustestingisrequiredtoensurethatthesystemidempotentlyconvergestoade-siredstate,startingfromarbitrarystates.
Weproposeandevaluateamodel-basedtestingframeworkforIaC.
Anabstractedsystemmodelisutilizedtoderivestatetransitiongraphs,basedonwhichwesystemati-callygeneratetestcasesfortheautomation.
Thetestcasesareexecutedinlight-weightvirtualmachineenvironments.
OurprototypetargetsonepopularIaCtool(Chef),buttheapproachisgeneral.
WeapplyourframeworktoalargebaseofpublicIaCscriptswrittenbyoperators,showingthatitcorrectlydetectsnon-idempotentautomations.
Keywords:MiddlewareDeployment,SoftwareAutomation,Idempo-tence,Convergence,InfrastructureasCode,SoftwareTesting.
1IntroductionTheever-increasingneedforrapidlydeliveringcodechangestosatisfynewre-quirementshasledmanyorganizationstorethinktheirdevelopmentpractices.
Acommonimpedimenttothisdemandforquickcodedeliverycyclesisthewell-knowntensionbetweensoftwaredevelopersandoperators:theformerareconstantlypressuredtodelivernewreleases,whereasthelattermustkeeppro-ductionsystemsstableatalltimes.
Notsurprisingly,operatorsarereluctanttoacceptchangesandtendtoconsumenewcodeslowerthandeveloperswouldlike.
Inordertorepeatedlydeploymiddlewareandapplicationstotheproductionenvironment,operationsteamstypicallyrelyonautomationlogic(e.
g.
,scripts).
Asnewapplicationreleasesbecomeavailable,thislogicmayneedtoberevisitedtoaccommodatenewrequirementsimposedontheproductioninfrastructure.
Asautomationlogicistraditionallynotdevelopedfollowingthesamerigorofsoft-wareengineeringusedbyapplicationdevelopers(e.
g.
,modularity,re-usability),D.
EyersandK.
Schwan(Eds.
):Middleware2013,LNCS8275,pp.
368–388,2013.
cIFIPInternationalFederationforInformationProcessing2013TestingIdempotenceforInfrastructureasCode369automationstendtoneverachievethesamelevelofmaturityandquality,incur-ringanincreasedriskofcompromisingthestabilityofthedeployments.
Thisstate-of-aairshasbeenfuelingtheadoptionofDevOps[1,2,3]practicestobridgethegapbetweendevelopersandoperators.
OneofthepillarsofDevOpsisthenotionofInfrastructureasCode(IaC)[1,4],whichfacilitatesthedevelop-mentofautomationlogicfordeploying,conguring,andupgradinginter-relatedmiddlewarecomponentsfollowingkeyprinciplesinsoftwareengineering.
IaCau-tomationsareexpectedtoberepeatablebydesign,sotheycanbringthesystemtoadesiredstatestartingfromanyarbitrarystate.
Torealizethismodel,state-of-the-artIaCtools,suchasChef[5]andPuppet[6],providedeveloperswithseveralabstractionstoexpressautomationstepsasidempotentunitsofwork.
Thenotionofidempotencehasbeenidentiedasthefoundationforrepeat-able,robustautomations[7,8].
Idempotenttaskscanbeexecutedmultipletimesalwaysyieldingthesameresult.
Importantly,idempotenceisarequirementforconvergence[7],theabilitytoreachacertaindesiredstateunderdierentcir-cumstancesinpotentiallymultipleiterations.
Thealgebraicfoundationsoftheseconceptsarewell-studied;however,despite(1)theirimportanceaskeyelementsofDevOpsautomationsand(2)thecriticalroleofautomationstoenablefrequentdeploymentofcomplexinfrastructures,testingofidempotenceinrealsystemshasreceivedlittleattention.
Tothebestofourknowledge,noworktodatehasstudiedthepracticalimplicationsofidempotenceorsoughttosupportdevelop-ersascertainthattheirautomationsidempotentlymakethesystemconverge.
WetacklethisproblemandproposeaframeworkforsystematictestingofIaCautomationscripts.
Givenaformalmodeloftheproblemdomainandinputcov-eragegoalsbasedonwell-denedcriteria,aStateTransitionGraph(STG)oftheautomationundertestisconstructed.
TheresultingSTGisusedtoderivetestcases.
AlthoughourprototypeimplementationisbasedonChef,theapproachisdesignedforgeneralapplicability.
WerelyonAspect-OrientedProgramming(AOP)toseamlesslyhookthetestexecutionharnessintoChef,withpracti-callynocongurationeortrequired.
Sinceecientexecutionoftestcasesisakeyissue,ourprototypeutilizesLinuxcontainers(LXC)aslight-weightvirtualmachine(VM)environmentsthatcanbeinstantiatedwithinseconds.
Ourex-tensiveevaluationcoverstestingofroughly300publiclyavailable,real-lifeChefscripts[9].
Afterexecuting3671testcases,ourframeworkcorrectlyidentied92ofthosescriptsasnon-idempotentinourtestenvironment.
Next,weprovidesomebackgroundonChefandhighlighttypicalthreatstoidempotenceinautomations(§2),presentanoverviewofourapproach(§3),de-tailtheunderlyingformalmodel(§4),delveintoSTG-basedtestcasegenerationandexecution(§5),unveilourprototypeimplementation(§6),discussevalua-tionresults(§7),summarizerelatedwork(§8),andwrapupthepaper(§9).
2BackgroundandMotivationInthissectionweexplaintheprinciplesbehindmodernIaCtoolsandtheim-portanceoftestingIaCautomationsforidempotence.
AlthoughwecouchourdiscussioninthecontextofChef[5],thesameprinciplesapplytoallsuchtools.
370W.
Hummeretal.
ChefBackground.
InChefterminology,automationlogiciswrittenasrecipes,andacookbookpackagesrelatedrecipes.
Followingadeclarativeparadigm,recipesdescribeaseriesofresourcesthatshouldbeinaparticularstate.
Listing1.
1showsasamplerecipeforthefollowingdesiredstate:directory"/tmp/mydir"mustexistwiththespeciedpermissions;package"tomcat6"mustbeinstalled;OSservice"tomcat6"mustrunandbeconguredtostartatboottime.
Eachresourcetype(e.
g.
,package)isimplementedbyplatform-dependentprovidersthatproperlyconguretheassociatedresourceinstances.
Chefen-surestheimplementationofresourceprovidersisidempotent.
Thus,evenifoursamplerecipeisexecutedmultipletimes,itwillnotfailtryingtocreateadirec-torythatalreadyexists.
Thesedeclarative,idempotentabstractionsprovideauniformmechanismforrepeatableexecution.
Thismodelofrepeatabilityisim-portantbecauserecipesaremeanttoberunperiodicallytooverrideout-of-bandchanges,i.
e.
,preventdriftsfromthedesiredstate.
Inotherwords,arecipeisexpectedtocontinuouslymakethesystemconvergetothedesiredstate.
§¤1directory"tmp/mydir"do2owner"root"3group"root"4mode07555action:create6end7package"tomcat6"do8action:install9end10service"tomcat6"do11action[:start,:enable]12endListing1.
1.
DeclarativeChefRecipe§¤1bash"buildphp"do2cwdConfig[:filecachepath]3code2000downloads),weidentiedanon-trivialidempotencebugrelatedtoincorrectlepermissions.
Theversionnumberindicatesthatthecookbookhasundergoneanumberofrevisionsandxes,butthisissuewasapparentlynotdetected.
Table6.
TasksinChefCookbooktomcat6TaskResourceTypeDescriptiona9directoryCreatesdirectory/etc/tomcat6/a16bashCopieslesto/etc/tomcat6/asusertomcat;onlyexecutedif/etc/tomcat6/tomcat6.
confdoesnotexist.
a21fileWritesto/etc/tomcat6/logging.
propertiesasuserroot.
a22serviceEnablestheservicetomcat(i.
e.
,automaticstartatboot)a23fileCreatesle/etc/tomcat6/tomcat6.
confThecrucialtasksareoutlinedinTable6(theentireautomationconsistsof25tasks).
ApplyingthetestcoveragesettingsfromSection7.
1,thetestsuiteforthiscookbookconsistsof23testcases,outofwhichtwotestcases(denotedt1,t2)failed.
Testt1isconguredtoruntasksequencea1,.
.
.
,a21,a1,.
.
.
,a25(simulatingthattheautomationisterminatedandrepeatedaftertaska21),andtestt2isconguredwithtasksequencea1,.
.
.
,a22,a1,.
.
.
,a25(restartingaftertaska22).
Bothtestcasesfailedatthesecondexecutionoftaska16,denotede(a16)[2]inourmodel,whichcopiescongurationlestoadirectorypreviouslycreatedbytaska9.
Inthefollowingweclarifywhyandhowthisfaulthappens.
Thereasonwhyt1andt2failedwhenexecutinge(a16)[2]isthatatthetimeofexecutionthele/etc/tomcat6/logging.
propertiesisownedbyuserroot,anda16attemptstowritetothesameleasusertomcat(resultingin"permissiondenied"fromtheoperatingsystem).
Weobservethattaska21alsowritestothesamele,butincontrasttotaska16notasusertomcat,butasuserroot.
Atexe-cutione(a21)[1],thecontentofthelegetsupdatedandtheleownershipissettoroot.
Hence,thecookbookdeveloperhasintroducedanimplicitdependencybetweentasksa16anda21,whichleadstoidempotenceproblems.
Notethattheother21testcasesdidnotfail.
Clearly,alltestcasesinwhichtheautomationisrestartedbeforetheexecutionoftaska21arenotaectedbythebug,sincetheownershipoftheledoesnotgetoverwritten.
Theremainingtestcasesinwhichtheautomationwasrestartedaftera21(i.
e.
,aftera23,a24,anda25)didnotfailduetoaconditionalstatementnotifwhichensuresthata16isonlyexecutedif/etc/tomcat6/tomcat6.
confdoesnotexist.
ChefCookbookmongodb-10gen.
Thethirdinterestingcasewediscussiscook-bookmongodb-10gen(installsMongoDB),forwhichourframeworkallowedusto384W.
Hummeretal.
detectanidempotencebugintheChefimplementationitself.
TherelevanttasksareillustratedinTable7:a11installspackagemongodb-10gen,a12createsadirec-tory,anda13createsanothersub-directoryandplacescongurationlesinit.
Ifinstalledproperly,thepackagemongodb-10gencreatesuserandgroupmongodbonthesystem.
However,sincethecookbookdoesnotconguretherepositoryprop-erly,thispackagecannotbeinstalled,i.
e.
,taska11failedinourtests.
Now,astaska12isexecuted,itattemptstocreateadirectorywithuser/groupmongodb,whichbothdonotexistatthattime.
Letusassumethetestcasewithtasksequencea1,a13,a1,a13.
Asitturnsout,therstexecutionofa13cre-ates/data/mongodbwithuser/groupsettoroot/mongodb(eventhoughgroupmongodbdoesnotexist).
Onthesecondexecutionofa12,however,Chefagaintriestosetthedirectory'sownershipandreportsanerrorthatusermongodbdoesnotexist.
ThisbehaviorisclearlyagainstChef'snotionofidempotence,becausetheerrorshouldhavebeenreportedonthersttaskexecutionalready.
Infact,ifthecookbookwasrunonlyonce,thiscongurationerrorwouldnotbedetected,butmayleadtoproblemsatruntime.
Wesubmittedabugreport(OpscodeticketCHEF-4236)whichhasbeenconrmedbyChefdevelopers.
Table7.
TasksinChefCookbookmongodb-10genTaskResourceTypeDescriptiona11packageInstallspackagemongodb-10gena12directoryCreatesdirectory/dataa13remotedirectoryCreatesdirectory/data/mongodbasuser/groupmongodbLessonsLearned.
Thekeytake-awaymessageoftheseillustrativereal-worldexamplesisthatautomationsmaycontaincompleximplicitdependencies,whichIaCdevelopersareoftennotawareof,butwhichcanbeecientlytestedbyourapproach.
Forinstance,theconditionalnotifina16ofrecipetomcat6wasintroducedtoavoidthattheconglegetsoverwritten,butthedeveloperwasapparentlynotawarethatthischangebreakstheidempotenceandconvergenceoftheautomation.
Thisexampledemonstratesnicelythatsomeidempotenceandconvergenceproblems(particularlythoseinvolvingdependenciesamongmultipletasks)cannotbeavoidedsolelybyprovidingdeclarativeandidempotentresourceimplementations(e.
g.
,asprovidedinChef)andhencerequiresystematictesting.
7.
3IdempotenceforDierentTaskTypesTable8showsthenumberofidentiednon-idempotenttasks(denoted#NI)fordierenttasktypes.
ThetasktypescorrespondtotheChefresourcesusedintheevaluatedcookbooks.
Thesetofscriptingtasks(execute,bash,script,rubyblock)makesupfor90ofthetotal263non-idempotenttasks,whichcon-rmsoursuspicionthatthesetasksareerror-prone.
Interestingly,theservicetasktypealsoshowsmanynon-idempotentoccurrences.
Lookingfurtherintothisissue,weobservedthatservicetasksoftencontaincustomcodecommandstostart/restart/enableservices,whicharepronetoidempotenceproblems.
TestingIdempotenceforInfrastructureasCode385Table8.
Non-IdempotentTasksByTaskTypeTaskType#NITaskType#NITaskType#NIservice66directory10link3execute44remotefile10bluepillservice2package30gempackage7cookbookfile2bash27file5git2template19pythonpip5user2script15rubyblock4aptpackage17.
4IdempotenceforDierentCookbookVersionsWeanalyzedtheevolutionofthe20mostpopularChefcookbooks.
There-sultsinTable9leaveoutcookbookswithemptydefaultrecipes(application,openssl,users)andcookbookswithoutanynon-idempotenttasks:mysql,java,postgresql,build-essential,runit,nodejs,git,ntp,python,revealcloud,graylog2.
Forthecookbooksundertest,newreleasesxedidempotenceissues,oratleastdidnotintroducenewissues.
Ourtoolautomaticallydeterminesthesedata,henceitcanbeusedtotestautomationsforregressionsandnewbugs.
Table9.
EvolutionofNon-IdempotentTasksByIncreasingVersionCookbooki-9i-8i-7i-6i-5i-4i-3i-2i-1iapache2(i=1.
4.
2)1110000000nagios(i=3.
1.
0)1100000000zabbix(i=0.
0.
40)2222222222php(i=1.
1.
4)1100000000tomcat6(i=0.
5.
4)33333321riak(i=1.
2.
1)11111100008RelatedWorkExistingworkhasidentiedtheimportanceofidempotenceforbuildingreli-abledistributedsystems[13]anddatabasesystems[14].
Overthelastyears,theimportanceofbuildingtestablesystemadministration[8]basedonconvergentmodels[15,7]becamemoreprevalent.
cfengine[16]wasamongthersttoolsinthisspace.
Morerecently,otherIaCframeworkssuchasChef[5]orPuppet[6]heavilyrelyontheseconcepts.
However,automatedandsystematictestingofIaCforverifyingidempotenceandconvergencehasreceivedlittleattention,despitetheincreasingtrendofautomatingmulti-nodesystemdeployments(i.
e.
,contin-uousdelivery[17])andplacementofvirtualinfrastructuresintheCloud[18].
ExistingIaCtestframeworksallowdeveloperstomanuallywritetestcodeusingcommonBehavior-DrivenDevelopment(BDD)techniques.
ChefSpec[19]orCucumber-puppet[20]allowtoencodethedesiredbehaviorforverifyingin-dividualautomationtasks(unittesting).
TestKitchen[21]goesonestepfurtherbyenablingtestingofmulti-nodesystemdeployments.
Itprovisionsisolatedtest386W.
Hummeretal.
environmentsusingVMswhichexecutetheautomationundertestandverifytheresultsusingtheprovidedtestframeworkprimitives.
Thiskindoftestingisamanualandlaborintensiveprocess.
OurframeworktakesadierentapproachbysystematicallygeneratingtestcasesforIaCandexecutingtheminascalablevirtualizedenvironment(LXC)todetecterrorsandidempotenceissues.
Extensiveresearchisconductedonautomatedsoftwaredebuggingandtest-ingtechniques,includingmodel-basedtesting[22]orsymbolicexecution[23],aswellastheirapplicationtospecializedproblemareas,forinstancecontrolowbased[24]ordataowbased[25]testingapproaches.
Mostexistingworkandtools,however,arenotdirectlyapplicabletothedomainofIaC,fortwomainreasons:(i)IaCexposesfairlydierentcharacteristicsthantraditionalsoftwaresystems,i.
e.
,idempotenceandconvergence;(ii)IaCneedstobetestedinrealen-vironmentstoensurethatsystemstatechangestriggeredbyautomationscriptscanbeassertedaccordingly.
Suchtestsarehardtosimulate,hencesymbolicexecutionwouldhavelittlepracticalvalue.
Eventhoughdry-runcapabilitiesexist(e.
g,Chef'swhy-runcapability),theycannotreplacesystematictesting.
Theapplicabilityofautomatedtestingisakeyrequirementidentiedbyotherapproaches[26,27,28],whetherthetesttargetissystemsoftwareorIaC.
Existingapproachesformiddlewaretestinghavelargelyfocusedonperfor-manceandeciency.
Casaleetal.
[29]useautomaticstresstestingformulti-tiersystems.
Theirworkplacesburstyservicedemandsonsystemresources,inordertoidentifyperformancebottlenecksaswellaslatencyandthroughputdegrada-tions.
Otherworkfocusesontestingmiddlewareforelasticity[30],whichisbecomingakeypropertyforCloudapplications.
Bucuretal.
[26]proposeanautomatedsoftwaretestingapproachthatparallelizessymbolicexecutionsforeciency.
Thesystemundertestcaninteractwiththeenvironmentviaa"sym-bolicsystemcall"layerthatimplementsasetofcommonPOSIXprimitives.
Theirapproachcouldpotentiallyenhanceourworkandmayspeeduptheper-formance,butrequiresacompleteimplementationofthesystemcalllayer.
Otherapproachesdealwithndingandxingcongurationerrors[31,32].
Faultscausedbycongurationerrorsareoftenintroducedduringdeploymentandremaindormantuntilactivatedbyaparticularaction.
Detectingsucherrorsischallenging,buttoolslikeAutoBash[32]orChronus[31]caneectivelyhelp.
AnaturalextensionwouldbetoalsotakeintoaccounttheIaCscriptstondthecongurationparameterthatpotentiallycausedtheproblem.
Burgetal.
[28]proposeautomatedsystemtestsusingdeclarativevirtualmachines.
Declarativespecicationsdescribeexternaldependencies(e.
g.
,accesstoexternalservices)togetherwithanimperativetestscript.
Theirtoolthenbuildsandinstantiatesthevirtualmachinenecessarytorunthescript.
Ourapproachleveragespre-builtcontainersinLXC;dynamicallycreatingadeclarativespecicationwouldbepossiblebutbuildingaVMismorecostlythanbringingupanLXCcontainer.
9ConclusionWeproposeanapproachformodel-basedtestingofInfrastructureasCode,aim-ingtoverifywhetherIaCautomations,suchasChefrecipes,canrepeatedlyTestingIdempotenceforInfrastructureasCode387makethetargetsystemconvergetoadesiredstateinanidempotentmanner.
GiventheIaCmodelofperiodicre-executions,idempotenceisacriticalprop-ertywhichensuresrepeatabilityandallowsautomationstostartexecutingfromarbitraryinitialorintermediatestates.
Ourextensiveevaluationwithreal-worldIaCscriptsfromtheOpsCodecommunityrevealedthattheapproacheectivelydetectsnon-idempotence.
Outofroughly300testedChefscripts,almostathirdwereidentiedasnon-idempotent.
Inaddition,wewereabletodetectandreportabugintheChefimplementationitself.
Ournovelapproachopensupexcitingfutureresearchdirections.
First,wewillextendourprototypetohandletheexecutionofdistributedautomationswithcross-nodedependencies,whichisoftenusedtodeploymulti-nodesystems.
Second,weplantoapplytheapproachtootherIaCframeworkslikePuppet,whoseexecutionmodeldoesnotassumetotaltaskordering.
Third,weenvisionthatsystematicdebugging/analysiscanbepushedfurthertoidentifyimplicitdependenciesintroducedbyIaCdevelopers.
Moreover,wearecurrentlyextend-ingthestatecapturingmechanismtodetectne-grainedchangesonsystemcalllevel.
Thehypothesisisthattheimprovedmechanismcanleadtodetectionofadditionalnon-idempotencecasesstemmingfromsideeectswecurrentlymiss.
References1.
H¨uttermann,M.
:DevOpsforDevelopers.
Apress(2012)2.
Loukides,M.
:WhatisDevOpsO'ReillyMedia(2012)3.
Schaefer,A.
,Reichenbach,M.
,Fey,D.
:ContinuousIntegrationandAutomationforDevops.
IAENGTrans.
onEngineeringTechnologies170,345–358(2013)4.
Nelson-Smith,S.
:Test-DrivenInfrastructurewithChef.
O'Reilly(2011)5.
Opscode:http://www.
opscode.
com/chef/6.
PuppetLabs:http://puppetlabs.
com/7.
Couch,A.
L.
,Sun,Y.
:Onthealgebraicstructureofconvergence.
In:Brunner,M.
,Keller,A.
(eds.
)DSOM2003.
LNCS,vol.
2867,pp.
28–40.
Springer,Heidelberg(2003)8.
Burgess,M.
:Testablesystemadministration.
Commun.
ACM54(3),44–49(2011)9.
OpscodeCommunity:http://community.
opscode.
com/10.
Utting,M.
,Pretschner,A.
,Legeard,B.
:Ataxonomyofmodel-basedtestingap-proaches.
SoftwareTesting,VericationandReliability22(5),297–312(2012)11.
Outt,J.
,Liu,S.
,Abdurazik,A.
,Ammann,P.
:Generatingtestdatafromstate-basedspecications.
SoftwareTesting,VericationandReliability13,25–53(2003)12.
Nie,C.
,Leung,H.
:Asurveyofcombinatorialtesting.
ACMComp.
Surv.
(2011)13.
Helland,P.
:Idempotenceisnotamedicalcondition.
ACMQueue10(4)(2012)14.
Helland,P.
,Campbell,D.
:Buildingonquicksand.
In:ConferenceonInnovativeDataSystemsResearch,CIDR(2009)15.
Traugott,S.
:Whyordermatters:Turingequivalenceinautomatedsystemsad-ministration.
In:16thConferenceonSystemsAdministration(LISA),pp.
99–120(2002)16.
Zamboni,D.
:LearningCFEngine3:Automatedsystemadministrationforsitesofanysize.
O'ReillyMedia,Inc.
(2012)17.
Humble,J.
,Farley,D.
:ContinuousDelivery:ReliableSoftwareReleasesthroughBuild,Test,andDeploymentAutomation.
Addison-WesleyProfessional(2010)388W.
Hummeretal.
18.
Giurgiu,I.
,Castillo,C.
,Tantawi,A.
,Steinder,M.
:Enablingecientplacementofvirtualinfrastructuresinthecloud.
In:Narasimhan,P.
,Triantallou,P.
(eds.
)Middleware2012.
LNCS,vol.
7662,pp.
332–353.
Springer,Heidelberg(2012)19.
ChefSpec:https://github.
com/acrmp/chefspec20.
Cucumber-puppet:http://projects.
puppetlabs.
com/projects/cucumber-puppet21.
TestKitchen:https://github.
com/opscode/test-kitchen22.
Pretschner,A.
:Model-basedtesting.
In:Proceedingsofthe27thInternationalCon-ferenceonSoftwareEngineering,ICSE2005,pp.
722–723(2005)23.
Cadar,C.
,Godefroid,P.
,etal.
:Symbolicexecutionforsoftwaretestinginpractice:preliminaryassessment.
In:33rdInt.
Conf.
onSoftwareEngineering,ICSE(2011)24.
BenavidesNavarro,L.
D.
,Douence,R.
,S¨udholt,M.
:Debuggingandtestingmiddle-warewithaspect-basedcontrol-owandcausalpatterns.
In:Issarny,V.
,Schantz,R.
(eds.
)Middleware2008.
LNCS,vol.
5346,pp.
183–202.
Springer,Heidelberg(2008)25.
Hummer,W.
,Raz,O.
,Shehory,O.
,Leitner,P.
,Dustdar,S.
:Testingofdata-centricandevent-baseddynamicservicecompositions.
In:Softw.
Test.
,Verif.
&Reliab.
(2013)26.
Bucur,S.
,Ureche,V.
,Zamr,C.
,Candea,G.
:Parallelsymbolicexecutionforauto-matedreal-worldsoftwaretesting.
In:ACMEuroSys.
Conf.
,pp.
183–198(2011)27.
Candea,G.
,Bucur,S.
,Zamr,C.
:Automatedsoftwaretestingasaservice.
In:1stACMSymposiumonCloudComputing(SoCC),pp.
155–160(2010)28.
vanderBurg,S.
,Dolstra,E.
:Automatingsystemtestsusingdeclarativevirtualmachines.
In:21stInt.
SymposiumonSoftwareReliabilityEngineering(2010)29.
Casale,G.
,Kalbasi,A.
,Krishnamurthy,D.
,Rolia,J.
:Automaticstresstestingofmulti-tiersystemsbydynamicbottleneckswitchgeneration.
In:Bacon,J.
M.
,Cooper,B.
F.
(eds.
)Middleware2009.
LNCS,vol.
5896,pp.
393–413.
Springer,Heidelberg(2009)30.
Gambi,A.
,Hummer,W.
,Truong,H.
L.
,Dustdar,S.
:TestingElasticComputingSystems.
IEEEInternetComputing(2013)31.
Whitaker,A.
,Cox,R.
,Gribble,S.
:Congurationdebuggingassearch:ndingtheneedleinthehaystack.
In:Symp.
onOp.
Sys.
Design&Impl(OSDI),p.
6(2004)32.
Su,Y.
Y.
,Attariyan,M.
,Flinn,J.
:AutoBash:improvingcongurationmanagementwithoperatingsystemcausalityanalysis.
In:SOSP(2007)

Hostigger不限流量VPS年20美元

Hostigger 主机商在前面的文章中也有介绍过几次,这个商家运营时间是有一些年份,只不过在我们圈内好像之前出现的次数不多。最近这段时间商家有提供不限流量的VPS主机,逐渐的慢慢被人认识到。在前面的介绍到他们提供的机房还是比较多的,比如土耳其、美国等。今天看到Hostigger 商家居然改动挺大的,原来蛮好的域名居然这次连带官方域名都更换掉去掉一个G(Hostiger )。估摸着这个域名也是之前...

95IDC香港特价物理机服务器月付299元起,5个ip/BGP+CN2线路;美国CERA服务器仅499元/月起

95idc是一家香港公司,主要产品香港GIA线路沙田CN2线路独服,美国CERA高防服务器,日本CN2直连服务器,即日起,购买香港/日本云主机,在今年3月份,95IDC推出来一款香港物理机/香港多ip站群服务器,BGP+CN2线路终身7折,月付350元起。不过今天,推荐一个价格更美的香港物理机,5个ip,BGP+CN2线路,月付299元起,有需要的,可以关注一下。95idc优惠码:优惠码:596J...

腾讯云轻量应用服务器关于多个实例套餐带宽

腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...

fedora16为你推荐
支持ipadyw372:Com怎么把www.jiayw.com 家园影院的电影下载到本地!!http404未找到"HTTP 404 未找到"的错误如何对付?_搜狗360电脑自动安装360安全浏览器360和搜狗搜狗浏览器和360极速浏览器你会选择哪个?tumblr上不去为什么,爱看软件打不开?页面一直在加载显示隐藏文件手机怎么打开隐藏文件夹网站日志为什么我的网站日志什么也没有超级用户电脑怎么切换超级用户模式上传软件如何将手机软件传给另外一个手机
过期域名 tk域名注册 vps推荐 什么是二级域名 已经备案域名 debian源 河南服务器 java虚拟主机 双拼域名 股票老左 网购分享 linode支付宝 中国联通宽带测速 好看的空间 服务器防御 七十九刀 移动王卡 服务器是什么 海尔t68驱动 更多