EvoMaster icon indicating copy to clipboard operation
EvoMaster copied to clipboard

Poor minimization in graphql query generation

Open jberryman opened this issue 10 months ago • 1 comments

EvoMaster version: 3.4.0 Running with /opt/evomaster/bin/evomaster --blackBox true --maxTime 600s --ratePerMinute 60 --problemType GRAPHQL --bbTargetUrl http://localhost:3000/graphql

Caveat: I haven't played with minimizeTimeout yet, but I suspect the algorithm could be improved. Evomaster produced this potential buggy query:

{ AlbumByID  (AlbumId : "uWmoJTQ6wSTLlo")  {AlbumId,Tracks(order_by : [],where : null){Composer,Genre{Name},GenreId,Milliseconds,Name,UnitPrice}}       } 

But this gives the same output:

{ AlbumByID  (AlbumId : "uWmoJTQ6wSTLlo")  {Tracks(where : null){Composer}}}

I suspect a good shrinking heuristic might be to start by

  • just removing all but one leaf field from every selection set (at least when it takes no inputs)
  • collapse all insignificant whitespace into a single space

jberryman avatar Feb 25 '25 22:02 jberryman

Hi @jberryman ,

minimization algorithm is currently is quite limited... should be improved. What you wrote makes lot of sense.

Unfortunately, our current industrial partners are mainly focusing on REST and RPC, so the GraphQL support in EvoMaster has been bit behind recently...

arcuri82 avatar Feb 25 '25 22:02 arcuri82