C++Test9.2简明手册版本:1.0华中数控软件开发部版本说明日期版本号发布说明作者批准人2015/1/28V0.10初稿王蓉2015/3/12V0.20细化单元测试步骤王蓉I目录1创建项目...................................................................................................................................11.1导入VISUALSTUDIO6.0项目来创建C++TEST项目........................................................11.2导入现有项目到工作空间:..................................................................................................22导入测试配置文件....................................................................................................................43单元测试的步骤........................................................................................................................53.1自动生成测试套件——GENERATETESTSUITES...........................................................................53.2生成自动定义/桩函数——GENERATESTUBS............................................................................63.3扩展和修改测试套件——EXTENDINGANDMODIFYINGTHETESTSUITES........................................83.4构建测试可执行文件——BUILDTESTEXECUTABLE.....................................................................93.5执行测试用例——RUNUNITTESTS............................................................................................93.6复审测试执行结果——REVIEWTESTEXECUTIONRESULTS..........................................................103.7复审覆盖率信息——REVIEWINGCOVERAGEINFORMATION.........................................................124桩函数介绍.............................................................................................................................145C++TESTAPI.............................................................................................................................155.1常用的测试套件/测试用例注册........................................................................................155.2部分测试用例/桩函数API数据源宏..................................................................................155.3测试用例后置条件宏...........................................................................................................155.4常用的测试用例验证宏.......................................................................................................165.5被测试用例驱动的函数.......................................................................................................1711创建项目1.1导入VisualStudio6.0项目来创建C++test项目1.选择文件(File)新建(New)项目(Project)。2.选择C++test导入MicrosoftVisualStudio6.0项目。3.单击下一步(Next)。会打开导入MicrosoftVisualStudio6.0项目向导。4.在向导顶部的文本字段中,指定MicrosoftVisualStudio6.0项目文件(.dsp),MicrosoftVisualStudio6.0工作空间文件(.dsw),或者想要让C++test从中搜索MicrosoftVisualStudio6.0项目的根目录。找到的项目将列在要导入的项目(Projectstobeimported)树中。如下图1-1:图1-125、项目创建成功后,在导航器列表可以看到该项目。如下图1-2:图1-21.2导入现有项目到工作空间:1.选择文件(File)导入常规现有项目到工作空间中。2.选择常规现有项目到工作空间中。3.单击下一步(Next)。会打开导入项目向导。如下图1-33图1-342导入测试配置文件1.选择Parasoft测试配置(New)项目(Project)。2.选择用户自定义右键导入3.分别导入以下测试配置文件(配置文件存放在安装包cfg文件夹下),如下图2-1StaticAnalysis.propertiesGenerateTestSuites.propertiesGenerateStubs.propertiesBuildTestExecutable.propertiesRunUnitTests.properties图2-153单元测试的步骤3.1自动生成测试套件——GenerateTestSuites1、选中测试源文件,例如hncmodal.cpp2、运行执行-用户自定义-GenerateTestSuites,如下图3-1-1图3-1-163、浏览自动生成的测试用例,如下图3-1-2图3-1-23.2生成自动定义/桩函数——GenerateStubs1、选中测试源文件,例如hncmodal.cpp2、运行执行-用户自定义-GenerateStubs,如下图3-2-17图3-2-13、查看生成的自动定义/桩函数,如下图3-2-2图3-2-283.3扩展和修改测试套件——ExtendingandModifyingtheTestSuites要达到的目标做法参考添加新的测试用例来检查特殊的单元层功能性需求或提高覆盖率使用测试用例向导来图形化地创建测试用例或添加代码到测试用例模板中。参见C++Test用户手册.pdf,第277页【添加用户定义的测试用例】修正自动生成的测试用例检查特殊的单元层功能性需求或提高覆盖率编辑相关的测试文件第277页【添加用户定义的测试用例】删除测试用例,并禁用结果检查或现在对你不重要的测试用例删除一个测试套件:右键单击测试用例浏览器中的相应节点,然后选择Delete要删除一个测试用例:右键单击测试用例浏览器中的相应节点,然后选择Delete禁用特殊结果的检查:右击质量任务(QualityTasks)视图口中未核对的结果,然后从快捷菜单中选择IgnoreOutcome禁用完整测试用例:右击单击测试用例浏览器中的相应节点,然后选择Disable参见C++Test用户手册.pdf,第321页【删除和禁用测试】防止对某种类或方法进行测试选择相应希望包含或排除的资源参见C++Test用户手册.pdf,第125页【测试用户定义的资源集】将自动生成的测试转换为用于回归测试的功能快照(用于识别有代码修正引进的变化/问题)如果代码行为正确,右击为核对的结果代码,然后从快捷菜单选择VerifyOutcome参见C++Test用户手册.pdf,第275页【检验用于进行回归测试的测试用例】测试过程中访问数据源值配置用户定义的或自动生成的测试用例,访问存储在数据源中的值参见C++Test用户手册.pdf,第294页【使用从数据源提取的数据来参数化测试用例】测试用例中使用标准输入输出口的数据添加C++testStreamAPI调用,改变标准输入输出流的方向参见C++Test用户手册.pdf,第319页【使用来自标准输入输出的数据】定义用户化桩函数(指明外部方法/函数的什么值返回到测试类中)。使用桩函数向导创建桩函数框架,然后进行定制参见C++Test用户手册.pdf,第327页【添加和修改桩函数】93.4构建测试可执行文件——BuildTestExecutable1、选中测试源文件,例如hncmodal.cpp2、运行执行-用户自定义-BuildTestExecutable,如下图3-4-1图3-4-13.5执行测试用例——RunUnitTests1、选中测试文件(一条或多条测试用例、一个或多个测试套件、一个或多个cpp)2、运行执行-用户自定义-RunUnitTests,如下图3-5-110图3-5-13.6复审测试执行结果——ReviewTestExecutionResults1、用于C++test的测试执行查找分类的种类,如下表3-6-1类别子类别说明及推荐响应修复单元测试问题(FixUnitTestProblems)断言失败(AssertionFailures)请参见C++Test用户手册.pdf第245页【断言失败】以及第247页【超时】运行时异常(RuntimeExceptions)请参见C++Test用户手册.pdf第246页【运行时异常】审查单元测试结果(ReviewUnitTestOutcomes)未验证输出(UnverifiedOutcomes)请参见C++Test用户手册.pdf第248页【未验证的输出】表3-6-111•选定单元测试问题:这个目录包含明确的单元测试问题—包括函数测试故障,意想不到的异常情况,和超时设定需要得到处理。•复审单元测试输出:此类别包含自动测试用例生成过程生成的测试用例中未验证的输出。未验证输出会在C++test执行自动生成或带尚未被转换为断言的后置条件用户定义测试用例报告出来。这样的输出可能会是预期行为也可能是问题。因此需要进一步的复审以及验证。如果你确认输出时预期行为,那么验证它。否则你需要设置正确的输出。2、任务在质量任务(QualityTasks)视图中按类别报告出来。选择Parasoft显示视图质量任务,如下图3-6-2图3-6-2123.7复审覆盖率信息——ReviewingCoverageInformation1、C++test支持下面的覆盖类型,如下表3-7-1•