junit-quickcheck
jazzer
Our great sponsors
junit-quickcheck | jazzer | |
---|---|---|
5 | 11 | |
952 | 906 | |
- | - | |
7.3 | 9.2 | |
6 days ago | 2 months ago | |
Java | Java | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
junit-quickcheck
-
Need your feedback on a tool that auto-generates unit tests for java code
For anyone interested, there's also https://github.com/pholser/junit-quickcheck . Haven't used it myself but looks like an interesting library to explore. It's based on QuickCheck as well AFAIK.
-
Coding Challenge
Thank you for the insightful reply. I did struggle to convert the original algorithm I wrote (with while loops / continue / break) to a more functional style using unfold, and also faced an issue with the type signatures when I tried to break down the contents of Stream.unfoldRight to multiple functions, which is reflected to the messy state you mentioned. Regarding property based testing, I used junit-quickcheck and the "symmetry" property check was one I meant to write but wasn't quite sure how to create a generator for it. I created an issue to track my attempt to incorporate your suggestions in case you are interested in following this. Thanks again!
-
Does anyone have any advice for writing better Java tests.
A quick Google search shows that java has a library for this (here) but I've never used it in java so can't attest to it.
-
GitHub Copilot for JetBrains and Neovim
QuickcCheck-type tools (generators for tests that know about the edge cases of a domain - e. g. for the domain of numbers considering things like 0, the infinities, various almost-and-just-over powers of two, NaN and mantissas for floats, etc.):
* QuickCheck: https://hackage.haskell.org/package/QuickCheck
* Hypothesis: https://hypothesis.readthedocs.io/en/latest/
* JUnit QuickCheck: https://github.com/pholser/junit-quickcheck
Fuzz testing tools (tools which mutate the inputs to a program in order to find interesting / failing states in that program). Generally paired with code coverage:
* American Fuzzy Lop (AFL): https://github.com/google/AFL
* JQF: https://github.com/rohanpadhye/JQF
Mutation / Fault based test tools (review your existing unit coverage and try to introduce changes to your _production_ code that none of your tests catch)
* PITest: https://pitest.org/
-
Fuzzing Java in OSS-Fuzz
If you want an easy way to have better mutation coverage, check out property based testing. Eg junit-quickcheck for Java.
https://github.com/pholser/junit-quickcheck
jazzer
-
JQF Genetic Algorithm
Check out Jazzer, the code intelligence blog, and search for custom sanitizers for Java etc. https://github.com/CodeIntelligenceTesting/jazzer
-
Automated Fuzz Testing: The Power of Code Intelligence App
Input Generation: The tester uses a fuzzing tool such as CI Fuzz or Jazzer to generate random or unexpected inputs to the software application.
-
Java Fuzzing with Jazzer compared to Symflower
Fuzzing is a testing technique where random values are generated as inputs to find unexpected behavior such as crashes and security issues. Previously we looked at the new Golang release 1.18 which includes native fuzzing and our Core Technology blog series contained a post that compares symbolic execution to different other testing techniques, including fuzzing. Today, we will dive into the Java world and check out the most popular Java fuzzing solution: Jazzer.
-
jazzer.js alternatives - jazzer and cifuzz
3 projects | 12 Sep 2022
Coverage-guided fuzzer for Java
-
How to fuzz java code with jazzar?
$ git clone https://github.com/CodeIntelligenceTesting/jazzer $ cd jazzer $ ./bazelisk-linux-amd64 run //:jazzer Starting local Bazel server and connecting to it... INFO: Analyzed target //:jazzer (79 packages loaded, 1410 targets configured). INFO: Found 1 target... Target //:jazzer up-to-date: bazel-bin/jazzer INFO: Elapsed time: 43.920s, Critical Path: 7.21s INFO: 83 processes: 4 internal, 79 linux-sandbox. INFO: Build completed successfully, 83 total actions INFO: Build completed successfully, 83 total actions driver/jazzer_driver: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
- How to Write Fuzz Targets with Jazzer
-
Fuzzing Java in OSS-Fuzz
One of the authors of Jazzer here. Feel free to ask any questions regarding Jazzer (https://github.com/CodeIntelligenceTesting/jazzer) or how to integrate Java/JVM projects into OSS-Fuzz.
- Jazzer: Coverage-Guided Fuzzing for JVM
- Jazzer is a coverage-guided, in-process fuzzer for the JVM platform (2021, github)
- Jazzer - a coverage-guided, in-process fuzzer for the JVM platform
What are some alternatives?
jqwik - Property-Based Testing on the JUnit Platform
libfuzzer-workshop - Repository for materials of "Modern fuzzing of C/C++ Projects" workshop.
copilot.vim - Neovim plugin for GitHub Copilot
PIT - State of the art mutation testing system for the JVM
JQF - JQF + Zest: Coverage-guided semantic fuzzing for Java.
jni-bind - JNI Bind is a set of advanced syntactic sugar for writing efficient correct JNI Code in C++17 (and up).
copilot-docs - Documentation for GitHub Copilot
symflower - Symflower is a Java unit test generation tool for IntelliJ IDEA, Visual Studio Code, Android Studio, and CLI. Use it to write and maintain test code with ease. This repository is for providing community support.
radamsa
winafl - A fork of AFL for fuzzing Windows binaries