代码检查、评审、单元测试工具 大搜集

  • Post author:
  • Post category:其他


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

先记下一些理论概念……

  • 软件生命周期模型

    分析

    设计与文档

    编码与审查

    测试与调试

    发布与维护

  • 软件测试对象的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 框架
JUnit java xUnit家族 开源 https://junit.org/ 框架
CUnit C cunit.sourceforge.net/ 框架
Catch C++ 开源 https://github.com/catchorg/Catch2/ 框架
NUnit .NET xUnit家族 开源
CppUnit c++ xUnit家族 开源 https://sourceforge.net/projects/cppunit/ 框架
cpptest (区别于parasoft的c++test) c++ http://sourceforge.net/projects/cpptest
Rational Suite 一大系列 —— IBM 收费
Coverage C/C++ Bullseye 收费
Cactus java 开源
BoundsChecker 开源
VcTester Ada, C/C++ http://www.eztester.com(凉了) 插件
NuMega Devpartner VB、VC++及Java Compuware



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
Dehydra c++ Mozilla —— https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Dehydra
C and C++ Code Counter c++ http://sourceforge.net/projects/cccc/
Splint c++
Weff++ for GNU g++的选项功能 c++
Klocwork c++ 收费
Gimpel c++ 收费
Coverity c++ 收费
SCA 很多 Fortify Software 收费
CxSuite 很多 Checkmarx 收费
CodeSecure ASP.NET、JAVA、PHP Armonize 收费
Hypersource JAVA art of defence
Prevent JAVA .NET C/C++ Coverity
Flawfinder C/C++ 开源
CodeSonar(集成了FindBugs、Checkstyle、PMD) C/C++ Grammatech http://www.51testing.com/html/51/10851-76264.html
DevInspect JAVA HP http://www.51testing.com/html/51/10851-76264.html
PC-Lint C/C++ 商用
Hammurapi java 开源
Lint4 java 开源
JDepend java 开源
BEAM(IBM Checking Tool for Bugs Errors and Mistakes) 商用
Yasca 开源
Inspector for JAVA JAVA SofCheck
KlocWork JAVA .NET C/C++,C# Insight
Ounce 6 JAVA .NET Ounce Labs
SecurityReview JAVA .NET Veracode
Prefast 微软 在Visual Studio的团队版本中,使用Prefast,打开Project Properties –> Configuration Properties –> Code Analysis –>Enable Code Analysis For C/C++ on build。选择 Yes(/analyze)即可。
Ncover Explorer(代码覆盖率分析)



~.综合应用

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

名称 针对语言 所属公司 开源/商业收费 官网/下载地址 产品形式
c++test c++ parasoft 收费 https://www.parasoft.com/ vs插件/应用
Jtest java parasoft 收费 https://www.parasoft.com/ 应用
TestStand national 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
Testbed C,C++,ADA,Cobol LDRA

小众、国产的:

名称 针对语言 所属公司 开源/商业收费 官网/下载地址 产品形式
雨田单元测试系统 C 试用收费 http://www.tlemp.com(凉半截) 应用
Visual Unit C++ 凯乐软件 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/
DT10 trinity http://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
TPT Web自动化测试
QTP WEB自动化测试
AutoRunner 泽众软件 http://www.spasvo.com/autorunner
Watir
Selenium WEB自动化测试
MaxQ
WebInject
SoapUI 接口自动化测试
postman 接口自动化测试
robotium 手机自动化测试
appium 手机自动化测试



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

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

开源性能自动化测试工具:

Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator

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



5.测试管理工具

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

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

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


以下更新于2022-1-29

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

Compuware 白盒测试工具

工具名 支持语言环境 简介
BoundsChecker C+、Delphi API 和 OLE 错误检查、指针和泄露错误和内存错误检查
ThueTime C+、Java、Visual Basic 代码运行效率检查、组件性能的分析
FailSafe Visual Basic 自动错误处理和恢复系统
Jcheck MS Visual J++ 图形化的线程和事件分析工具
TureCoverage C+、Java、Visual Basic 函数调用次数、所占比率统计以及稳定性
SmartCheck Visual Basic 函数调用次数、所占比率统计以及稳定性
CodeReview Visual Basic 自动源代码分析工具

常见黑盒功能测试工具

工具名 公司名
WinRunner Mercury Interactive
Astra Quicktest Mercury Interactive
LoadRunner Mercury Interactive
Robot IBM/Rational
TeamTest IBM/Rational
QARun Compuware
QALoad Compuware
SilkTest Segue Software
SilkPerformer Segue Software
e-Test Empirix
e-Load Empirix
WAS MS
WebLoad Radview
OpenSTA OpenSTA

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 使用作业指导书



版权声明:本文为sinat_27382047原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。