Unit Testing, Property Based Testing.
take one of two different strategies: exhaustive or generative. The first one can be described as brute force applied to test cases: exhaustively write all cases — when possible. The other strategy is the generative one, known as property-based testing, which consist of pure inference over domain