Why testing your own system is different
Ordinary software testing checks whether the system does what it should. Red-teaming checks whether it can be made to do what it should not, and the difference changes the method entirely.
Three properties make it awkward.
The input space is unbounded. There is no equivalent of enumerating boundary conditions, because the space is natural language and an attacker can rephrase indefinitely.
Success is not binary. A model that refuses nine times and complies once has a vulnerability, so a pass rate is the wrong summary and the interesting information is in the tail.
And the system is non-deterministic. The same prompt can succeed and fail across runs, which means a single trial establishes almost nothing and every finding needs repetition to characterise.
The consequence is that red-teaming is closer to security research than to QA. You are looking for existence proofs, not coverage, and a single reproducible bypass is a result regardless of how many attempts failed around it.
The honest goal is not proving the system safe, which is not achievable. It is finding the failures that exist, fixing what is fixable, and knowing what remains.

