I concur that include JUnit for unit testing would be a good thing, and then we can move tests to JUnit if they are more likely unit tests than qa tests.
Gregg On Dec 2, 2012, at 12:35 PM, Dan Creswell <dan.cresw...@gmail.com> wrote: > Nice to hear from you Patricia... > > On 2 December 2012 10:29, Patricia Shanahan <p...@acm.org> wrote: >> I hope you don't mind me throwing in some random comments on this. I think >> there are two types of testing that need to be distinguished, system and >> unit. >> >> A system test looks that the external behavior of the whole system, so what >> it is testing changes only when the API changes, and tests should apply >> across many source code revisions. I can see separating those out. >> >> However, I feel River has been weak on unit tests, tests that check the >> implementation of e.g. a data structure against its javadoc comments. Those >> tests need to change with internal interface changes. >> >> Testing e.g. the multi-thread consistency of a complex data structure using >> only external system tests can be a mistake. It may take a very large >> configuration or many days of running to bring out a bug that could be found >> relatively fast by a unit test that hits the data structure rapidly. >> >> I'm a little concerned that the reconfiguration of the tests may represent >> an increased commitment to only doing system tests, and not doing any unit >> tests. >> > > It doesn't represent any such thing in my mind! I'd expect to do a > bunch of those per release and for individual checkins etc. > > That's one of the reasons I'm interested in maybe moving to junit. > Maybe in fact, we bring in junit as a statement of intent for unit > tests and leave jtreg and friends for the "big" stuff. > > Feeling less concerned? ;) > >> Patricia >> >> >> >> On 12/2/2012 10:21 AM, Dan Creswell wrote: >>> >>> ... >>> >>> On 30 November 2012 19:53, Gregg Wonderly <ge...@cox.net> wrote: >>>> >>>> I still wonder why it doesn't feel right that the test suite be in the >>>> same branch as the associated "release". Some of the new code needs new >>>> test that demonstrate "functionality" while other tests that demonstrate >>>> compatibility will be ran on each release without change. It seems to me, >>>> that in the end, when a release goes out the door, the tests that validated >>>> that release, are part of that "release". >>>> >>> >>> I have some similar disquiet, here's what I'm thinking at the moment >>> (subject to change faster than I can type!)... >>> >>> Compatibility and similar is really "compliance test" and is closely >>> linked to the APIs defined by the specs. Two flavours here: >>> >>> (1) "Well-behaved service" tests - does a service do join properly etc. >>> (2) Compliance tests - do the APIs behave right etc. >>> >>> These are kind of slow moving as are the APIs at least for now. I feel >>> right now like (1) might be a subproject applied to our own "built-in" >>> services as well as others. I'm tempted to say the same about (2) save >>> for the fact that if we give up on the idea someone else is going to >>> build a River clone this stuff becomes part of the release/test phase >>> for the core. >>> >>> Any other testing we're doing over and above what falls into (1) and >>> (2) above is part of tests for core and ought to be living in the same >>> branch and run as part of release. However, that's a little >>> uncomfortable when one wishes to freeze development of core to do >>> major work on the test harness etc. You branch core and test suite to >>> work purely on the suite. >>> >>> Manageable I guess well, until you have the trunk moving on and >>> breaking your already seriously under construction test suite where >>> everything in trunk is "old style" and will be a b*stard to merge >>> across but if you don't your branched test suite is gonna break for >>> nuisance reasons. >>> >>>> If we need two different types of tests, and a migration path from >>>> "functionality tests" into "compatibility tests", then maybe we really need >>>> two trees for development of each release, and branching the whole test >>>> suite would be one branch an the new release would be the other. >>>> >>>> Is that how you guys are thinking about this? >>>> >>> >>> You have my (current) thinking above... >>> >>>> Gregg Wonderly >>>> >>>> On Nov 30, 2012, at 9:43 PM, Peter Firmstone <j...@zeus.net.au> wrote: >>>> >>>>> On 30/11/2012 12:27 AM, Dan Creswell wrote: >>>>>> >>>>>> On 29 November 2012 13:11, Peter Firmstone<j...@zeus.net.au> wrote: >>>>>> >>>>>>> The last passing trunk versions: >>>>>>> >>>>>>> Jdk6 Ubuntu 1407017 >>>>>>> Solaris x86 1373770 >>>>>>> Jdk7 Ubuntu 1379873 >>>>>>> Windows 1373770 >>>>>>> >>>>>>> Revision 1373770 looks the most stable, I think all platforms were >>>>>>> passing >>>>>>> on this, 1407017 only passed on Ubuntu jdk6, nothing else. >>>>>>> >>>>>>> If we can confirm 1373770 as stable, maybe we should branch a release >>>>>>> off >>>>>>> that, buying some time to stabilise what we're working on now. >>>>>>> >>>>>>> >>>>>> I think we should do that. I'm also tempted to suggest we consider >>>>>> limiting >>>>>> our development until we've fixed these tests up. Or alternatively >>>>>> control >>>>>> the rate of patch merging so we can pace it and make sure the tests get >>>>>> focus. >>>>>> >>>>>> That's a bit sledgehammer but... >>>>>> >>>>>> >>>>> >>>>> Ok, sounds like a plan, how do you think we should best approach the >>>>> task? >>>>> >>>>> Create a branch in skunk, just for qa and run tests against released >>>>> jars? >>>>> >>>>> Regards, >>>>> >>>>> Peter. >>>>> >>>>> >>>> >>