Java 学习
文章平均质量分 77
涟幽516
Those who cannot remember the past are condemned to repeat it.
展开
-
【软件测试·研究向】Major 变异测试工具使用教程
Major (主要变异框架, The Major Mutation Framework)是一个高效、灵活的突变分析框架。主要突变框架提供了三个主要组件:(1)Major 变异器:Java 编译器 (javac) 的编译器插件;(2)Mml 配置文件:一种用于定制突变生成的 DSL(领域特定语言);(3)分析器:一种可有效确定活突变体、突变体检测率或完整突变体测试矩阵的测试运行器;原创 2024-08-21 18:31:33 · 736 阅读 · 0 评论 -
[软件测试·研究向] MuJava 工具遇到的问题汇总和体会
MuJava 是初学者(研究向)常常会去使用的一个工具,也是 Java 软件测试的一个老牌工具。用于为 Java 代码生成变异体和运行单元测试。但是此工具已经有十年没有更新了,这款软件可以说现在已经不能够支持对主流软件框架运行测试。但是使用它进行简单代码的测试还是可以的。下面我将就我在研究中遇到的一些坑点和各位探讨一下。本人也是软件测试方面的一个小萌新,文章多有疏漏,尽请谅解。原创 2024-08-07 20:15:27 · 1023 阅读 · 1 评论 -
使用 JavaParser 解析代码
要判断 Java 代码文本中一个方法的输入参数个数和类型,可以借助 JavaParser 这样的第三方库来解析 Java 代码并获取方法的参数信息。对于局部变量的个数和类型,也可以通过类似的方法来解析语句中的局部变量信息。上面的代码中,我们使用 JavaParser 加载 Java 文件并创建 CompilationUnit 对象,然后遍历所有的方法声明,获取方法的参数信息和局部变量信息。2)编写 Java 代码,使用 JavaParser 解析 Java 代码并获取方法参数以及局部变量信息。原创 2024-05-25 12:40:14 · 534 阅读 · 0 评论 -
Soot 安装和简单使用
Soot 是 McGill 大学的 Sable 研究小组自 1996 年开始开发的 Java 字节码分析工具,它提供了多种字节码分析和变换功能。通过它可以进行过程内和过程间的分析优化,以及程序流图的生成;还能通过图形化的方式输出,让用户对程序有个直观的了解。尤其是做单元测试的时候,可以很方便的通过这个生成控制流图然后进行测试用例的覆盖,显著提高效率。Soot 项目已经不再继续维护,其最高支持到 Java 9 版本。如果要在更新的项目中使用,请配置项目组最新开发和维护的 SootUp 项目(原创 2024-03-25 07:15:00 · 1369 阅读 · 0 评论 -
java 指定编码 utf-8、解决编码报错问题
在编译 java 或者运行 java 类、jar 文件时,我们往往会遇到编码错误导致的问题,例如:程序中中文编码的输入输出变为乱码,编译时报错“无法识别的 GBK 字符” 等。这些问题都是由于 JDK 的程序 java.exe 和 javac.exe 默认以 GBK 编码运行导致的。而我们常见的代码编辑器或集成开发软件(如:EditPlus、IDEA、Eclipse)则默认以 Unicode utf-8 的编码格式运行,编码方式的不同就导致了程序的异常。这样就可以解决这类问题。原创 2024-03-09 12:47:14 · 1747 阅读 · 0 评论 -
Randoop 报错 Cannot find the Java compiler 的解决方案
JDK 目录下找到 lib 子目录,只有 JDK 有编译环境 tool.jar 文件,而 Randoop 的最近几个版本似乎会默认读取 JRE 的目录,而 JRE 没有 tools.jar。在变异测试中,可以利用 Randoop 的随机测试用例,并结合 MuJava 工具,来初步筛选掉可能的等价变异体,并保留非等价变异体(部分需要手工操作)。编写测试用例是一项困难且耗时的工作,但同时又是好的软件工程的重要部分。Randoop是一个随机测试的测试用例生成的工具,能够自动的为Java代码中的类生成单元测试。原创 2024-03-09 00:49:30 · 903 阅读 · 0 评论 -
Soot 工具命令行参数解释完整版
由于网络上对 Soot 工具的参数解释仅局限于模仿官方帮助文档介绍的部分常用参数,而未对其他参数进行解释。我将记录一下自己通过 机翻+人工校对 的 soot.Main -help 命令给出的参数列表。原创 2024-03-01 00:50:15 · 946 阅读 · 0 评论