App-Test-Generator

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

		See App::Test::Generator::Mutator::_is_redundant_level for a list of those optimised out
	Added basic LSCAJ data to the test dashboard.
	Added simple security string testing.
	Don't push too hard on builtins as they don't have good parameter validation.
	Ensure adding only the byte order marker honours $min
	More use of _DESCRIPTION

0.29	Thu Feb 26 12:57:59 EST 2026
	Added mutation testing
	Added guided testing to extract-schemas
	Some routines were incorrectly labelled as getter routines
	Added more edge cases
	Added fallback to extract parameters from classic Perl body styles
	Added Type::Param support (https://github.com/nigelhorne/App-Test-Generator/issues/4)
	Getter routines take no arguments
	Fixed string testing when both min and max are given
	Don't give $class or $self as parameters
	No input/output no longer croaks, because there are now a few tests that can be run
	Add a basic hashref to mandatory args
	Use UUID::Tiny and Readonly::Values::Boolean

0.28	Mon Feb  9 19:54:59 EST 2026
	Latest test dashboard
	Some getter/setter routines were missed
	Test getset routines
	Added 'isa' test.  Tests code dies when passed the wrong type of object

0.27	Thu Jan 29 07:54:01 EST 2026
	Fewer false positives for "optional"
	Sometimes "new:" was missing
	If a return value is 'length($foo)' it's an integer with a minimum value of 0
	Some random strings were mistakenly sent as tests that were not in the memberof set

0.26	Mon Jan 12 07:57:54 EST 2026
	Added strict_pod mode to SchemaExtractor, which croaks if it finds discrepancies between the POD and code
	Improved detection of optional/required arguments
	Improved detection of integer output types
	Improved POD parser of parameters
	Added --dry-run
	Improved config validation
	Better call of object methods in transforms
	Test the sanity of Unicode outputs
	Idempotent tests
	Prevent silent duplicate method overwrites
	Implement confidence_threshold
	Refactor _detect_accessor_methods
	Only generate one of call_code and position_code
	Check for global side effects
	Sanity test on DIES
	Added timeout tests to ensure the test doesn't hang

0.25	Thu Jan  1 15:41:06 EST 2026
	Ternary ? 1 : 0 return is taken to be an indicator of boolean returns
	Now parses this pod to know that it's supposed to return a string:
		Returns the sanitized HTML string
	Use :: to call methods in non-oo modules, rather than ->
	Flag when type is set to object by can is not set

0.24	Sun Dec 28 15:10:09 EST 2025
	Return chances of false positive file path semantics
	If the type of an variable can't be determined, guess at string, but lower the confidence level
	Error Message Extraction:
		Capture error messages from die/croak/confess
		Use them to understand what makes input invalid die "Age must be positive" if $age <= 0;
		Store that a negative/zero age is invalid
	Use test of scalar(@_) to check for number of optional/mandatory args
	Throw a float at a routine that only takes integers - it should error
	Added example extraction
		Parse POD for example calls and extract valid parameter combinations =head2 SYNOPSIS my $obj = Module->new(foo => 'bar', count => 5);
		Store these as known-good test values
	Corpus bool testing now uses ok rather than is
	Ensure new doesn't refer to other packages
	Set the isa property in the new function

0.23	Wed Dec 24 10:48:03 EST 2025
	Fix https://www.cpantesters.org/cpan/report/079dba46-d92f-11f0-9642-dde56d8775ea
	Don't give false negative that memberof isn't known
	SchemaExtractor output files now end in .yml not .yaml
	Ensure rand_str isn't called when memberof is set
	When test_empty is set, do the right thing for memberof

0.22	Sun Dec 21 20:59:58 EST 2025
	Added better API to generate
	Added parameter relationship detection (mutually exclusive, required groups, conditional requirements, dependencies, value constraints)
	Improved Object Detection
		Detect factory methods that return instances
		Recognize singleton patterns
		Identify when constructor needs specific parameters
		Handle inheritance (when parent class new() is needed)
	Better Default Value Extraction
		$param = $param || 'default_value'
		$param //= 'default_value'
		$param = defined $param ? $param : 'default'
	Expanded _detect_list_context to
		Better distinguish scalar vs list returns
		Detect void context methods (those that modify state)
		Recognize chaining patterns more reliably Identify error return conventions (undef on failure, etc.)
	Add confidence scoring transparency, explain WHY confidence is what it is:
		_analysis: confidence_factors:
			- "POD documentation present (+30)"
			- "Type validation in code (+20)"
			- "No constraint information (-10)"
	Add support for:
		- Signatures (sub foo($x, $y = 5) { })
		- Postfix dereferencing ($array->@*)
		- Subroutine attributes (sub foo :Returns(Int) { })
		- Field declarations (Perl 5.38+)
	Added a new section to generated YAML:
		yamltest_hints: boundary_values: [0, 1, 100, 255]
		detected from code invalid_inputs: ['', undef, -1]
		from validation checks equivalence_classes: []

0.21	Sun Dec 14 08:07:09 EST 2025
	Schemaextractor: don't put the package name as the argument
	Validate config settings better
	Fix max string testing with non-ASCII characters
	Changed rand_str to be a unified generator that randomly produces codepoint strings,
		grapheme clusters, ZWJ emoji sequences, or aggressive Unicode fuzz strings
	Schemaextractor: Added advanced type detection for DateTime objects, file handles, coderefs, and enum validation patterns
	Added enum as a synonym of memberof
	Added tests for unix_timestamp semantic type



( run in 0.650 second using v1.01-cache-2.11-cpan-39bf76dae61 )