您的位置:首页 > 其它

parasoft Jtest 使用教程:生成、执行和扩展Junit测试用例

2017-03-14 00:00 681 查看
摘要: Jtest能自动的生成和执行用来捕捉运行时异常的JUnit测试用例以及尽可能完整的运用方法。你能扩展这些自动生成的测试用例来提高测试覆盖率,验证单元级的功能,以及子模块,模块和系统级的功能。

parasoft Jtest介绍和试用>>>

Jtest能自动的生成和执行用来捕捉运行时异常的JUnit测试用例以及尽可能完整的运用方法。你能扩展这些自动生成的测试用例来提高测试覆盖率,验证单元级的功能,以及子模块,模块和系统级的功能。

目的:

演示如何自动生成和运行JUnit测试用例,怎样复查和验证结果,怎样修复发现的错误。

准备:

Jtest实例项目的创建。

生成过程

点击Jtest视图工具条中的Delete All按钮,清除当前消息。

选择Jtest Example>examples.eval>Simple.java in the Package Exporer。

点击工具条中的Test Using 按钮。当你点击这个按钮时,Jtest执行静态分析以及单元测试。前面的课程关注静态分析结果;这个课程关注单元测试的结果。如前面教程所讲,通过选择不同的配置,可以只执行静态分析或者单元测试。

复查在测试结束后打开的Jtest总结面板。单元测试用例生成策略显示在generation标签中。单元测试执行策略显示在Execution标签中。

单击Close按钮来关闭总结面板。

注意Jtest将生成的JUnit测试类文件添加到Jtest Example.jtest项目中的examples.eval包中。

使用测试文件验证Jtest视图并通过打开Jtest视图下右侧顶部的下拉菜单的目录布局,然后选择Layout>Tested Files and Categories。

复查Jtest视图中的信息。

在Jtest视图中,扩充simple.java>Review Exceptions>[line#]Unverified java.lang.StringindexOutOfBoundsException:String index out of range 消息。

双击堆栈跟踪元素,查看失败的代码。这揭示了:当“0”和“00”被作为startsWith方法中的参数str和match的值被传入时,一个异常被抛出。这个异常被认为是一个错误因为这个方法应该能处理任何有效的输入。换句话说,这个方法应该考虑到不同的字符串大小的可能性。如果str的长度比match的小,当在for循环中调用str.charAt(i)方法时,这个异常被抛出。为了处理这个异常,方法应该始终检查str和match的长度。

通过右击它的节点,表明这个未验证的异常实际上是一个错误,然后选择Move task to "Fix Unit Test Problems".异常将从复查未验证的单元测试错误/失败任务目录中被移除并且添加到修复单元测试问题任务目录中。Jtest还将用一个//verified注释替换来自相关测试用例的//unverified注释。

通过使用一个if语句,修改startsWith()方法来保护代码免于异常;修改的代码如下所示:
public static boolean startsWith (String str, String match) {
if (str.length() < match.length()) {
return false;
}
for (int i = 0; i < match.length (); ++i)
if (str.charAt (i) != match.charAt (i))
return false;
return true;
}
这个方法始终检查字符串的长度以保证不会发生StringIndexOutOfBoundsException。

选择File>Save来保存修改的类。

将未验证的结果转化为功能性的单元测试,如下:

复查每一个列在Jtest视图的Review Unit Test Outcomes任务目录中的未验证结果。

右击Review Unit Test Outcomes节点,然后从目录快捷方式中选择Verify All。

查看测试用例覆盖率

打开被测文件的编辑器(Simple.java)。Jtest使用左边绿色的栏来表明相关的路线被覆盖了。粉色的栏表明相关语句没有被覆盖。没有颜色的栏表明相关的路线不可执行。既然达到了100%的覆盖率,所以对这个文件没有紫色的栏。

打开只在Jtest中的覆盖视图(选择Jtest>Show View>Coverage)。覆盖视图显示出针对类和每个方法的覆盖统计(覆盖百分比,总执行路线以及覆盖路线)。

用简单的用户定义的测试用例来扩展测试类

双击Jtest Example.jtest>examples.eval>SimpleTest.java,在编辑器中打开它。

在testMap1()方法的上面,注释之后添加如下所示测试方法。
public void testMap() {
assertTrue(Simple.map(34) == -2);
}

选择File>Save来保存修改后的测试类。

运行针对简单类(包括自动生成的测试类,及新测试用例)的所有测试用例,如下:

选择包浏览器Jtest Example>examples.eval>Simple.java。

打开Test Using下拉目录。然后从目录中选择Test Using>Built-in>Run Unit Tests。

以上就是本次教程的内容了,你也可以申请jtest试用>>,亲自动手试试哦。

查看更多测试分析资讯和产品推荐>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: