WebFuzzing / EvoMaster

The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).
GNU Lesser General Public License v3.0
454 stars 77 forks source link

solver: support for PK and FK #1000

Closed agusaldasoro closed 3 weeks ago

agusaldasoro commented 1 month ago

Description:

This pull request introduces support for primary keys and foreign keys within EvoMaster. The changes aim to enhance the database schema handling capabilities, ensuring robust data integrity and facilitating complex relationships.

SMT Solver Key Changes:

  1. Primary Key Support:

    • Definition and Enforcement: Added functionality to define and enforce primary keys in SMT Solver.
    • Unique Constraints: Ensured that primary key columns automatically enforce unique constraints.
  2. Foreign Key Support:

    • Definition and Relationships: Enabled the definition of foreign keys to establish relationships between tables.
    • Referential Integrity: Added mechanisms to enforce referential integrity, ensuring that foreign key constraints are respected.
  3. Naming Refactor for Assertions:

    • Consistency and Clarity: Refactored the naming of assertions to improve consistency and clarity across the codebase.
    • Standardized Naming Conventions: Adopted standardized naming conventions for assertions to make the code more intuitive and easier to understand.