QA MadnessBlog LLM Evaluation Frameworks Compared: DeepEval, RAGAS, Promptfoo — and Where Human Review Still Matters
LLM Evaluation Frameworks Compared: DeepEval, RAGAS, Promptfoo — and Where Human Review Still Matters
Reading Time: 7minutes
Last updated: 16 October 2026
LLM evaluation frameworks turn to a subjective question — is this answer any good? — into a repeatable score you can run in CI. DeepEval, RAGAS and Promptfoo all do this with built-in metrics plus a model acting as judge, and all 3 are open source. None can tell you whether an answer is safe to ship in your domain, which is where AI product testing, a human reviewer, and how testing AI applications differs from traditional QA come in.
What does an LLM evaluation framework actually do?
An LLM evaluation framework runs your application against a set of test inputs and scores each output on defined metrics. It fails the run when a score drops below a threshold. It replaces manual spot-checking with something a pipeline can gate on.
LLM evaluation is the practice of measuring output quality against defined criteria rather than eyeballing samples. The service version of that work is LLM evaluation services.
3 mechanisms do the scoring. Statistical metrics compare output to a reference string, while model-graded metrics send it to a judge model with a rubric. Custom assertions let you write your own rule, in code or natural language.
The judge model does most of the work in practice. DeepEval’s docs describe G-Eval as using “LLM-as-a-judge with chain-of-thoughts (CoT) to evaluate LLM outputs based on ANY custom criteria”. Promptfoo calls its equivalent llm-rubric its “general-purpose grader for ‘LLM as a judge’ evaluation”.
Your eval is only as good as the rubric you write for the judge.
Which metrics do DeepEval, RAGAS and Promptfoo support?
DeepEval supports the widest built-in metric set of the 3, including hallucination and toxicity as dedicated metrics. RAGAS matches it on the RAG metrics but ships neither of those. Promptfoo covers fewer again: no context precision, and no standalone hallucination or toxicity metric.
Every entry below comes from the project’s own documentation, checked on 20 October 2026.
Metric
DeepEval
RAGAS
Promptfoo
Faithfulness
✓ FaithfulnessMetric
✓ Faithfulness
✓ context-faithfulness
Answer relevancy
✓ AnswerRelevancyMetric
✓ Response Relevancy
✓ answer-relevance
Context precision
✓ ContextualPrecisionMetric
✓ ContextPrecision
✗ (nearest is context-relevance)
Context recall
✓ ContextualRecallMetric
✓ ContextRecall
✓ context-recall
Hallucination
✓ HallucinationMetric
✗ (nearest is Response Groundedness)
✗ (docs use llm-rubric instead)
Toxicity
✓ ToxicityMetric
✗
✗ (via moderation or classifier)
Custom LLM-as-a-judge
✓ GEval
✓ rubric scoring
✓ llm-rubric
2 entries in that table need more than a tick or a cross.
Promptfoo covers toxicity through its moderation assertion, which calls an external service such as OpenAI moderation or Meta LlamaGuard. That is a different dependency from a self-contained metric, so it affects your cost and latency.
RAGAS removed AspectCritic in v0.4, according to its migration guide, pointing users at a decorator-based custom metric instead. Its general-purpose metrics page still documents the old class, so check which API version you are on.
DeepEval has its own version of trap. Its metrics documentation now carries a breaking change: all metric scores are higher-the-better. Thresholds written against the old direction will silently invert.
DeepEval vs RAGAS vs Promptfoo: how do they compare?
The 3 differ most on authoring language and CI integration. DeepEval is closest to a unit-testing tool, RAGAS is the most research-oriented, and Promptfoo is the only one configured in YAML.
DeepEval
RAGAS
Promptfoo
Licence
Apache-2.0
Apache-2.0
MIT
Language
Python; a TypeScript SDK exists, which the repo calls less complete
Python
YAML plus a Node CLI; assertions in Python, JS or Ruby
Runs under pytest via deepeval test run; documented GitHub Actions recipe
CLI and Python scripts; no official CI recipe
Official GitHub Action; eval exits 100 on failure, so it gates a build
Best for
Teams wanting evals to behave like unit tests
Teams evaluating retrieval quality in depth
Comparing prompts and models, plus red-teaming
DeepEval’s CI documentation states it “plugs into pytest via assert_test() and the deepeval test run command”. Its docs name AI engineers, data scientists and QA.
Promptfoo’s CLI documentation says eval “will return exit code 100 when there is at least 1 test case failure”. That makes it the simplest of the 3 to wire into a gate.
2 ownership changes landed this year. Promptfoo announced on 9 March 2026 that it had agreed to be acquired by OpenAI, stating it “will remain open source”. That post still calls closing conditional, while the repo README now reads “Promptfoo is now part of OpenAI”.
RAGAS moved to a new GitHub organisation, and its licence now carries a Vibrant Labs copyright. Both kept their licences, so neither change affects what you can do with the code.
How do you choose a framework for your stack?
Choose on authoring language and pipeline fit first, because metric coverage is close enough that it rarely decides. A Python team gating on pytest wants DeepEval; a team comparing prompts across models in YAML wants Promptfoo.
3 questions settle most cases.
What language do your tests live in? A Python stack opens all 3. A JavaScript or mixed stack points to Promptfoo, with DeepEval’s less complete TypeScript SDK as the fallback.
Is retrieval your main risk? If answers come from a RAG pipeline, you need context precision and recall. DeepEval and RAGAS both ship them; Promptfoo covers recall but has no direct precision equivalent.
Does the eval need to block a merge? DeepEval and Promptfoo both document this path. RAGAS publishes no official CI recipe, so you would wire it up yourself.
Nothing stops you running 2. Teams commonly use RAGAS to tune retrieval during development and Promptfoo or DeepEval as the gate in CI.
The tool is the smallest decision here. The thresholds you agree on matter more.
Where do automated metrics fail?
Automated metrics fail wherever correctness depends on context the metric cannot see. They score the text in front of them, not whether that text is right for your users, your domain or your legal obligations.
They also cannot tell you how the surrounding product behaves. That is a separate job: you have to test how the whole LLM-powered system behaves, including retrieval, tools and the application around the model.
LLM-as-a-judge bias
Judge models are not neutral measuring instruments, and the frameworks say so. Promptfoo’s LLM-as-a-judge guide states the tradeoff plainly: “judges have biases, add latency, and can be manipulated.”
Non-determinism compounds it. DeepEval’s docs warn that G-Eval “is NOT deterministic”, and that “some test cases will sit right on a metric’s threshold and flip between passing and failing across runs”.
RAGAS says the same of its own metrics: LLM-based ones “can be somewhat non-deterministic as the LLM might not always return the same result for the same input”.
There is also a configuration trap. Promptfoo’s llm-rubric page warns that without a threshold set, “a result like { pass: true, score: 0 } will pass”.
Golden sets that go stale
Reference-based metrics are only as current as the references behind them. Promptfoo lists “Requires known correct answers” as a stated limitation of context-recall, and context recall in RAGAS “always requires a reference”.
That dependency breaks quietly. When a policy changes or a product fact is updated, the golden answer still passes while the system under test has moved on. The suite reports green on an answer that is now wrong.
Grounding metrics have a related blind spot. DeepEval’s faithfulness documentation notes that “a real-world truth absent from the retrieved text still counts as unfaithful”. The metric measures agreement with retrieved context, not with reality.
Domain and policy rules a metric can’t see
No built-in metric knows your regulatory position, your refund policy or what your legal team will not sign off. A response can score well on faithfulness, relevancy and toxicity while still breaching a rule that exists only in your organisation.
Promptfoo’s context-faithfulness page lists its own limits: “Depends on judging LLM quality”, “May miss implicit claims” and “Performance degrades with very long contexts”. Those are the conditions most enterprise deployments run in.
This is the gap human review exists to close. The useful question is which judgments a person has to make, once scoring is automated.
How do you combine automated scoring with human review? (QA Madness approach)
Combine them by letting automation produce the volume and a QA engineer own the verdict. Automated scoring covers hundreds of prompt variants; a person decides what the borderline ones mean.
Golden answers agreed with the client. For each scenario we define, in writing, what a good answer looks like, before any scoring runs.
Scoring per criterion. Each response scores on accuracy, groundedness, completeness, safety and tone, rather than one pass or fail.
LLM-as-a-judge for scale. A judge model grades the full variant set — the only practical way to cover hundreds of prompts per scenario.
QA engineer sign-off on every judgment call. No model grades its own output unchecked. Where a score is borderline or a criterion subjective, an engineer reviews and signs off.
Re-running evals after a model or prompt change. When the model, system prompt or retrieval logic changes, affected scenarios run again. Last month’s passing suite says nothing about this release.
At QA Madness, that sign-off is the rule, not an escalation path.
The split between the 2 layers matters.
Automated metrics
Human review
What it catches
Reference regressions, retrieval failures, obvious toxicity, format breaks
Domain errors, policy breaches, tone that is correct but commercially wrong
Scale
Hundreds of variants per scenario, every run
Sampled, plus every judgment call
Speed
Minutes, in the pipeline
Hours to days, outside it
Fails when
The reference is stale, the judge biased, or the rule absent from the data
Volume is too high to review everything
Best use
A gate on every change
Setting criteria, adjudicating what it flags
FAQ
What are the best LLM evaluation frameworks in 2026?
DeepEval, RAGAS and Promptfoo are the 3 most widely used open-source options. DeepEval has the broadest built-in metric set and pytest integration, RAGAS focuses on retrieval quality, and Promptfoo is the easiest to wire into CI. Pick on language and pipeline fit, since metric coverage is close.
DeepEval vs RAGAS — which one should I use?
Use DeepEval if you want evals that run as unit tests under pytest and gate a build, with hallucination and toxicity metrics included. Use RAGAS if your main risk is retrieval quality and you want depth on context precision and recall. Both are Python and Apache-2.0, so running both is realistic.
How do you evaluate LLM outputs without ground truth?
Use reference-free metrics and a judge model with an explicit rubric. Faithfulness scores the answer against retrieved context rather than a correct answer, and custom judges like DeepEval’s GEval or Promptfoo’s llm-rubric grade against criteria you write. Accuracy against external facts still needs a human.
Is LLM-as-a-judge reliable?
Reliable enough for scale, not for final sign-off. Promptfoo’s documentation says judges “have biases, add latency, and can be manipulated”, and DeepEval warns its judge metrics are not deterministic. Use them for volume, set explicit thresholds, and let an engineer adjudicate borderline results — our what to look for in an AI testing partner checklist covers what to ask.
QA Madness provides independent software testing services, including LLM and AI product evaluation, for SaaS companies and software vendors across the UK, Europe and North America.
Automated metrics tell you a score. We tell you whether the answer is good enough to ship. Check our LLM evaluation services.
Last updated: August 27, 2026 Most engineering teams don't have a testing problem. They have a time problem. Writing test cases takes hours. Regression suites grow until they block every release. Automation scripts break the moment a UI element shifts. And the QA team spends its best hours on work that a well-configured system could handle instead. AI in software testing changes that equation, not by replacing QA engineers, but by absorbing the mechanical, repetitive layer of their work so engineers can focus on what actually requires human judgment. By 2027, Gartner projects that 80% of software engineering organizations will use AI-augmented testing tools, up from fewer than 20% in 2023. Teams that have already made the shift report up to 70% reductions in manual effort on repetitive QA tasks, according to Capgemini's World Quality Report. This article explains what AI in software testing actually means, which tasks it handles best, how it expands test coverage, and where...
Last updated: August 6, 2026 Most teams that struggle with QA automation do not have a tooling problem. They have a vendor problem. They hired a provider that can produce test scripts, but cannot explain what those tests protect, cannot connect coverage to business risk, and cannot keep the system maintainable as the product evolves. The market has moved. According to the 2025-2026 State of Testing report by PractiTest, AI adoption is now common in QA workflows. That raises the baseline. If a provider still treats automation as a collection of scripts instead of an engineering system, they are behind the market. This article focuses specifically on web automation for teams building automation from scratch or near-scratch. Mobile automation is a related track but requires a separate tooling discussion. And if your project already has an existing automation suite you want to hand off to an outsourced team, that scenario deserves its own evaluation framework, since the priorities...
The best software testing tools in 2026 span five categories: performance testing (Apache JMeter, k6), test automation (Playwright, Selenium, Cypress), unit testing (Vitest, Jest), test management (TestRail, Qase), and bug tracking (Jira, Linear). This guide covers 12 essential tools QA teams rely on daily – updated to reflect the shift toward AI-assisted testing and modern JavaScript-first frameworks that have replaced many legacy tools from previous years. Originally published: February 11, 2016 | Updated: June 5, 2026 What Are the Best QA Testing Tools in 2026? Modern QA teams need tools that integrate tightly with CI/CD pipelines, support AI-assisted testing, and work natively with JavaScript-first stacks. Below are 12 tools that cover the five core categories every QA organization needs. Performance Testing Tools Here are the most important tools to test the performance, load, and stress of your website or application. Apache JMeter is a 100% pure Java desktop application d...
SaaS companies ship fast. That's the whole point. Weekly sprints, continuous deployments, feature flags, multi-tenant architecture, third-party integrations stacked on top of integrations. The velocity is the product. But velocity without quality is just a faster way to lose customers. The numbers are unambiguous: 68% of users will abandon an application after encountering just two software bugs or glitches, and 88% are less likely to return after a bad experience. For SaaS, where the average B2B company already churns 3.5% of customers every single month, a quality problem is not a technical problem. It is a revenue problem. The solution most growing SaaS teams reach for is dedicated QA. This means testing is handled by people whose only job is quality — whether that is one specialist or a full team. Not developers context-switching into tester mode. Not a PM clicking through screens before a release. Dedicated QA specialists who know the product, own the quality process, a...