内容简介
Morethanever,mission-criticalandbusiness-criticalapplicationsdependonobject-oriented(OO)software.TestingtechniquestailoredtotheuniquechallengesofOOtechnologyarenecessarytoachievehighreliabilityandquality.TestingObject-OrientedSystems:Models,Patterns,andToolsisanauthoritativeguidetodesigningandautomatingtestsuitesforOOapplications.Thiscomprehensivebookexplainswhytestingmustbemodel-basedandprovidesin-depthcoverageoftechniquestodeveloptestablemodelsfromstatemachines,combinationallogic,andtheUnifiedModelingLanguage(UML).Itintroducesthetestdesignpatternandpresents37patternsthatexplainhowtodesignresponsibility-basedtestsuites,howtotailorintegrationandregressiontestingforOOcode,howtotestreusablecomponentsandframeworks,andhowtodevelophighlyeffectivetestsuitesfromusecases.Effectivetestingmustbeautomatedandmustleverageobjecttechnology.Theauthordescribeshowtodesignandcodespecification-basedassertionstooffsettestabilitylossesduetoinheritanceandpolymorphism.Fifteenmicro-patternspresentoraclestrategies--practicalsolutionsforoneofthehardestproblemsintestdesign.SeventeendesignpatternsexplainhowtoautomateyourtestsuiteswithacoherentOOtestharnessframework.Theauthorprovidesthoroughcoverageoftestingissuessuchas:*ThebughazardsofOOprogramminganddifferencesfromtestingproceduralcode*Howtodesignresponsibility-basedtestsforclasses,clusters,andsubsystemsusingclassinvariants,interfacedataflowmodels,hierarchicstatemachines,classassociations,andscenarioanalysis*Howtosupportreusebyeffectivetestingofabstractclasses,genericclasses,components,andframeworks*Howtochooseanintegrationstrategythatsupportsiterativeandincrementaldevelopment*Howtoachievecomprehensivesystemtestingwithtestableusecases*Howtochoosearegressiontestapproach*Howtodevelopexpectedtestresultsandevaluatethepost-teststateofanobject*Howtoautomatetestingwithassertions,OOtestdrivers,stubs,andtestframeworksReal-worldexperience,world-classbestpractices,andthelatestresearchinobject-orientedtestingareincluded.PracticalexamplesillustratetestdesignandtestautomationforAda95,C++,Eiffel,Java,Objective-C,andSmalltalk.TheUMLisusedthroughout,butthetestdesignpatternsapplytosystemsdevelopedwithanyOOlanguageormethodology.0201809389B04062001