C++testVS插件版简明操作手册.docx

上传人:b****7 文档编号:11143932 上传时间:2023-02-25 格式:DOCX 页数:28 大小:1.21MB
下载 相关 举报
C++testVS插件版简明操作手册.docx_第1页
第1页 / 共28页
C++testVS插件版简明操作手册.docx_第2页
第2页 / 共28页
C++testVS插件版简明操作手册.docx_第3页
第3页 / 共28页
C++testVS插件版简明操作手册.docx_第4页
第4页 / 共28页
C++testVS插件版简明操作手册.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C++testVS插件版简明操作手册.docx

《C++testVS插件版简明操作手册.docx》由会员分享,可在线阅读,更多相关《C++testVS插件版简明操作手册.docx(28页珍藏版)》请在冰豆网上搜索。

C++testVS插件版简明操作手册.docx

C++testVS插件版简明操作手册

 

C++test(VS2010插件版)使用文档

1编写说明

ParasoftC++test是经广泛证明的最佳时间集成解决方案,它能有效地提高开发团队的工作效率和软件质量。

本教程侧重点介绍单元测试的使用方法。

单元测试的定义是测试应用程序中最小的单元。

单元测试提供了一种更有效的发现错误的方法,它将应用程序中的最小单元分离开来,使得测试更接近错误,只要简单地对每个最小单元进行独立测试,就很容易的使全面准确的找到程序中的错误成为可能,单元测试能帮助客户更准确更全面的找到错误,显著提高软件质量。

2项目导入

1.如何导入一个已有项目

Ø选择“File”>”打开”>”项目解决方案”

Ø找到.sln文件,双击.sln文件

或者直接双击.sln文件。

3工程设置

1.导入项目完成后,右键点击项目名称>”属性”>”配置属性”>”常规”下的“配置类型“改为“动态库(.dll)”如图所示:

然后修改路径,双击C/C++>“常规“>”附加包含目录”,将当前工程下源代码路径添加进去,如图所示:

4静态测试

4.1静态测试配置

点击测试三角号右边的下拉菜单>”测试配置”如图:

点击用户自定义>“新建”

Ø名称可根据不同的测试项目,及测试标准命名,这里为默认命名“静态测试”

Ø点击静态,只启动MISRAC2004的所有规则,如下图所示

Ø其他选项暂不考虑,点击Apply>Close完成测试配置

4.2执行静态测试

Ø可对整个项目进行静态测试,也可根据需要对某个.c文件单独进行静态测试,不同的测试要选中测试目标,如对某一个.c测试一定要选中这个.c文件(左键点击该.c文件即可)。

Ø点击工具栏中的“生成”选项>“生成解决方案”。

Ø执行静态测试,点击右三角右边的下拉菜单,选中“静态测试”,如下图所示:

4.3查看测试报告

点击“测试进度”窗口左下角Proceed查看测试报告,也可点击Configure修改生成报告的路径,如图所示:

4.4查看质量任务

在工具菜单中选择“Parasoft”>“显示图示”>“质量任务”如图

 

结果如图所示:

双击“感叹号”可快速定位到源代码中的位置。

也可把鼠标箭头放到源代码小红帽处查看静态测试的详细信息,如图所示:

5测试用例生成

5.1自动生成测试用例

5.1.1自动生成测试用例配置

点击测试三角号右边的下拉菜单>”测试配置”如图:

点击用户自定义>“新建”

Ø名称可根据不同的测试项目及测试标准命名,这里为默认命名“自动生成测试用例”

Ø点击“静态”,取消勾选“启动静态分析”

Ø点击“生成”,勾选“启动单元测试生成”

Ø其他选项暂不考虑,点击Apply>Close完成测试配置

5.1.2执行自动生成测试用例

Ø可对整个项目执行自动生成测试用例,也可根据需要对某个.c文件单独执行自动生成测试用例,不同的测试要选中测试目标,如对某一个.c测试一定要选中这个.c文件(左键点击该.c文件即可)。

Ø点击工具栏中的“生成”选项>“生成解决方案”。

Ø执行自动生成测试用例,点击右三角右边的下拉菜单,选中“自动生成测试用例”,如下图所示:

5.1.3查看测试报告

点击“测试进度”窗口左下角Proceed查看测试报告,也可点击Configure修改生成报告的路径,如图所示:

5.4查看自动生成的测试用例

在工具菜单中选择“Parasoft”>“显示图示”>“测试用例浏览器”如下图所示,双击测试用例可查看测试用例源码。

5.2手动建立数据源测试用例

5.2.1建立数据源

例如以下函数:

在测试用例浏览器中新建数据源如图

选择excel表格,Finish

在弹出的窗口中给数据源命名,并给数据源添加路径:

在打开的窗口中右键空白处选择新建excel表格:

给新建的excel表格命名,选中该表格,点击打开:

点击OK,完成数据源的建立:

5.2.2手动建立数据源测试用例

在测试用例浏览器中新建测试用例:

给测试用例命名,点击next:

选中数据源,点击finish完成向导:

新建的数据源测试用例如下:

做如下修改:

此时就可以在新建的excel表格中添加测试用例了,注意红色圈圈要与测试用例中的双引号内的命名保持一致

6.执行测试用例

6.1.执行测试用例配置

点击测试三角号右边的下拉菜单>”测试配置”如图:

点击用户自定义>“新建”

Ø名称可根据不同的测试项目及测试标准命名,这里为默认命名“执行测试用例”

Ø点击“静态”,取消勾选“启动静态分析”

Ø点击“执行”,勾选“启动测试执行”,插桩模式默认为“带有行覆盖的完全运行时“,可修改此项以查看其它覆盖率,点击右边“编辑”选项,勾选覆盖率指标,如下图所示:

Ø其他选项暂不考虑,点击Apply>Close完成测试配置

6.2执行测试用例

Ø可对整个项目执行自动生成测试用例,也可根据需要对某个.c文件单独执行自动生成测试用例,不同的测试要选中测试目标,如对某一个.c测试一定要选中这个.c文件(左键点击该.c文件即可)。

Ø点击工具栏中的“生成”选项>“生成解决方案”。

Ø执行自动生成测试用例,点击右三角右边的下拉菜单,选中“自动生成测试用例”,如下图所示:

6.3查看测试报告

点击“测试进度”窗口左下角Proceed查看测试报告,也可点击Configure修改生成报告的路径,如图所示:

6.4查看生成的测试用例

在工具菜单中选择“Parasoft”>“显示图示”>“测试用例浏览器”如下图所示,双击测试用例可查看测试用例源码。

到此为止分步骤完成了单元测试,也可在测试配置中依次选择“静态分析”

“生成测试用例”“执行测试用例”自动化完成单元测试,程序源代码显示:

 

绿色部分为执行到测试代码,红色部分为未执行到的代码,为保证测试完整性,可通过建立桩函数或者自定义(修改)测试用例提高测试覆盖率,以满足测试覆盖率的要求,这样能有效的提高测试质量,避免设计无效用例。

6.5查看覆盖率

在工具菜单中选择“Parasoft”>“显示图示”>“覆盖率”如下图所示:

7.桩函数

7.1桩函数概述

桩函数主要实现替代原函数的功能,使得单元测试过程中能将被测功能与外部依赖隔离。

桩函数是单元测试的常用技术,它主要目的有二:

一是将不可控的、费时的实际系统隔离,例如访问网络、数据库、硬件等;二是将复杂的底层系统隔离,采用相对简单的模拟系统来代替。

当被调函数不会影响当前测试函数的功能行为的时候,桩函数能够被使用,以使得单元测试的效率更高。

自定义桩函数可以带来的好处在于:

调用原函数可能其返回值为一个固定值,不能返回一个期望值,以使得测试不同的代码分支。

而桩函数的返回值,可由用户自由控制,因而具备更大的灵活性。

这里有对桩函数较详细的解释

桩函数可自动生成,也可用户自定义,自动生成的桩函数与自定义的桩函数其主要差别在于:

自定义的桩函数调用优先级别高于原函数,原函数的优先级别高于自动生成的桩函数。

7.2自动生成桩函数

Ø选中要生成桩函数的源文件,右键>Parasoft>测试执行>内建>UnitTesting>FileScope>Generatestub(fileScope)

Ø选中要生成桩函数的源文件,右键>Parasoft>测试执行>内建>UnitTesting>FileScope>CollectstubInformation(fileScope)

Ø在工程目录下我们可以看到自动生成的桩函数:

Ø点击工具栏的Parasoft选项>显示图示>桩函数,可以看到:

7.3用户自定义桩函数

如下图所示,在需要建立用户桩函数的函数上右键,选择“创建用户桩函数”

给用户桩函数命名之后点击完成。

这个时候在工程目录下我们可以看到:

双击用户函数,这个时候就可以任意修改桩函数返回我们想要的结果了:

8.关于测试用例

对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。

可能输入包括:

参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);可能输出包括:

返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。

简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数据。

了解了这些,就不会对没有参数、没有返回值如何测试产生疑问了。

测试没有参数的函数,它可能还有别的输入,例如全局变量,成员变量,或调用子函数获得的输入(这个要使用工具才能做到),只要函数需读取的,都应该设定初始值,如果完全没有,没有输入也是一种输入,照样测试就是了。

同样道理,输出也不仅仅是返回值,没有返回值还可能修改了全局变量什么的,这些也是要判断的输出。

但是,单元测试应该测试哪些比较复杂的程序,而不是只测试接口。

8.1预置条件为形参的测试用例

源代码如图:

自动生成的测试用例为

从例子中我们可以看出unsigned_a=1;unsigned_b=2为设定输入,之后执行程序unsignedchar_return=data_deal(_a,_b);最后判定输出,对于本例我们只需根据需要修改a,b的值即可,也可建立数据数据源测试用例。

根据测试需要也可手动添加其设定输入,如全局变量、成员变量等。

如何建立测试用例

选择所需用例的测试套件,右键>新建>测试用例使用向导

Ø选择函数(如果只有一个函数就没得选择了,呵呵),给测试用例命名,点击next

Ø到这里点击Finish就完成了新建测试用例,这里我们选择新数据源测试用例

点击自动生成,这里我们选择“表”(也可新建csv或者excel数据源测试用例,选择表),点击OK>Finsh完成:

Ø双击测试套件下的数据源,这个时候就很方便的建立大量测试用例了:

8.2调用子函数获得输入

对于以下函数:

sum函数只提供了一个出口,对于data_deal函数来说建多少测试用例都无法完全执行每条语句,so以上介绍的桩函数就派上用场了,对sum函数插桩,当执行data-deal的第一个测试用例时让sum函数返回10,当执行data-deal的第二个测试用例时让sum函数返回0,当执行data-deal的第三个测试用例时让sum函数返回5,这样就可以完全保证每条语句都执行一次了。

这里介绍的只是用法,具体到实际应用时需保证测试质量前提下精心设计。

图中篮圈为自带API函数,红圈为data_deal的测试用例。

这里只是保证了覆盖率,对于data_deal函数套件下的其他测试用例(这里测试用例不止3个)还是执行sum返回的值对应的判断语句(如上上图的if语句),这样造成测试不均匀的现象,个人愚见应该把所有测试用例都用到桩函数中,但这样又带来了大量的工作。

插桩后执行测试用例结果:

8.3.成员变量获得输入,如下源代码:

自动生成的测试用例为:

在这里我们可以直接添加预置条件:

在测试用例1里添加:

marry.report[0]=95;

在测试用例2里添加:

marry.report[0]=80;如图所示:

修改之后再次执行测试用例,结果如图:

8.4.全局变量获得输入及桩函数的联合使用

源代码如图:

对于main函数,data_deal函数只提供了一个出口,那么问题来了,两个if语句只能执行一个,所以要通过建立用户自定义的桩函数,当执行不同的测试用例时可以让用户自定义的桩函数返回不同的值,以满足两个条件判断语句全覆盖。

下图为自定义的的桩函数:

新建用户自定义桩函数之后,重新执行测试用例,可以观察到:

自定义桩函数后我们再执行单元测试,两个条件判断语句都有执行到了,但没执行到case语句,这是因为data_deal函数的桩函数返回10的时候测试用例的预置条件i不等于0,1,2。

这个时候我们就要再次修改桩函数和新建测试用例或者修改测试用例,以达到每条语句都至少执行一次的目的。

修改后的自定义桩函数如图所示:

这个时候还需要修改测试用例

把TestSuite_fun2_c_92e58086_test_main_2,TestSuite_fun2_c_92e58086_test_main_3,TestSuite_fun2_c_92e58086_test_main_4,三个测试用例中的i依次改为0,1,2。

再次执行单元测试,可以观察到:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1