0
点赞
收藏
分享

微信扫一扫

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


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

  • 软件生命周期模型
    分析
    设计与文档
    编码与审查
    测试与调试
    发布与维护
  • 软件测试对象的6种分类:
    单元测试(静态检查、动态测试)
    集成测试
    压力测试
    回归测试
    Alpha测试(系统测试)
    Bete测试(交付测试)

一、大致分类

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

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

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

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单元测试工具 junitJunit的基本使用(详解)
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插件版)简明操作手册单元测试框架 CppTestVisual AssistX(代码补全、函数提示的好工具)Visual Studio C++单元测试总结——3种方法可用

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

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

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

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

三、各类功能小结

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

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

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

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

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

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

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

4.其他功能

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

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

四、相关论文或资料:

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

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

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

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

下面这张图是Parasoft中文网上的自夸~(其中包括了很多测试公司)

代码检查、评审、单元测试工具 大搜集_自动化测试_02

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

太多了: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
其中不乏一些小众、冷门、过气、因年代久远销声匿迹了的(以官网凉了为准)。


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

名称

针对语言

所属公司

开源/商业收费

官网/下载地址

产品形式

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.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。

执行重复的手动测试——自动化执行测试用例取代人工执行测试用例

名称

所属公司

官网/下载地址

产品特点

针对方向

WinRunner

微软

windows系统软件

Mercury QuickTest Pro

SilkTest

Selenium

TPT

Web自动化测试

QTP

WEB自动化测试

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


网页版

飞蛾

CODING

https://feie.work/

禅道项目管理系统



开源

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

工具名

支持语言环境

简介

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


举报

相关推荐

0 条评论