VMMap - Windows Sysinternals | Microsoft Docs

VMMap是一个进程虚拟和物理内存分析实用程序。它显示进程的提交的虚拟内存类型的细目以及操作系统分配给这些类型的物理内存(工作集)的数量。除了内存使用的图形表示外,VMMap还显示了摘要信息和详细的进程内存映射。功能强大的过滤和刷新功能可让您识别过程内存使用的来源和应用程序功能的内存成本。 除了用于分析实时流程的灵活视图之外,VMMap还支持以多种形式导出数据,包括保留所有信息的本机格式,以便您可以重新加载。它还包括启用脚本场景的命令行选项。 VMMap是开发人员想要了解和优化应用程序内存资源使用情况的理想工具。
 

Screenshot

VMMap
 
来源: VMMap - Windows Sysinternals | Microsoft Docs

关于软件测试用例生成技术相关研究总结 - xiajian2010的专栏 - CSDN博客

软件测试相关

关于软件测试用例生成的研究,2013年2月的一篇综述:An orchestrated survey of methodologies for automated software test case generation 中介绍的相当不错,其中介绍了四种主流关于测试用例生成技术的综述:符号执行(symbolic execution),基于模型的测试(Model-based Test),组合测试,随机测试中的自适应随机测试和基于搜索的测试。当然还有其他的一些技术没有介绍,但也很有名,比如变异测试,模糊测试,混合技术测试之流的。
在这些测试其中,文献调研过自适应随机测试,花了一周看论文感觉尽是在说理论,没找到什么实际的应用的例子,或者说我没能明白关于输入空间的含义;研究符号执行了一段时间,主要是JPF及其扩展JPF-SE;对一些随机测试和系统测试混合技术也做了一些研究,这主要涉及Randoop,Palus,RecGen。我是在一个大学生创新项目下做关于这些研究,并将这些写成了一个技术报告,交到学院里估计也不会有人看,地址:http://pan.baidu.com/s/1eQtGJ66 (备注,好像泄露的我的真实姓名了,没错,我就是叫夏健--一个不太好听的名字)

2.1. 相关的工具

2.1.1. 探索过的工具

  • artgen:一个基于Randoop的测试用例生成工具
  • recgen:一个基于Randoop的测试用例生成工具
  • palus:一个基于Randoop的并组合动态和静态分析测试用例生成工具
  • Randoop:基于随机测试的序列生成的测试生成工具
  • jcrasher:基于随机测试的序列生成的测试生成工具
  • jpf:javapathfinder,显式模型检查工具,与软件测试用例生成相关的是它的一个扩展,jpf-se
  • mujava:jeff offut开发的变异测试工具
  • emma,codecover,cobertura都是代码插桩工具
  • findbugs,checkstyle,pmd都是代码静态检查工具。

2.1.2. 未探索的工具

写在这里的工具除了soot以外,其他的工具大概不会再去看了。

  • kieker:一个应用程序性能监视和动态软件分析框架
  • DUA-F:是一个基于Soot的Java程序分析和插桩工具,地址:http://www3.nd.edu/~rsanteli/duaf/
  • daikon:程序不变式检测器
  • soot:java编译器框架
  • Eclat:基于daikon的测试用例演化程序
  • tamifex:oolpsa上关于反射的研究
  • crest: c的生成用例生成程序,实现了动态和静态分析
  • jcute:cute的java实现

2.2. 文档总结

总结软件测试相关文档的初步设想是,将Randoop和Palus相关的资料整理翻译,将代码插桩工具做一下汇总研究,将JPF和JPF-SE的资料汇总,将Directed Random Testing博士论文翻译完成。暂时能想到的就这么多,以后想到再加。
Randoop的资料主要为:Randoop Manual的翻译Randoop Developer Manual的翻译Randoop的项目灵感
Palus的资料只有User Manual,和Palus的论文翻译,由于Palus是基于Randoop的,很多都可以参考Randoop。
JPF主要是安装和使用,JPF的wiki实在是太长了,完善翻译的代价不菲。
Directed Random Testing博士论文实在是太长了,有点不太想翻译,虽然已经翻译了一半。
代码插桩工具调研主要涉及:EMMA, Cobetura, Codecover
如果都写成博客的话,有些不太方便,就先添加一些连接吧。
备注:以下是一些扯淡,可以跳过。

来源: 关于软件测试用例生成技术相关研究总结 - xiajian2010的专栏 - CSDN博客

PICT:基于正交法的软件测试用例生成工具 - u013569928的专栏 - CSDN博客

成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的。Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试。测试结果表明覆盖率高达90%以上。可见成对组合覆盖是一种非常有效的测试用例设计方法。成对组合覆盖要求任意两个因素(输入条件)的所有水平组合至少要被覆盖1次。组合覆盖的算法已经被很多工具实现,测试人员可以直接利用这些工具,例如:TConfig

来源: PICT:基于正交法的软件测试用例生成工具 - u013569928的专栏 - CSDN博客

测试用例 自动生成工具PICT与AllPairs - - CSDN博客

通常我们在设计或编写测试用例时,存在一个“痛点”:要么设计的测试用例存在遗漏,难以100%覆盖测试需求;要么被测系统过于复杂,设计的测试用例过多,导致前期的设计和后续的执行工作量过大。其实,在测试用例设计过程中,我们可以借助一些辅助工具,以提高设计效率。当我们采用“成对组合覆盖测试设计方法”来设计用例时,可以使用一款小巧型工具:PICT,目前已更新到3.3版本。 下载地址: http://

来源: 测试用例 自动生成工具PICT与AllPairs - - CSDN博客

JAVA覆盖率工具EMMA介绍

最近在对Java代码进行单元测试的时候了解到一种针对Java代码的强大的覆盖率工具Emma。那么覆盖率工具Emma是怎么运行的呢?下面跟gkstk小编一起来看看吧!
首先介绍一下EMMA 是一个开源、面向 Java 程序测试覆盖率收集和报告工具。它通过对编译后的 Java 字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种报表格式对覆盖率结果进行展示。EMMA可以统计函数覆盖、类覆盖、行覆盖等,据说最新版支持分支覆盖。
查看了一下EMMA的基本原理,大致分为以下步骤:插桩(instr),运行,收集(ctl),报告(report)JAVA覆盖率工具EMMA介绍JAVA覆盖率工具EMMA介绍
插桩
命令行:java emma instr -cp /usr/local//anrs/lib/anrs.jar -m overwrite -ix +com.* -Dmetadata.out.file=test.em
参数介绍:
-cp,指定插桩的路径,多个jar包可以用,分割
-m:输出模式
overwrite:重新jar包,anrs.jar
default:copy, 需要加上-d参数,指定输出路径。有插桩,才cp一份class到指定路径
fullcopy:需要加上-d参数,指定输出路径。 不管有没有插桩,都cp一份class到指定路径
-merge:合并JAVA覆盖率工具EMMA介绍文章JAVA覆盖率工具EMMA介绍出自http://www.gkstk.com/article/wk-78500000842051.html,转载请保留此链接!。
default:yes。 如果metadata指定输出的文件一样,将两次插桩信息进行合并
no 不合并两次插桩信息
-ix:指定需要插桩的class
+com.*: + 指包含
-com.*:-指排除
运行
一般情况下,直接运行应用程序即可。EMMA会启动一个监听端口,用来后面收集信息(ctl)JAVA覆盖率工具EMMA介绍JAVA认证。这个端口是固定的,47653。
如果我们的应用是多进程的,就会出现启动失败。其实EMMA也提供了一个命令,进行端口设置:-Demma.rt.control.port=39123
还有host指定,-Demma.rt.control.host=192.168.22.22. default is localhost
这个参数需要加在程序启动命令里
EMMA还有简单的配置文件:java -Demma.properties=my.properties
my.properties format: tag=value
收集
一般有两种收集信息方法:
1. 程序退出,自动收集,在当前运行目录下生成coverage.ec
2. 命令行:
java -cp /usr/jdk/jdk1.6.0_23/jre/lib/ext/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec
报告
命令行:
java -cp /usr/jdk/jdk1.6.0_29/jre/lib/ext/emma.jar emma report -r html -in anrs.em coverage.ec –sp src/-Dreport.html.out.file=coverage.html
参数介绍
-r: report type:html,txt,xml
-sp: sourcecode path
除了命令行方式外,EMMA可以直接在Eclipse中进行使用。