精华内容
下载资源
问答
  • 代码动态测试工具
    千次阅读
    2021-09-28 15:38:32

    静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接和生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。
    动态测试工具一般采用“插桩”的方式,在代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。它与静态测试工具最大的不同是动态测试工具要求被测系统实际运行。

    我们将常用的测试工具分为10类:

    1. 测试管理工具

    2. 接口测试工具

    3. 性能测试工具

    4. C/S自动化工具

    5.白盒测试工具

    6.代码扫描工具

    7.持续集成工具

    8.网络测试工具

    9.app自动化工具

    10.web安全测试工具

    测试管理工具:

    1,TestDirector(大而全)

    2,jira(简单好用)

    3,Quality Center(复杂,收费)

    4,禅道(简单好用)

    5,bugzilla(功能简单)

    6,svn(代码和文档管理工具)

    7,vss类似svn

    8,git,同svn,但是多分支管理比svn好

    9,Note(大而全,费用太贵)

    10,CQ(ClearQuest-IBM产品-大而全)

    接口测试工具:

    1,Jmeter(开源)

    2,postman
    jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。

    Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。

    性能测试工具:

    1,loadrunner,大而全,要学精通还是有点难度,重量级工具

    2,jmeter 基于java平台的性能开源测试工具,其实也很强大,而且比较好用

    3,Web bench 一个简单的web基准指标测试工具

    4,Load UI,一款开源的压力测试工具,支持图形化

    5,httperf 一款高性能的web性能测试工具

    6,Siege 一款开源的压力和指标测试工具

    C/S自动化工具

    1,qtp (录制回放和脚本编辑),用到的是vb语言

    2,winrunner IBM产品类似qtp

    白盒测试工具

    1,jtest java语言的单元测试框架

    2,JUnit 验证java的工具
    3.TrueTime C++,Java,Visual Basic 代码运行效率检查、组件性能的分析

    app自动化工具

    appium 这个应该算是目前最流行的基于app的自动化测试框架了

    更多相关内容
  • 我们调研了市场上常用的iOS覆盖率检测工具,这些工具主要存在以下四个问题:第三方工具有时生成的检测报告文件会出错甚至会失败,开发者对覆盖率生成原理不了解,遇到这类问题容易弃用工具。第三方工具每次展示全量...
  • PLC通信工具 HslCommunication 测试工具(10.6.1最新版本) 及 源代码
  • Java代码检查工具测试工具、亲测可用,内有使用方法
  • 面向开发人员、逆向工程师和安全研究人员的动态检测工具包。 将您自己的脚本注入黑盒进程。 挂钩任何函数,监视加密 API 或跟踪私有应用程序代码,无需源代码。 编辑,点击保存,并立即查看结果。 无需编译步骤或...
  • 简介:5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖!作者 | 喻阳面临问题在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代码安全漏洞。1、代码...
    简介:5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖!

    作者 | 喻阳


    面临问题


    在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代码安全漏洞。


    1、代码质量问题


    代码质量其实是一个老生常谈的话题,但问题是大家都知道它很重要,却又不知道如何去提升和维护这一团队的共同财产。一方面开发人员可能为了功能及时上线,疏忽了对质量的把控,另一方面开发人员编码习惯和程序理解风格各异。


    长期下来代码质量下降通常会自成因果,因为业务压力大而趋于下降,又因此开发效率下降,进一步加大业务压力,导致恶性循环。


    2、代码安全问题


    安全类问题往往隐藏在缺乏安全意识的编码逻辑和未经检测或维护的开源依赖组件中,难以在日常开发和代码评审中被及时察觉。


    代码安全问题也可以分两个方面进行分析:


    • 编码安全问题,即:安全规范类问题,通过避免不符合规范的代码进入企业代码库,减少隐私数据泄露、注入类风险、安全策略漏洞的出现。


    • 依赖安全问题,即:开源依赖三方组件引入的安全漏洞。根据 Synopsys 2020 开源安全报告显示,99%以上的组织使用了开源技术。使用开源组件本身带来的技术交流和站在巨人肩膀上协作、降低开发成本、加快迭代周期、提高软件质量等优势已经不必赘述,但是,开源软件带来一系列便利的同时,也暗藏大量安全风险,据审计,75%的代码库存在安全漏洞,其中 49%包含高危问题,另外 82%的代码库仍在使用超过 4 年的 outdated 组件。


    代码安全类问题,一方面也需要进行准入性检查,根据业务场景和规范配置安全编码规范检测和卡点。另一方面需要定期维护,对于新爆发出的安全漏洞进行及时察觉并修复。




    5 款阿里常用代码监测工具推荐


    1、代码质量检测


    • Java 代码规约检测


    阿里巴巴在实践过程中,各个组织由于历史隔阂和业务风格差异,工程结构差别很大,代码风格迥异,规范不一,沟通成本大,合作效率低,维护成本高。集团发展到现在的规模,需要专业化的技术集团军迭代式、集约式发展,而不是动辄重复造轮,而真正专业化的团队一定会有统一的开发规约,这代表效率、共鸣、情怀、可持续。


    基于上述背景,阿里制定了《阿里巴巴 Java 开发手册》,作为阿里内部 Java 工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL 规约、工程规约、安全规约等。这是近万名阿里 Java 技术精英的经验总结,并经历了多次大规模一线实战检验及完善。


    制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全。试想如果没有限速,没有红绿灯,没有靠右行驶条款,谁还敢上路。同理,对软件来说,开发规约绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,推行相对标准化,以一种普遍认可的方式一起做事。


    因此,代码规约的目标是:1、码出高效:标准统一,提升沟通效率和研发效能。2、码出质量:防患未然,提升质量意识和系统可维护性,降低故障率。3、码出情怀:工匠精神,追求极致的卓越精神,打磨精品代码。


    代码规约通过 IDE 检测插件、流水线集成测试、代码评审集成等工具手段,深度融入了阿里巴巴的各种开发活动中。与此同时,在云效代码托管平台 Codeup 中,也内置集成了 Java 代码规约检测能力,为开发人员在代码提交和代码评审阶段提供更为方便的快速检查。


    • 代码智能补丁推荐


    缺陷检测和补丁推荐几十年来一直是软件工程领域的难题,又是研究者和一线开发者最为关心的问题之一,这里讲的缺陷不是网络漏洞、系统缺陷,而是隐藏在代码中的缺陷。帮助开发者识别这些缺陷,并进行修复,能够大幅提升软件质量。

    基于业界和学术界较为流行的缺陷检测手段,并分析和规避其局限性,阿里巴巴 Codeup 的算法工程师们提出了一种新的算法,实现更加精准和高效的分析代码缺陷并推荐优化方案,该算法已被国际软件工程大会(ICSE)收录。

    image.gif

    1.jpg


    1、根据 commit message 中的关键词找出修复型的 commit,只取涉及文件小于 5 个的 commit(涉及文件过多的 commit 可能会稀释修复行为)。这个步骤十分依赖开发者良好的 commit习惯,希望开发者能用好 commit,写好 message。


    2、从这些修复型 commit 中以文件级别提取删除内容和新增内容,即 Defect and Patch pairs(DP Pair),这一步难免会有很大的噪声。


    3、利用改进的 DBSCAN 方法对 buggy 和 patch 对同时聚类,将相似的缺陷和补丁代码聚在一起。(也可以做片段级的聚类)通过将相似的缺陷和修复做聚类,减少了上一步留下的大量噪声,同时历史代码提交中大家共同犯过的错具有很强的借鉴意义。


    4、利用自研的模板提取方法总结缺陷代码和补丁代码,并根据不同的变量来适配上下文。


    代码补丁推荐服务目前应用于合并请求的代码自动扫描场景,在代码评审过程中检测可优化代码片段并给出优化建议,将历史评审中的人工经验沉淀下来持续提升企业代码质量。


    2、代码安全检测


    • 敏感信息检测


    近年来,业内发生多起敏感信息(API Key、Database credential、OAuth token 等)通过某些站点被无意识地泄露出去的事件,给企业带来了安全风险,甚至直接的经济损失。


    在我们的实践过程中,我们也面临了类似的问题,硬编码问题出现非常高频,而又缺乏有效的识别机制。因此开发者和企业管理者亟需一款稳定健全的敏感信息检测方法和系统。通过调研我们了解到,目前已有的敏感信息检测工具大多单纯使用规则匹配或信息熵技术,导致其召回率或准确率难以满足预期。因此我们在规则匹配和信息熵技术的基础上,结合上下文语义,提出了一款采用多层检测模型的敏感信息检测工具——SecretRadar。


    2.jpg


    SecretRadar 的技术实现思路主要分为三层,第一层采用规则匹配这种传统敏感信息识别技术,规则匹配具有良好的准确度和扩展性,但是非常依赖比较固化的长度、前缀、变量名,难以应对不同开发者的不同编码风格,容易造成漏报。针对难以固定规则捕捉的场景,在第二层我们采用了信息熵算法。信息熵算法用于衡量代码行混乱程度,对随机生成型密钥和随机身份信息识别效果良好。但信息熵算法也有其局限性,召回率提升的同时误报也增多了。因此在第三层我们采用了模板聚类和上下文语义分析等方法进行过滤优化,针对信息熵结果聚合提取常见关键字,结合上下文语义和当前语法结构提升模型准确率。


    敏感信息检测工具不止服务我们内部开发同学,在云效平台上也支持了超过 2 万代码库、3 千家企业,帮助开发者解决了超过 9 万硬编码问题。


    • 源码漏洞检测


    阿里巴巴采用 Sourcebrella Pinpoint 源伞检测引擎,进行源码漏洞检测,主要涉及到注入类风险和安全策略类风险检测。


    源伞检测引擎是香港科技大学 Prism 研究组在过去十年的时间内的技术研究成果。该引擎吸收了国际上近十年的软件验证技术研究成果,并且加以改进和创新,独立设计和实现了一套技术领先的软件验证系统。其主要验证方式是将编程语言翻译成一阶逻辑和线性代数等数学表达,通过形式化验证技术推理缺陷成因。迄今为止,一共发表了四篇核心技术相关的论文,一篇 PLDI 和三篇 ICSE,研究型的同学可以点击文末链接阅读。


    源伞检测引擎能够在活跃度比较高的大型开源项目中发现隐藏超过 10 年的缺陷,以 MySQL 检测 [5] 为例,这些缺陷都是市面上其他检查工具无法扫描出来的,并且能够在 1.5 小时完成 200 万行大型开源项目的检测。在保持扫描的高效率同时,还能够将误报率控制在 15%左右。对于复杂且体量庞大的分析项目来说,源伞检测引擎所表现的扫描效率和误报率在业内也处于领先水平。


    「源码漏洞检测」集成了源伞检测引擎的安全分析能力,能够在分析精度、速度、深度等方面均衡得到较好的分析结果,具备的核心优势:


    1、支持分析字节码,二三方包的代码逻辑都不会遗漏;

    2、擅长跨函数长调用链路的逻辑分析;

    3、可以处理引用、指针等带来的间接数据修改;

    4、精度高,相比于同类工具,如 Clang、Infer,在精度和有效问题识别上表现更佳;

    5、性能好,目前单应用平均 5 分钟左右分析完毕;


    3.jpg


    源伞检测引擎可以精确的追踪代码中的数据流向,拥有高深度高精度的函数调用链分析能力,可以找到跨越多层函数的深度问题。在发现缺陷的同时还能给出问题触发的过程,完整展示相关的控制流以及数据流,这样可以辅助开发者快速理解和修复问题,在软件开发早期更低成本地提高软件质量,大幅减少生产成本,提高研发效能。


    • 依赖包漏洞检测


    我们期望对于开源组件的安全可信程度,为开发者建立一种有效的检测和管理机制,因此我们实现了依赖包漏洞检测服务和依赖包安全问题报表。在实践过程中,开发者普遍反映依赖包漏洞修复成本大多高于修复自身编码漏洞,从而不愿意或难于处理此类问题。究其原因,一方面是大部分漏洞并非直接引入,而是依赖的第三方组件又间接依赖了其它组件,另一方面是不确定具体哪个版本是干净可用且兼容的。


    4.jpg


    为了降低开发者的修复难度,我们对依赖项的引用关系进行了进一步识别分析,清晰的标注出直接依赖和间接依赖,并定位到具体的依赖包引入文件,方便开发者快速找到关键问题位置。同时,通过对漏洞数据的聚合,智能推荐修复漏洞的版本升级建议,因为一个依赖可能对应多个漏洞问题,开发者可以针对建议评估是否接受采用。通过分析不同版本间的 API 变更和代码调用链路,衡量版本升级成本,为开发人员自动创建修复评审,最大程度的帮助开发人员更高效地维护代码安全。


    无论是代码质量检测还是代码安全检测,以上 5 款阿里代码自动检测工具,开发者们都可以在云效 Codeup 内免费体验。



    检测服务应用


    1、代码提交


    检测服务的最直接的应用便是在代码提交场景中,企业可以根据业务场景和规范,制定和配置不同项目的检查方案。当开发者将代码变更推送至服务端,自动触发当前代码库配置的检测服务,可以为开发者检查当前 commit 版本中的全量问题,帮助开发者及早发现新增问题,并确认存量问题的解决情况。通过接入上述检测服务,可以从代码规范、代码质量、代码安全等多个维度进行测试左移,在开发人员刚完成编码时就进行快速检测和反馈。


    2、代码评审


    在企业项目协同中,开发者多以合并请求的方式将特性分支代码合入主干分支,合并请求过程需要项目开发负责人或模块负责人进行代码评审和人工检查。一方面人工审查代码需要投入较大精力,另一方面人工审查难以覆盖代码各个维度的潜在问题。因此,通过合理配置检测服务,可以极大地减少人工评审的工作量,加速代码评审的工作过程。同时,通过丰富、筛选、沉淀检测规则集和人工经验,检测服务可以更加贴合企业的业务场景进行卡点,避免不符合规范或存在风险的代码进入企业代码库。


    3、代码度量


    检测服务除了在代码提交和代码评审阶段帮助开发者及早发现问题并解决问题,还可以帮助管理者进行企业代码质量度量和风险可视化。通过建设企业级报表服务和项目任务管理,可以更为直观地度量项目演进过程中的安全问题和质量问题。



    扩展阅读


    1. Pinpoint: Fast and Precise Sparse Value Flow Analysis for Million Lines of Code 

    http://t.tb.cn/0qxIpFV5sRD5uxOcgED7o


    2. SMOKE: Scalable Path-Sensitive Memory Leak Detection for Millions of Lines of Code 

    http://t.tb.cn/2l96Jh2yqOGowsfs4oVk2m


    3. Pipelining Bottom-up Data Flow Analysis

    https://qingkaishi.github.io/public_pdfs/ICSE2020a.pdf


    4. Conquering the Extensional Scalability Problem for Value-Flow Analysis Frameworks 

    https://qingkaishi.github.io/public_pdfs/ICSE2020b.pdf




    活动推荐


    代码捉虫-PC.jpg


    5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖!


    都 2021 年了,你还认为代码检测=语法/风格扫描?

    大厂每年数百万采购的扫描软件,都在采购什么?如何不花钱白嫖?

    落地 DevOps 的第 2 步是什么?

    什么是接入成本最低的质量和安全提升工具?

    云效 DevOps 实验室特推出【1 分钟代码自动捉虫】活动

    1-3 分钟,给你的代码做个全身体检吧。


    体验完成,还可抽 Cherry 机械键盘、阿里云定制 GIt 命令鼠标垫、积木星球等,1000 分礼品,
    100%中奖


    点击下方链接,立刻参与活动!注:本活动仅限云效新用户参加

    https://developer.aliyun.com/adc/series/activity/bugdetect

    原文链接:https://developer.aliyun.com/article/790204?

    版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
    展开全文
  • 推荐几个代码静态分析工具

    千次阅读 2021-04-26 00:24:44
    关注+星标公众号,不错过精彩内容作者 | strongerHuang微信公众号|嵌入式专栏大家平时写代码,有用代码静态分析工具进行分析吗?可能很多人都没有对代码进行过静态分析,今天就来...

    关注+星标公众,不错过精彩内容

    作者 | strongerHuang

    微信公众号 | 嵌入式专栏

    大家平时写代码,有用代码静态分析工具进行分析吗?

    可能很多人都没有对代码进行过静态分析,今天就来给大家推荐几个代码静态分析工具。

    嵌入式专栏

    0

    关于代码静态分析工具

    代码静态分析工具,顾名思义就是对代码进行静待分析,以提前预判(分析出)代码潜在的一些问题的工具。

    换句话说,就是通过工具找出你代码的bug(错误、警告)。

    代码静态分析工具需要你的代码遵循一定规范,比如遵循C99MISRA C:2012等,不然工具不支持对你代码的静态分析。

    代码静态分析工具有独立存在的(就是一款软件工具),也有集成在IDE中的。比如比如:IAR EWARM就自带静待分析工具。

    同时,有些工具支持通过“安装插件”的形式集成在IDE中,比如:在keil MDK中添加PC-lint代码静态分析工具

    下面给大家介绍几个款代码静待分析工具:

    嵌入式专栏

    1

    LDRA

    1.网址

    https://www.ldra.com/

    2.介绍

    LDRA是拥有40多年经验的领先公司,LDRA主要针对代码安全和业务关键市场的代码分析和软件测试自动化的软件市场,以实现代码的早期错误识别并消除bug。

    同时,LDRA完全符合行业标准,通过静态和动态分析跟踪要求,以对各种硬件和软件平台进行单元测试和验证。LDRA的业务遍及全球,在英国,美国,德国和印度设有总部,并拥有广泛的分销商网络。

    LDRA符合 ISO 9001:2008。LDRA工具套件已通过TÜVSÜD 和SGS-TÜVSAAR 认证。这些工具符合IEC 61508,IEC 62304,IEC 60880,EN 50128和ISO 26262的规定,可用于与安全相关的软件开发。

    应用领域:

    3.特点

    • 自动化单元测试和系统级测试

    • 自动生成软件认证和批准证据

    • 规划和执行基于需求的测试

    • 对直至目标级别的所有代码执行和报告覆盖率分析

    • 几乎可以在任何主机或目标平台上进行单元测试和系统级测试

    • 符合编码标准(行业和用户定义)

    4.试用

    LDRA工具套件支持30天免费试用。

    嵌入式专栏

    2

    Parasoft C / C ++ test

    1.网址

    https://www.parasoftchina.com/products/ctest/

    2.介绍

    Parasoft® C/C++test® 是专业针对C和C++语言的开发测试方案,经广泛证明能提高软件开发效率和代码质量的自动化最佳实践解决方案。

    Parasoft 公司成立于1987年,总部位于加利福尼亚州的洛杉矶。有着30多年的丰富的专业技术积累和行业应用经验,产品横跨单元测试、静态分析、动态分析、功能测试、压力测试、信息安全测试、通信协议仿真、应用环境虚拟化等。

    3.特点

    • 提升C/C++开发软件质量

    • 自动化测试平台

    • 遵从性认证标准

    • 嵌入式和跨平台开发

    • 提升开发效率,加速软件交付

    • 低成本学习,高度可定制化

    4.支持广泛平台

    支持主机平台:

    • Windows

    • Visual Studio

    • Solaris UltraSPARC

    支持IDE:

    • Eclipse IDE for Developers

    • Microsoft Visual Studio

    • Wind River Workbench

    • ARM Workbench IDE for RVDS

    • ARM Development Studio

    • QNX Momentics IDE (QNX Software Development Platform)

    • Texas Instruments Code Composer Studio

    • ARM ADS

    • Green Hills MULTI

    • IAR Embedded Workbench

    • Keil µVision IDE

    • Keil RealView

    • Microsoft eMbedded Visual C++

    • Microsoft Visual Studio

    • Texas Instruments Code Composer

    • Wind River Tornado

    还有更多:

    4.试用

    Parasoft C/C++test工具套件同样支持免费试用,可进入官网申请免费试用。

    嵌入式专栏

    3

    PVS-Studio

    1.网址

    https://pvs-studio.com/en/pvs-studio/

    2.介绍

    PVS-Studio是用于检测用C,C ++,C#和Java编写的程序源代码中的错误和安全漏洞的工具。它可以在Windows,Linux和macOS环境中的64位系统下运行,并且可以分析用于32位,64位和嵌入式ARM平台的源代码。

    PVS-Studio执行静态代码分析并生成报告,以帮助程序员查找和修复错误。PVS-Studio执行各种代码检查,对于发现打印错误和复制粘贴错误也很有用。比如:V501,V517,V522,V523,V3001等类似错误信息。

    3.特点

    备注:截图内容为自动翻译,可能存在一些翻译错误。

    4.支持广泛平台

    操作系统:

    • Windows

    • Linux

    • macOS

    使用C/C++编译器对应教程的地址:

    https://pvs-studio.com/en/m/0033/

    5.试用

    PVS-Studio工具套件同样为商业付费软件,但支持免费试用。

    嵌入式专栏

    4

    VectorCAST

    1.网址

    https://www.vector.com/de/en/products/products-a-z/software/vectorcast/

    2.介绍

    VectorCAST嵌入式软件测试平台是一系列产品,可在整个软件开发生命周期内自动执行分析和测试。

    VectorCAST工具系列支持测试用例的创建和管理,以验证底层软件。此外,VectorCAST工具支持在DO-178C和ED-12C规定的所有级别(包括A级)上捕获和报告结构代码覆盖率数据。

    应用于:航天航空、汽车、工业、医疗、轨道交通等领域。

    软件关键级别和结构覆盖要求:

    3.特点

    • 支持DO-178C要求的所有级别的代码覆盖范围;ED-12C

    • 自动生成和编译完整的测试存根和驱动程序

    • 自动回归测试

    • 符合标准的测试报告生成

    • 在主机,模拟器和嵌入式目标系统上测试执行

    4.试用

    VectorCAST工具套件同样为商业付费软件,但支持免费试用。

    最后,篇幅有限,先推荐这些,还有更多静态分析工具,后期为大家分享。

    ------------ END ------------

    后台回复『软件工具』『嵌入式软件设计与开发』阅读更多相关文章。

    欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

    欢迎关注我的视频号:

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • 三款主流静态源代码安全检测工具比较 静态代码分析工具清单:开源篇(各语言) 代码静态分析工具——splint的学习与使用 3.代码测试框架 使用 Jtest:一款优秀的 Java 代码优化和测试工具 java单元测试工具 ...

    ——看书真是迅速进入一个陌生领域的最快办法……系统的、体系完整的知识比起在互联网上七拼八凑出的认识强太多了!
    先记下一些理论概念……

    • 软件生命周期模型
      分析
      设计与文档
      编码与审查
      测试与调试
      发布与维护

    • 软件测试对象的6种分类:
      单元测试(静态检查、动态测试)
      集成测试
      压力测试
      回归测试
      Alpha测试(系统测试)
      Bete测试(交付测试)

    一、大致分类

    0.项目集成构建与管理
    Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,可以处理任何类型的构建或持续集成

    1.团队评审工具
    有助于团队通过共同的开发、测试和管理工作以便能生产出高质量代码的代码审查工具。它允许团队在一个透明、协作的框架下进行同行代码审查、用户故事和测试计划——即时保持整个团队知晓对代码所做的更改。
    windows下GitHub的安装、配置以及项目的上传过程详细介绍
    Tortoise SVN 使用教程
    静态代码分析工具列表分析—代码分析工具列表(30款工具)

    2.代码审查工具(静态分析)
    华为DevCloud(提供指导修复)
    三款主流静态源代码安全检测工具比较
    静态代码分析工具清单:开源篇(各语言)
    开源的C++静态分析工具
    代码静态分析工具——splint的学习与使用
    cppcheck一个静态C / c++代码分析工具

    C++代码质量扫描主流工具深度比较
    以下为工具在付费价格、规则数量、准确率、扫描效率、编译依赖、IDE支持、跨平台支持、可扩展开发方面的对比数据。注:本次竞品分析的选择了3款游戏项目(约500万行代码)。
    在这里插入图片描述

    3.OJ——Online Judge在线判题系统

    用户可以在线提交程序源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。
    OJ大集合

    4.代码测试框架、(性能、安全等的单元测试)工具、测试辅助

    0.测试数据生成(其余内容在下一节)
    生成测试数据神器:使用python的faker库
    Java 生成测试字符串的库:Java Faker
    测试用例自动化生成工具
    一个自动生成测试用例的项目

    二、现有具体工具分类

    1.软件模拟人工界面操作
    AutoRunner (录制动作,生成系统脚本,自动运行的测试工具)

    2.单元测试工具——代码段测试、用例自动生成……(官网链接,软件介绍)

    parasoft官网(不止java,还有支持包括c++的一众语言):https://www.parasoft.com/
    代理商1慧都:https://www.evget.com/supplier/439
    代理商2麦克泰:http://www.bmrtech.com/proddetails_91614.html
    parasoft Jtest 使用教程:生成、执行和扩展Junit测试
    使用 Parasoft Jtest:一款优秀的 Java 代码优化和测试工具
    parasoft c++test操作手册

    JUnit 是一个回归测试框架,Junit唯一争议的地方便是需要自己编辑测试用例,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。
    java单元测试工具 junit
    Junit的基本使用(详解)
    Randoop随机测试&自动生成测试用例(它基于Junit格式自动生成测试用例.)

    凯乐软件官网:http://www.kailesoft.com/
    Visual Unit官方博客:http://www.51testing.com/html/58/35658.html
    Visual Unit 简明教程

    测试之家:http://www.tlemp.com/
    雨田单元测试系统

    LDRA:https://ldra.com/
    使用LDRA Testbed对代码进行单元测试

    星云测试/wings发布版开源:https://gitee.com/teststars/wings_release
    c语言单元测试用例全自动生成软件wings介绍
    Wings 与 parasoft c++ test 在单元测试用例自动生成能力的比对

    3.ide工具
    Visual Studio的宏扩展功能(可用来函数测试)
    parasoft C++test(VS2010插件版)简明操作手册
    单元测试框架 CppTest
    Visual AssistX(代码补全、函数提示的好工具)
    Visual Studio C++单元测试总结——3种方法可用

    4.相关收费产品(百度广告的。)
    (1)带有用例库管理的团队管理
    测试用例编写工具ONES TestCase
    (2)自动化测试
    TestStand

    5.其他待发掘的工具……

    其他总结类文章……
    开源单元测试工具汇总
    源代码、单元测试工具
    一文了解十大 Java 开发者必备测试框架!
    常用自动化测试工具
    C++ 的单元测试工具 —— Catch

    其他工具
    Google C++单元测试框架—Gtest框架简介(译文)
    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具
    单元测试工具IBM Ration Purify
    CppUnit测试框架入门
    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。
    Snaipe/Criterion-一个简单可扩展的 C 语言测试框架

    三、各类功能小结

    在获取源代码后可以做的工作↓

    0.代码规范检查
    提供基于内置编码规范的代码检查、基于用户自定义的编码规范的代码检查、自动修复代码规范错误和访问代码规范描述信息等功能。

    1.静态程序分析
    静态代码分析是指不运行源程序,仅通过分析源程序的语法、结构、接口等来检查程序正确性,找出代码隐藏的缺陷之处。
    作为一个多人参与的项目中代码审查过程的一个阶段,因编写完一部分代码之后就可以进行静态分析,分析过程不需要执行整个程序,这有助于在项目早期发现以下问题:变量声明了但未使用、变量类型不匹配、变量在使用前未定义、不可达代码、死循环、数组越界、内存泄漏等。

    在获取源代码并配置好环境后可以做的工作↓

    2.自动化单元测试
    自动建立测试环境,自动生成测试用例以及测试驱动程序和桩函数,自动执行
    白盒(自动建立测试驱动程序和桩函数)、
    黑盒(根据代码中定义的方法入口参数,自动生成大量黑盒测试用例)
    回归测试(只需选择测试项目,即可重复执行原有的白盒和黑盒测试。)。

    在获取源代码并设置好用例后可以做的工作↓

    3.测试用例的生成与使用管理
    测试用例管理
    测试用例生成

    4.其他功能

    代码编写过程中↓
    代码审查:的自动代码补全、函数提示。

    项目编写过程中↓
    团队评审辅助:共同的开发、测试和管理。

    四、相关论文或资料:

    【《软件测试(第2版)》,作者佟伟光】

    关键字:测试用例自动生成
    面向java函数调用路径的测试用例生成方法研究
    基于动态链接库技术的测试程序实现方法
    GUI自动化测试系列(一)测试用例的设计及自动生成
    一种软件测试用例自动生成方法与流程
    自动生成测试脚本方案浅析

    关键字:静态测试软件设计
    一种API自动化测试工具的设计与实现

    搜索关键词:
    测试用例自动生成工具
    自动化测试工具
    自动生成java测试用例的工具
    java函数输入值生成测试工具
    单元测试工具

    下面这张图是Parasoft中文网上的自夸~(其中包括了很多测试公司)
    在这里插入图片描述

    五、测试工具(框架)集中整理

    太多了:Free Open Source Windows Quality Assurance Software
    (博客格式符用起来整理太累,不断更新……以下是还没放进列表的)

    Boost.Test, UnitTest++, lest, bandit, igloo, CxxTest, cute
    CodeTest :C
    RTRT :C,C++,ADA,Java
    Cantata :C,C++
    Logiscope:C、C++、Java、Ada 等
    VectorCast:C,C++,ADA
    Tessy :C
    AsmTester :汇编
    Ounec5.0 扫描语言VB、C、C++、C#、Java,属于付费工具。
    Coverity Prevent 扫描语言有C、C++、C#、Java,属于付费工具。
    Stake SmartRiskAnalyzer 扫描语言C、C++、Java,属于付费工具。
    Flawfinder 扫描语言C、C++、属于付费工具。
    Static Code Analyzer 扫描语言C、C++、C#、Java,属于付费工具。
    PolySpace Client 扫描语言C、C++、python、perl、php,开源
    Fluid 扫描语言Java,开源。
    静态代码分析工具清单:开源篇(各语言)
    静态代码分析工具清单:开源篇(多语言)
    开源静态代码审计软件分析比对

    由于可能有重名,建议童鞋们搜索时用公司名+工具名来搜索,比如Parasoft Jtest
    其中不乏一些小众、冷门、过气、因年代久远销声匿迹了的(以官网凉了为准)。

    软件测试网:http://www.51testing.com

    1.动态测试(输出检测)

    动态测试工具:动态测试工具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。动态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。

    名称针对语言所属公司开源/商业收费官网/下载地址产品形式
    googletest(Gtest)c++google开源https://github.com/google/googletest框架
    JUnitjavaxUnit家族开源https://junit.org/框架
    CUnitCcunit.sourceforge.net/框架
    CatchC++开源https://github.com/catchorg/Catch2/框架
    NUnit.NETxUnit家族开源
    CppUnitc++xUnit家族开源https://sourceforge.net/projects/cppunit/框架
    cpptest (区别于parasoft的c++test)c++http://sourceforge.net/projects/cpptest
    Rational Suite 一大系列——IBM收费
    CoverageC/C++Bullseye收费
    Cactusjava开源
    BoundsChecker开源
    VcTesterAda, C/C++http://www.eztester.com(凉了)插件
    NuMega DevpartnerVB、VC++及JavaCompuware

    2.静态分析(代码质量)

    静态测试工具:直接对代码进行分析,生成可执行文件。静态测试工具一般是对代码进行语法扫描,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。

    http://www.sohu.com/a/225782178_505788
    https://www.cnblogs.com/hejing-swust/p/9451512.html

    名称针对语言所属公司开源/商业收费官网/下载地址产品形式
    c++check(cppcheck)c++————https://sourceforge.net/projects/cppcheck http://cppcheck.sourceforge.net http://cppcheck.net/demo(在线试用)vs插件/应用/在线
    Olink(Pork)c++Mozilla——http://danielwilkerson.com/oink/index.html
    Dehydrac++Mozilla——https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Dehydra
    C and C++ Code Counterc++http://sourceforge.net/projects/cccc/
    Splintc++
    Weff++ for GNU g++的选项功能c++
    Klocworkc++收费
    Gimpelc++收费
    Coverityc++收费
    SCA很多Fortify Software收费
    CxSuite很多Checkmarx收费
    CodeSecureASP.NET、JAVA、PHPArmonize收费
    HypersourceJAVAart of defence
    PreventJAVA .NET C/C++Coverity
    FlawfinderC/C++开源
    CodeSonar(集成了FindBugs、Checkstyle、PMD)C/C++Grammatechhttp://www.51testing.com/html/51/10851-76264.html
    DevInspectJAVAHPhttp://www.51testing.com/html/51/10851-76264.html
    PC-LintC/C++商用
    Hammurapijava开源
    Lint4java开源
    JDependjava开源
    BEAM(IBM Checking Tool for Bugs Errors and Mistakes)商用
    Yasca开源
    Inspector for JAVAJAVASofCheck
    KlocWorkJAVA .NET C/C++,C#Insight
    Ounce 6JAVA .NETOunce Labs
    SecurityReviewJAVA .NETVeracode
    Prefast微软在Visual Studio的团队版本中,使用Prefast,打开Project Properties --> Configuration Properties --> Code Analysis -->Enable Code Analysis For C/C++ on build。选择 Yes(/analyze)即可。
    Ncover Explorer(代码覆盖率分析)

    ~.综合应用

    综合类(成套工具,测试同时包含静态分析,而非单纯框架)

    名称针对语言所属公司开源/商业收费官网/下载地址产品形式
    c++testc++parasoft收费https://www.parasoft.com/vs插件/应用
    Jtestjavaparasoft收费https://www.parasoft.com/应用
    TestStandnational instructments有试用版http://www.ni.com/zh-cn/shop/electronic-test-instrumentation/application-software-for-electronic-test-and-instrumentation-category/what-is-teststand.html?cid=Paid_Search-128991-China-BaiDu_TSD1_test_system
    Logiscope
    NuMega
    TestbedC,C++,ADA,CobolLDRA

    小众、国产的:

    名称针对语言所属公司开源/商业收费官网/下载地址产品形式
    雨田单元测试系统C试用收费http://www.tlemp.com(凉半截)应用
    Visual UnitC++凯乐软件http://www.kailesoft.com/应用
    iUnit湖南泛联新安http://www.ubisectech.com/html/iUnit/index.html应用
    一系列泽众软件http://www.spasvo.com/
    思客云http://www.secureyun.cn/
    云效-测试平台阿里云https://www.aliyun.com/product/yunxiao-testing
    测试服务 WeTest腾讯云https://cloud.tencent.com/product/wetest
    Testin北京云测信息技术有限公司https://www.testin.cn/
    DT10trinityhttp://www.trinitytec.com.cn/

    3.软件测试工具(脚本录制与回放)

    黑盒测试工具(功能自动化测试工具、软件测试工具)的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作。黑盒测试工具的代表有:Rational公司的TeamTest、Robot;Compuware公司的QACenter。

    https://blog.csdn.net/henu_xk126com/article/details/81868591#commentBox
    执行重复的手动测试——自动化执行测试用例取代人工执行测试用例

    名称所属公司官网/下载地址产品特点针对方向
    WinRunner微软windows系统软件
    Mercury QuickTest Pro
    SilkTest
    Selenium
    TPTWeb自动化测试
    QTPWEB自动化测试
    AutoRunner泽众软件http://www.spasvo.com/autorunner
    Watir
    SeleniumWEB自动化测试
    MaxQ
    WebInject
    SoapUI接口自动化测试
    postman接口自动化测试
    robotium手机自动化测试
    appium手机自动化测试

    4.性能测试工具(预测系统行为和性能的负载测试工具)

    MercuryInteractive的LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。

    开源性能自动化测试工具:
    Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator

    名称所属公司官网/下载地址产品特点针对方向
    LoadRunnerMercuryInteractive
    jmeter开源

    5.测试管理工具

    测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有:Rational公司的TestManager;Compureware公司的TrackRecord;Mercury Interactive公司的TestDirector等软件。

    名称所属公司官网/下载地址产品特点产品形式
    ·Kiwi TCMShttp://kiwitcms.org/开源
    TestLinkhttp://www.testlink.org/开源
    TestCaseDBhttp://www.testcasedb.com开源
    Itest(国产)itest studiohttps://www.cnblogs.com/mypm/p/10649526.html https://itest.work/demo/网页版
    飞蛾CODINGhttps://feie.work/
    禅道项目管理系统https://www.zentao.net/开源
    Bugzillahttps://www.bugzilla.org/
    TestCenter (测试管理工具)http://www.opdown.com/soft/110667.html
    腾讯Buglyhttps://bugly.qq.com/v2

    以上于2019-10-12 23:11:49


    以下更新于2022-1-29

    来源《军用电源模块自动化测试系统的设计与实现》
    Compuware 白盒测试工具

    工具名支持语言环境简介
    BoundsCheckerC+、DelphiAPI 和 OLE 错误检查、指针和泄露错误和内存错误检查
    ThueTimeC+、Java、Visual Basic代码运行效率检查、组件性能的分析
    FailSafeVisual Basic自动错误处理和恢复系统
    JcheckMS Visual J++图形化的线程和事件分析工具
    TureCoverageC+、Java、Visual Basic函数调用次数、所占比率统计以及稳定性
    SmartCheckVisual Basic函数调用次数、所占比率统计以及稳定性
    CodeReviewVisual Basic自动源代码分析工具

    常见黑盒功能测试工具

    工具名公司名
    WinRunnerMercury Interactive
    Astra QuicktestMercury Interactive
    LoadRunnerMercury Interactive
    RobotIBM/Rational
    TeamTestIBM/Rational
    QARunCompuware
    QALoadCompuware
    SilkTestSegue Software
    SilkPerformerSegue Software
    e-TestEmpirix
    e-LoadEmpirix
    WASMS
    WebLoadRadview
    OpenSTAOpenSTA

    3、测试管理工具
    测试管理工具用于对测试进行管理。一般而言,测试管理工具负责对测试计划、测试用例、测试实施进行管理、对产品缺陷跟踪管理、产品特性管理的等。
    测试管理工具的代表有 Rational 公司的 TeamManager,Compuware 公司的TrackRecord、Mercury Interactive 公司的 TestDirector 等软件。
    除此之外,还有专用于性能测试的工具包括有:Radview公司的WebLoad:Microsoft 公司的 WebStress 等工具;针对数据库测试的TestBytes;对应用性能进行优化的 EcoScope 等工具。

    4、各种流程指导书

    *各测试类型的测试方法作业指导书
    文档审查作业指导书
    代码审查作业指导书
    静态分析作业指导书
    代码走查作业指导书
    逻辑测试作业指导书
    功能测试作业指导书
    性能测试作业指导书
    接口测试作业指导书
    API 接口测试脚本设计及实现作业指导书
    人机交互界面测试作业指导书
    强度测试作业指导书
    余量测试作业指导书:
    安全性测试作业指导书
    恢复性测试作业指导书
    边界测试作业指导节
    数据处理测试作业指导书
    安装测试作业指导书
    容量测试作业指导书
    互操作性测试作业指导书

    *各测试活动作业指导书
    测试需求分析作业指导书
    测试策划作业指导书
    测试设计和实现作业指导书
    测试现行作业指导书
    测试总结作业指导书
    用章管理作业指导书

    *工具使用作业指导书
    LoadRunner 使用作业指导书
    QTP 使用作业指导书
    C++Test 使用作业指导书
    Logiseqpe 使用作业指导书
    QC 使用作业指导书
    Selenium 作业指导书
    Klaework 使用作业指导书
    JACOCO 使用作业指导书

    展开全文
  • Java好用的代码检测工具有哪些?

    千次阅读 2021-11-16 15:19:47
    Java老手应该都知道,阿里在2017年10月份的云栖大会上发布了基于Java开发手册的Java扫描插件,主要功能是扫描出java代码潜在的代码隐患,提升代码质量!将不符合规约的代码显示出来,还实现了一键bug修复的功能,...
  • 好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,...
  • FOSSID(开源代码检测工具

    千次阅读 2022-02-09 09:38:51
    在Github、Gitkraken等全球知名开源社区的开源代码检测工具排行榜均位列第一。而在中国的开源社区及开源治理白皮书中多次被提名。 作为开源治理的标杆,中国赛迪检测认证中心、中国赛宝实验室,中国电子技术标准化...
  • C/C++代码静态扫描和动态测试工具

    千次阅读 2017-06-04 22:40:13
    动态分析工具: https://en.wikipedia.org/wiki/Dynamic_program_analysis http://www.embedu.org/Column/8058.html https://en.wikipedia.org/wiki/Software_metric ...
  • 代码覆盖检测工具 OpenCppCoverage

    千次阅读 2021-05-23 11:37:18
    简介 覆盖率(code coverage rate)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况...而代码覆盖工具就是用来量化代码测试的覆盖率,让测试人员可以直观的发现那些没有覆盖到的代码分支。 O
  • 代码静态分析工具

    千次阅读 2022-03-10 14:47:54
    随着逐渐增加的系统复杂性和不断加快的产品发布周期,静态代码分析工具在整个产品开发过程中的价值也日益凸显,开发人员在每次提交代码之前都会运行一个静态分析工具,在这些缺陷变成威胁之前找到它们,因为这些威胁...
  • 简介主流软件测试工具简介软件测试工具白盒测试工具白盒测试工具一般是针对代码进行测试测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具动态测试工具。静态测试工具:直接对...
  • 【IDEA】代码质量检测工具 QAPLug

    千次阅读 2021-02-19 16:56:39
    IDEA-代码质量检测工具 QAPLug 代码质量检测工具 情景: 写完代码一定要别人review才发现bug或不好的语法或多余的变量是一件多么尴尬的事情,如果想在写代码时或者写代码后自己能发现问题,那么...
  • Tessy是一个专门针对嵌入式软件的C/C++代码进行单元、集成测试工具,它可以自动化地执行测试、评估测试结果并生成测试报告。 Tessy的目标就是:通过自动化整个测试周期,支持针对C语言的单元测试/集成测试,同时,...
  • 代码审计及工具

    千次阅读 2022-04-08 00:04:19
    代码审计,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在...我们需要掌握编程,安全工具的使用、漏洞原理、漏洞的修复方式、函数的缺陷等等 代码审计入门基础:html/js基础语法、
  • Windows下 C++代码检测工具

    千次阅读 2019-07-06 12:53:22
    最近在查阅一些windows系统下的C++代码及性能检测工具, 按照检测类别分别静态检测和动态检测。 静态检测: 在程序没有被实际执行的情况下执行的计算机软件分析,大部分是对源代码的分析和检测。 动态检测: 通过...
  • 可以绑定到SonarQube 查看检测的结果 对于代码中的警告我们不能视而不见 有了代码质量检测工具以后,在一定程度上可以保证代码的质量 对于每一个问题,SonarLint都给出了示例,还有相应的解决方案,教我们怎么修改,...
  • 代码覆盖率测试工具名称:OpenCppCoverage 简介: OpenCppCoverage是2014年推出的Windows平台下开源的C++代码覆盖率工具,类似于Linux下gcc内嵌的gcov工具。它不需要在编译时插桩,只需要有编译生成的pdb文件,运行...
  • C++代码分析和动态测试CodeWizardC,C++代码静态分析Insure++C,C++实时性能监控以及分析优化.test.Net代码分析和动态测试Compuware白盒测试工具工具名支持语言环境简介BoundsCheckerC++,DelphiAPI和OLE错误检查、...
  • 静态源代码安全检测工具比较1. 概述随着网络的飞速发展,各种网络应用不断成熟,各种开发技术层出不穷,上网已经成为人们日常生活中的一个重要组成部分。在享受互联网带来的各种方便之处的同时,安全问题也变得...
  • 程序静态分析(Program static analysis)是指在不执行代码情况下, 通过词法分析、语法分析、语义分析、控制流、数据流分析等技术对源代码进行扫描。
  • AndroidStudio自带代码检测工具

    千次阅读 2018-05-07 16:19:34
    这是一款AndroidStudio自带的代码检测工具,个人认为其存在的价值在于代码优化,一方面预防错误率产生,一方面提神自我的优化意识~
  • 四款优秀的源代码扫描工具简介

    千次阅读 2020-12-18 16:56:06
    该平台可用于识别、跟踪和修复在源代码中的技术和逻辑上的缺陷,让软件开发团队及测试团队快速、准确定位源代码中的安全漏洞、质量和业务逻辑缺陷等问题,并依据提供的专业中肯的修复建议,快...
  • 常用代码托管工具

    千次阅读 2022-01-13 17:17:01
    常用代码托管工具1. Github2. Gitlab 1. Github Github简介 由 Git (著名的 Git 版本控制软件) 和 Hub( 「 中心 」 的意思) 两个词合成。 Github 全球最大的开源项目聚集地,到目前为止 Github 汇集了全球 7300+...
  • 在静态源代码检测工具方面,国内很多公司在研发产品,包括北大软件CoBOT、奇虎测腾的代码卫士、360企业代码卫士、清华大学软件学院Tsmart代码分析工具集、腾讯TscanCode开源静态扫描工具,端玛企业级静态源代码扫描...
  • 7个顶级静态代码分析工具

    千次阅读 2020-12-28 13:27:39
    点击“开发者技术前线”,选择“星标????” 让一部分开发者看到未来 作者丨Saif Sadiq 来自:infoQ策划丨田晓旭 静态代码分析或源代码分析是指使用静态代码分析工具对软件的...
  • detekt 是一款 kotlin 代码静态检测工具,他对标的是 Java 静态检测工具 checkStyle。detekt 有着检测快、功能强、可配置高等特点,可以帮助开发者尽早的发现代码中的坏气味。 除了 detekt 还有一种成熟的方案:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,529,677
精华内容 611,870
关键字:

代码动态测试工具