Principle:Confident ai Deepeval Test Case Construction
Overview
Test Case Construction is the principle of structuring LLM inputs, outputs, and contextual information into standardized, evaluable test case objects. Just as unit testing frameworks use test fixtures to provide consistent inputs to functions under test, LLM evaluation frameworks require structured test cases that encapsulate all the data needed for metrics to produce meaningful scores.
A well-designed test case format enables consistent evaluation across diverse metrics -- from answer relevancy to faithfulness to custom G-Eval criteria -- without requiring practitioners to restructure their data for each metric.
Theoretical Basis
Test Fixture Patterns
The concept of test case construction draws from established software testing principles:
- Test Fixtures -- In traditional testing, a fixture establishes the preconditions and inputs needed for a test. An LLM test case serves as a fixture by bundling the input prompt, the LLM's output, expected outputs, and contextual information into a single object.
- Arrange-Act-Assert -- The test case captures the "Arrange" phase (input, context, expected output) and the "Act" result (actual output), enabling the evaluation metric to perform the "Assert" phase.
- Separation of Data and Logic -- By decoupling the test data (the test case) from the evaluation logic (the metric), the same test case can be evaluated against multiple metrics, and the same metric can be applied to multiple test cases.
Data-Driven Testing
Test case construction enables data-driven testing patterns:
- Parameterized Evaluation -- A single evaluation pipeline can process hundreds of test cases, each with different inputs and expected outputs, producing comprehensive quality assessments.
- Dataset Integration -- Test cases can be constructed from existing datasets (CSV, JSON, database records), enabling evaluation over curated benchmarks.
- Reproducibility -- Standardized test case objects ensure that evaluations are reproducible: given the same test cases and metrics, the evaluation produces consistent results.
Why Standardized Format Matters
Different evaluation metrics require different subsets of information:
- Answer Relevancy requires
inputandactual_output. - Faithfulness requires
input,actual_output, andretrieval_context. - Correctness requires
input,actual_output, andexpected_output. - Tool Use Evaluation requires
tools_calledandexpected_tools.
A unified test case object that contains all possible fields allows any metric to extract the fields it needs. Optional fields that are not relevant to a particular metric are simply ignored. This design eliminates the need for multiple data formats and simplifies the evaluation pipeline.
Contextual Fields for RAG Evaluation
For retrieval-augmented generation systems, test cases must capture:
- Context -- The ground-truth context that should be used (for evaluating retrieval quality).
- Retrieval Context -- The context that was actually retrieved and provided to the LLM (for evaluating faithfulness and context utilization).
This distinction enables separate evaluation of the retrieval component and the generation component of a RAG pipeline.
Relevance to End-to-End Evaluation
Within an end-to-end LLM evaluation workflow, test case construction is the data preparation stage. It bridges the gap between raw LLM interactions (prompts and responses) and structured evaluation, providing the standardized input format that all downstream metrics and evaluation functions consume.