PHPUnit 10 deprecates the docblock forms in favour of attributes, which is a mechanical change across every test file and a real improvement.
// 9.x
/**
* @test
* @dataProvider validInputs
* @group slow
*/
public function itAcceptsValidInput($input): void {}
// 10.x
#[Test]
#[DataProvider('validInputs')]
#[Group('slow')]
public function itAcceptsValidInput($input): void {}
Attributes are parsed by the language rather than by a docblock reader, so a typo is a class-not-found error instead of a silently ignored annotation — which is the actual gain, and it found two @dataprovider spellings that had never run. Rector handles the conversion; reviewing the diff for the ones it could not resolve is where the hour goes.