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

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

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

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

一、大致分类

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

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

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

C++代码质量扫描主流工具深度比较
以下为工具在付费价格、规则数量、准确率、扫描效率、编译依赖、IDE支持、跨平台支持、可扩展开发方面的对比数据。注:本次竞品分析的选择了3款游戏项目(约500万行代码)。
代码检查、评审、单元测试工具 大搜集_第1张图片

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中文网上的自夸~(其中包括了很多测试公司)
代码检查、评审、单元测试工具 大搜集_第2张图片

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

太多了: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

你可能感兴趣的:(库,工程,工具用法,QT,tomcat)