Property-Based TestingGenerating and shrinking inputs that challenge general claims about codeTestingSoftware DesignQuality Assurance