From 4393c809484562ccad87ef2478a2892c77dd8b51 Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Sat, 11 May 2024 13:54:27 +0700 Subject: [PATCH] Add `site/index.html` --- site/index.html | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 site/index.html diff --git a/site/index.html b/site/index.html new file mode 100644 index 00000000..3ab7eebf --- /dev/null +++ b/site/index.html @@ -0,0 +1,7 @@ +Hedgehog will eat all your bugs
Generate hundreds of test cases automatically, exposing even the most insidious of corner cases. Failures are automatically simplified, giving developers coherent, intelligible error messages.

Simplified Failures

Hedgehog shrinkers are composed automatically when you compose generators, so test failures are automatically simplified.

Range Control

Control the range of generators. Generate a number between 50 and 100 and have this invariant maintained even after shrinking.

State Machine Testing

Test stateful systems like web services, database layers, and even foreign calls to C. Expose race conditions in parallel mode.

Counterexample Diffs

Immediately see the difference between large data structures being compared for equality.

How do I use Hedgehog?

  • Time Travelling and Fixing Bugs with Property-Based Testing
    Oskar Wickström

    This tutorial is based on a simple but realistic system under test, aiming to show some ways you can test and find bugs in such logic using property-based testing It covers refactoring, dealing with non-determinism, testing generators themselves, number of examples to run, and coupling between tests and implementation.

  • 5 tips for better Hedgehog tests
    Jacob Stanley

    Have some Hedgehog tests to write? Here’s five useful features you may not know about!

  • Property-Based Testing The Ugly Parts: Case Studies from Komposition
    Oskar Wickström

    It can be hard to see how property-based testing applies to your day-to-day work. How do you go beyond testing small pure functions?

    This talk Oskar describes techniques that you can use to test the “ugly” parts of your system, and dig deeper into a few case studies from Komposition, a screencast video editor written in Haskell.

  • Property-based State Machine Testing
    Andrew McMiddlin

    Andrew takes you on a guided tour of Hedgehog's state machine testing facilities and then presents a series of examples to show off what you can do. This will show you how to start applying this tool to your own projects.

    The application being tested will be a servant web application, and examples include testing fundamentals such as content creation and deletion, uniqueness constraints, and authentication.

  • Introduction to state machine testing
    Andrew McMiddlin

    Andrew gives an introduction to state machine testing with Hedgehog and shows why it's a great solution to testing code that deals with mutable state.

    This series supplements the fast paced talk above with a slower-paced introduction over a series of blog posts.

  • Gens N’ Roses: Appetite for Reduction
    Jacob Stanley

    Jacob highlights the technical and social problems that he and his coworkers experienced with the type-directed shrinking approach which QuickCheck takes. He explores the alternative, integrated shrinking, and shows that even in a statically typed language, integrated shrinking provides enormous benefits for developer productivity.

    You will learn about the difference between type-directed and integrated shrinking, and how integrated shrinking can provide superior counterexamples, while placing a smaller burden on developers writing tests.

  • Integrated versus Manual Shrinking
    Edsko de Vries

    In Haskell, QuickCheck has been the library of choice for property-based testing, but Hedgehog has been gaining popularity. One of the key differences between these two is that in QuickCheck one writes explicit generation and shrinking functions, whereas in Hedgehog shrinking is integrated in generation.

    In this blog post Edsko explains what that means by developing a mini-QuickCheck and mini-Hedgehog and comparing the two.

  • State Machine Testing in Hedgehog
    Huw Campbell

    State Machine Testing is an extremely powerful technique, and builds upon property based testing and even temporal logic. It can go beyond standard property based testing, in that we can easily test highly stateful external systems, such as distributed systems, C libraries, and databases – even finding race conditions and concurrency issues. In this talk, Huw looks at what state machine testing is, and how it works in Hedgehog by reimplementing a simple QuickCheck clone, and writing a State Machine Testing library on top of it.

Get

Hedgehog

Haskell

build-depends: hedgehog
Download
Contribute

F# (and C#)

nuget install Hedgehog
Contribute

R

install.packages("hedgehog")
Download
Contribute

Scala

"hedgehog" %% "hedgehog-sbt"
            % "${commit}"
Download
Contribute
\ No newline at end of file