We can think of "regression tests" as a middle layer between unit tests and integration tests:
- unit tests: hand-written, small, fast to run
- regression tests: reduced from full models but still complex, medium size, medium run time
- integration tests: full models, large, slow to run
When an issue is detected and fixed, we should have a process to:
- Minimize and reproduce the issue (using the tools below, or some other process)
- Add the [minimal] reproducer to the regression suite
- Run the regression suite regularly (every commit, nightly, etc.)
Tools like fuzzers can also be used to generate regression test cases.
Tools to help
Implementation ideas
We can think of "regression tests" as a middle layer between unit tests and integration tests:
When an issue is detected and fixed, we should have a process to:
Tools like fuzzers can also be used to generate regression test cases.
Tools to help
iree-reduce: Add iree-reduce tool iree#14892mlir-reduce: https://mlir.llvm.org/docs/Tools/mlir-reduce/Implementation ideas