"build test" is necessary but not sufficient for where we need to go.  In
a sense, committing code with only "build test" to prevent regression is the
equivalent to flying in the fog without instrumentation.

Right.

Here I see 2 aspects - creating VM/JIT regression tests and running various
tests regularaly / tracking regressions timely.

1. VM/JIT regression test development.

We can start with these guidelines:

Who creates/integrates a regression test? - committer.
How? - typically, from bug's reproducer code.
Where? - drlvm\trunk\src\test\vm\<component>\harmony-XXXX\ or
drlvm\trunk\src\test\jit\<component>\harmony-XXXX\
Format: Junit, Jasmin
When? - Consider creating a regression test for each fixed bug against
Harmony DRLVM or JIT, if reasonable and technically possible.
Creation of regression test may be omitted if:
- Bug in documentation, build, test, code comment, code style, enhancement
is fixed.
- Performance-related bug is fixed.
- Bug is found by existing Harmony test (Harmony regression or unit test).
// to avoid duplication of tests

Try to use public API to provide implementation independence and stability
of the tests.

This test suite can/should be used in pre-commit testing.


2. Timely regression tracking via test execution.

Now we have some solution for code integrity testing via Cruise Control
(buildtest/trunk/CC + HARMONY-995) - good start point to track regressions
hourly using classlib unit tests and "build test" on your specific platform.

I see HARMONY-2038 which is about automation of Ecilpse Unit Tests execution
in context of buildtest/ infrastructure - to start running EUT regularly
using buildtest/ (say, nightly) and reporting timely about new test failures
(and causing commits).

I think, it would be great if we continue adding more automation scripts
into buildtest/ for various public unit test suites and scenarios (Derby,
Tomcat, etc.), so that one could take automation scripts from buildtest/ and
run them regularly on his specific platform, report regressions timely (what
Nina, I suppose, is going to do with EUT).



On 11/4/06, Weldon Washburn <[EMAIL PROTECTED]> wrote:

Folks,

I have spent the last two months committing patches to the VM.  While we
have added a ton of much needed functionality, the stability of the system
has been ignored.  By chance, I looked at thread synchronization design
problems this week.  Its very apparent that  we lack the regression
testing
to really find threading bugs, test the fixes and test against regression.
No doubt there are similar problems in other VM subsystems.   "build test"
is necessary but not sufficient for where we need to go.  In a sense,
committing code with only "build test" to prevent regression is the
equivalent to flying in the fog without instrumentation.

So that we can get engineers focused on stability, I am thinking of coding
the JIRAs that involve new features as "later" or even "won't
fix".  Please
feel free to comment.

We also need to restart the old email threads on regression tests.  For
example, we need some sort of automated test script that runs Eclipse and
tomcat, etc. in a deterministic fashion so that we can compare test
results.  It does not have to be perfect for starts, just repeatable and
easy to use.  Feel free to beat me to starting these threads :)

--
Weldon Washburn
Intel Enterprise Solutions Software Division


Reply via email to