Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mheriyanto/awesome-cpp-testing

:clipboard: Collection of awesome C++ resources for testing,
https://github.com/mheriyanto/awesome-cpp-testing

List: awesome-cpp-testing

cpp-library testing testing-tools unit-test

Last synced: 16 days ago
JSON representation

:clipboard: Collection of awesome C++ resources for testing,

Awesome Lists containing this project

README

        

# Awesome C++ Testing [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
Collection of awesome C/C++ resources for testing.

Inspired by [awesome-python-testing](https://github.com/cleder/awesome-python-testing)

- [Code Coverage](#code-coverage)
- [Load Testing](#load-testing)
- [Mock and Stub](#mock-and-stub)
- [Mutation Testing](#mutation-testing)
- [Performance Testing](#performance-testing)
- [Property Based Testing](#property-based-testing)
- [Static Checks](#static-checks)
- [Testing Frameworks](#testing-frameworks)
- [Resources](#resources)
- [Books](#books)
- [Related](#related)

## Code Coverage

- [Bullseye Coverage](https://www.bullseye.com/whatsNew.html#8_13) - is a code analyzer for C and C++ that evaluates how much of your source code was tested.
- [FrogLogic Coco](https://doc.froglogic.com/squish-coco/latest) - Coco tests code coverage for C, C++, C# and Tcl code.
- [Intel C++ Compiler 15.0](https://www.intel.com/content/www/us/en/developer/tools/documentation.html) - displays dynamic execution counts for each basic block of the application, provides differential coverage data, and presents code coverage information visually with a customizable coloring scheme.
- [Testwell CTC++](https://www.testwell.fi/ctcdesc.html) - is a code coverage tool for C, C+, Java, and C#.

## Load Testing

- [Parasoft Jtest](https://parasoft.force.com) - provides a suite of testing tools for a variety of purposes like load testing, security testing, and more.

## Memory Management

- [Deleaker](https://www.deleaker.com) - is an extension for all major IDEs and a standalone application for memory leak detection - memory, GDI, and handles so far.
- [Dmalloc](https://dmalloc.com) - debug malloc library.
- [Memcheck by Valgrind](https://valgrind.org) - is an instrumentation framework for building dynamic analysis tools.
- [MemPro](https://www.puredevsoftware.com/mempro/index.htm) - is a C++ memory profiler.
- [sanitizers](https://github.com/google/sanitizers) - is AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer, and more.

## Mock and Stub

- [CppUTest](https://github.com/cpputest/cpputest) - unit testing and mocking framework for C/C++.
- [mockcpp](https://github.com/sinojelly/mockcpp) - a jmock-like generic C/C++ Mock Framework, which doesn't use complex template technique which will result in very heavy compiling overhead.

## Mutation Testing

- [Dextool](https://github.com/joakim-brannstrom/dextool) - a framework for writing plugins using libclang. The main focus is tools for testing and static analysis.
- [MuCPP](https://ucase.uca.es/mucpp/#:~:text=MuCPP%20is%20a%20mutation%20testing,applied%20using%20the%20Clang%20compiler.) - is a mutation testing tool for the C++ programming language.
- [mull](https://github.com/mull-project/mull) - is a practical mutation testing tool for C and C++.
- [Mutate++](https://github.com/nlohmann/mutate_cpp) - C++ Mutation Test Environment.
- [Mut-tools](https://cris.vtt.fi/en/publications/mut-tools-mutation-testing-for-cc-programs) - mutation testing for C/C++ programs.

## Performance Testing

- [sltbench](https://github.com/ivafanas/sltbench) - C++ benchmark tool. Practical, stable and fast performance testing framework.

## Property Based Testing

* [RapidCheck](https://github.com/emil-e/rapidcheck) - is a C++ framework for property based testing inspired by QuickCheck and other similar frameworks. In property based testing, you state facts about your code that given certain precondition should always be true.

## Static Checks

- [Cppcheck](https://cppcheck.sourceforge.io) - is a popular, open-source, free, cross-platform static code analysis tool dedicated to C and C++.
- [CppDepend](https://www.cppdepend.com) - is a commercial static code analysis tool for C++.
- [Klocwork](https://www.perforce.com/products/klocwork) - is a leader when it comes to C++ static code analysis tools.
- [Parasoft C/C++test](https://www.parasoft.com/products/parasoft-c-ctest) - targeting enterprise and embedded applications, includes a static code analysis tool (these industries are often required to obtain static code analysis tools for security reasons), as well as dynamic code analysis, unit test, code coverage, runtime analysis, and other functions.
- [PC-lint Plus](https://gimpel.com) - is a comprehensive static analysis solution for C and C++

## Testing Frameworks

- [Approval Tests for C++](https://github.com/approvals/ApprovalTests.cpp) - Native ApprovalTests for C++ on Linux, Mac and Windows.
- [autocheck](https://github.com/thejohnfreeman/autocheck) - QuickCheck and SmallCheck clones for C++.
- [Bandit](https://banditcpp.github.io/bandit) - A header-only framework for C++11 that wants to make working with unit tests a pleasant experience.
- [Boost.Test](https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/index.html) - Boost testing framework.
- [Catch](https://github.com/catchorg/Catch2) - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD.
- [CppUTest](https://cpputest.github.io) - is a C /C++ based unit xUnit test framework for unit testing and for test-driving your code.
- [doctest](https://github.com/onqtam/doctest) - The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD.
- [Fakeit](https://github.com/eranpeer/FakeIt) - C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
- [Googletest](https://github.com/google/googletest) - Google Testing and Mocking Framework.
- [Mull](https://github.com/mull-project/mull) - Practical mutation testing tool for C and C++
- [µTest](https://github.com/tymonx/utest) - Lightweight unit testing framework mainly for C++ and also for C projects.

## Resources

### Books

- [Modern C++ Programming with Test-Driven Development](https://pragprog.com/titles/lotdd/modern-c-programming-with-test-driven-development) (Pragmatic Bookshelf)
- [Test-Driven Development for Embedded C](https://pragprog.com/titles/jgade/test-driven-development-for-embedded-c) (Pragmatic Bookshelf)

### Related

- [Awesome C++](https://github.com/fffaraz/awesome-cpp) - A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.
- [Awesome Modern C++](https://github.com/rigtorp/awesome-modern-cpp#testing) - A collection of resources on modern C++.
- [C# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) - A comprehensive curated list of C# test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on C#.