Source note

APITestGenie: Generating Web API Tests from Requirements and API Specifications with LLMs

LLM Test GenerationAPI TestingOpenapiRequirements To CodeRetrieval Augmented Generation

APITestGenie generates executable web API integration tests from natural-language business requirements plus OpenAPI specs. The paper shows that this requirement-driven setup can produce valid tests for most evaluated requirements, including large industrial APIs.

  • Writing API integration and acceptance tests is still manual, slow, and error-prone, especially when expected behavior is described in business requirements rather than low-level API calls.
  • Existing API test tools often work from OpenAPI alone, so they miss requirement context and struggle to generate tests that check business behavior across multiple endpoints.
  • This matters for modern systems that depend on many APIs and need tests that keep up with frequent changes and deployments.
  • APITestGenie takes two inputs: a business requirement in natural language and the API's OpenAPI specification, then asks an LLM to generate ready-to-run TypeScript tests using Axios and Jest.
  • The system uses a structured prompt with task context, output quality criteria, and a required output format that includes requirement interpretation, endpoint selection, and executable test code.
  • For large API specs, it preprocesses the OpenAPI file, splits it into chunks, embeds them in a vector database, expands the requirement into related queries, and retrieves the most relevant chunks with RAG.
  • The workflow has three modules: test generation, optional test improvement using prior execution feedback, and test execution in a Jest/TypeScript environment.
  • The evaluation used GPT-4-Turbo with three generation attempts per business requirement, then executed scripts and manually checked semantic validity.
  • Evaluated on 10 real-world APIs and 25 business requirements, with 75 total generation attempts; 8 of the APIs came from an automotive industry partner and covered about 1,000 live endpoints.
  • APITestGenie produced 52 valid test scripts out of 75 attempts, for a 69.3% success rate per attempt.
  • 22 of 25 business requirements had at least one valid script within three attempts, for an 88.6% requirement-level success rate; the abstract rounds this to 89%.
  • Low-complexity APIs reached 21 valid scripts out of 24 attempts, or 87.5%, and 8 of 8 requirements got at least one valid script. High-complexity APIs reached 31 of 51 attempts, or 60.8%, and 14 of 17 requirements got at least one valid script.
  • Average generation time was 126 seconds and average cost was €0.37 per generation.
  • Among the 52 valid scripts, 31 passed, 12 exposed API defects, 2 failed due to insufficient documentation, and 7 failed because of environment setup issues. The paper states that some generated tests found previously unknown defects, including cross-endpoint integration issues.