[vwnc] The best test framework to use is...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] The best test framework to use is...

Paul Baumann
I'm looking for advice concerning a unit test framework for VW and GS code. 
 
SUnit being "the mother of all unit testing frameworks" seems like a good place to start. At the time, SUnit was ported at CS1 it was meant to have a common code base that was adapted to multiple environments through bridge #sunit* protocols (the SUnitUI part was dialect specific of course). It seems there are now several test frameworks derived from SUnit--and some that go by the same name.
 
The official SUnit site appears to be http://sunit.sourceforge.net/index.html but the latest code drop is from 2003.04.28 and it references bad DTD files. At least the earlier 3.1 RC4 version is already in the Cincom public code repository.
 
The public Store repository has revisions of SUnit package as recent as 2008.09.29 but I see from that code that it modifies the SUnit base in decidedly non-portable ways (like sending #beginsWith: instead of #sunitMatch:). That derivative seems to be part of "SUnit Very Much". A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload, so it is unclear just what it is intended to work with.
 
Then I find SUnitToo (http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086) with a long history of changes and the last change as recent as 2008.12.03. That would seem like a logical one to go with, but boy does that seem like a lot of changes and code to just run assert statements on test code. It looks like major scope creep and divergence. SUnitToo loads fine, but when you go to load the recommended "SUnitToo(ls)" then there are missing prerequisite errors. Just where is the bundle that relates all these package versions? I can't help but wonder if the expression "simpler is better" will apply here.
 
It comes back to this. There is a need [by edict] for a test framework for VW and GS. It doesn't need to be very fancy. I don't even care about the red light / green light thing that is supposed to be so wonderful. The current thinking is that the tests will usually be run from scripts since most of the testing will be in GS code. It doesn't have to be a single framework for both environments, but the same test protocols should be used. No visual tests are anticipated because these are server applications.
 
I'm thinking the best thing is to port the latest formal SUnit to GS. The VW tests could be by any SUnit test protocol derivative but I'm not sure anything more than the original SUnit is necessary. It seems like others would have some experience in this area.
 
Paul Baumann 
 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] The best test framework to use is...

Alan Knight-2
The versions of SUnit starting with "AV" are someone (Andres Valloud's) personal branch, and not official. I think that work was abandoned in favour of a complete rewrite called Assessments.

Part of the point of SUnit was to be cross-dialect, and ports to all dialects, including Gemstone, should already exist, although I couldn't tell you where to find them offhand if they're not on the sourceforge page. There aren't many recent versions because the code hasn't changed very much.

Various people have found SUnit lacking in one respect or another and extended, modified, or rewritten it. SUnitToo is one such, and among other things, abandons portability in favour of exploiting VisualWorks-specific features. I don't see any issues with missing prerequisites when loading it, but I normally load it from the parcels accompanying the distribution. That gives a better likelihood you're getting a version compatible with that distribution.

No one is mandating you to use any of these frameworks in particular, so if you think they could be simpler or better, you can just write one yourself - the most important feature of a test framework being that it can be rewritten from scratch on the train between Munich and Erfurt. But I think if you just need a basic test framework your best bet would be to find the existing Gemstone port of basic SUnit and use that.

Internally we use both SUnit and SUnitToo, sometimes with rather fine-grained mixing. We run the tests both interactively and via scripts. We have a "bridge" in SUnit-Bridge2SU2 that can be used interactively to let you run both SUnit and SUnitToo(ls) tests from the SUnitToo(ls) test runner. In script form this would be less important - just use the appropriate runner, and if you're not trying to mix test frameworks it doesn't matter anyway.

At 02:51 PM 2/5/2009, Paul Baumann wrote:
Content-Language: en-US
Content-Type: multipart/alternative;
         boundary="_000_CD50A3C7334E0F47B37D6244B310A02806497CBF5Aatbpixmx02CPE_"

I'm looking for advice concerning a unit test framework for VW and GS code.
 
SUnit being "the mother of all unit testing frameworks" seems like a good place to start. At the time, SUnit was ported at CS1 it was meant to have a common code base that was adapted to multiple environments through bridge #sunit* protocols (the SUnitUI part was dialect specific of course). It seems there are now several test frameworks derived from SUnit--and some that go by the same name.
 
The official SUnit site appears to be http://sunit.sourceforge.net/index.html but the latest code drop is from 2003.04.28 and it references bad DTD files. At least the earlier 3.1 RC4 version is already in the Cincom public code repository.
 
The public Store repository has revisions of SUnit package as recent as 2008.09.29 but I see from that code that it modifies the SUnit base in decidedly non-portable ways (like sending #beginsWith: instead of #sunitMatch:). That derivative seems to be part of "SUnit Very Much". A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload, so it is unclear just what it is intended to work with.
 
Then I find SUnitToo ( http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086 ) with a long history of changes and the last change as recent as 2008.12.03. That would seem like a logical one to go with, but boy does that seem like a lot of changes and code to just run assert statements on test code. It looks like major scope creep and divergence. SUnitToo loads fine, but when you go to load the recommended "SUnitToo(ls)" then there are missing prerequisite errors. Just where is the bundle that relates all these package versions? I can't help but wonder if the expression "simpler is better" will apply here.
 
It comes back to this. There is a need [by edict] for a test framework for VW and GS. It doesn't need to be very fancy. I don't even care about the red light / green light thing that is supposed to be so wonderful. The current thinking is that the tests will usually be run from scripts since most of the testing will be in GS code. It doesn't have to be a single framework for both environments, but the same test protocols should be used. No visual tests are anticipated because these are server applications.
 
I'm thinking the best thing is to port the latest formal SUnit to GS. The VW tests could be by any SUnit test protocol derivative but I'm not sure anything more than the original SUnit is necessary. It seems like others would have some experience in this area.
 
Paul Baumann
 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
Alan Knight [|], Engineering Manager, Cincom Smalltalk

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] The best test framework to use is...

thomas.hawker

Paul,

 

I didn’t see your original post.

 

GemStone has SUnit directly integrated into its server code base.  I’m not sure when they did that.  We recently upgraded from GS64 2.0.2.1 to 2.2.5.3 and SUnit was present.  I’m certain if you ask for it, you can get the framework from GemStone and it would probably work on just about any version.

 

Cheers!

 

Tom Hawker

Senior Framework Developer

Home

+1 (408) 274-4128

The Environment:

We take it personally

Office

+1 (408) 576-6591

Mobile

+1 (408) 835-3643

 


From: [hidden email] [mailto:[hidden email]] On Behalf Of Alan Knight
Sent: Friday, February 06, 2009 2:36 PM
To: Paul Baumann; VWNC
Subject: Re: [vwnc] The best test framework to use is...

 

The versions of SUnit starting with "AV" are someone (Andres Valloud's) personal branch, and not official. I think that work was abandoned in favour of a complete rewrite called Assessments.

Part of the point of SUnit was to be cross-dialect, and ports to all dialects, including Gemstone, should already exist, although I couldn't tell you where to find them offhand if they're not on the sourceforge page. There aren't many recent versions because the code hasn't changed very much.

Various people have found SUnit lacking in one respect or another and extended, modified, or rewritten it. SUnitToo is one such, and among other things, abandons portability in favour of exploiting VisualWorks-specific features. I don't see any issues with missing prerequisites when loading it, but I normally load it from the parcels accompanying the distribution. That gives a better likelihood you're getting a version compatible with that distribution.

No one is mandating you to use any of these frameworks in particular, so if you think they could be simpler or better, you can just write one yourself - the most important feature of a test framework being that it can be rewritten from scratch on the train between Munich and Erfurt. But I think if you just need a basic test framework your best bet would be to find the existing Gemstone port of basic SUnit and use that.

Internally we use both SUnit and SUnitToo, sometimes with rather fine-grained mixing. We run the tests both interactively and via scripts. We have a "bridge" in SUnit-Bridge2SU2 that can be used interactively to let you run both SUnit and SUnitToo(ls) tests from the SUnitToo(ls) test runner. In script form this would be less important - just use the appropriate runner, and if you're not trying to mix test frameworks it doesn't matter anyway.

At 02:51 PM 2/5/2009, Paul Baumann wrote:

Content-Language: en-US
Content-Type: multipart/alternative;
         boundary="_000_CD50A3C7334E0F47B37D6244B310A02806497CBF5Aatbpixmx02CPE_"

I'm looking for advice concerning a unit test framework for VW and GS code.
 
SUnit being "the mother of all unit testing frameworks" seems like a good place to start. At the time, SUnit was ported at CS1 it was meant to have a common code base that was adapted to multiple environments through bridge #sunit* protocols (the SUnitUI part was dialect specific of course). It seems there are now several test frameworks derived from SUnit--and some that go by the same name.
 
The official SUnit site appears to be http://sunit.sourceforge.net/index.html but the latest code drop is from 2003.04.28 and it references bad DTD files. At least the earlier 3.1 RC4 version is already in the Cincom public code repository.
 
The public Store repository has revisions of SUnit package as recent as 2008.09.29 but I see from that code that it modifies the SUnit base in decidedly non-portable ways (like sending #beginsWith: instead of #sunitMatch:). That derivative seems to be part of "SUnit Very Much". A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload, so it is unclear just what it is intended to work with.
 
Then I find SUnitToo ( http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086 ) with a long history of changes and the last change as recent as 2008.12.03. That would seem like a logical one to go with, but boy does that seem like a lot of changes and code to just run assert statements on test code. It looks like major scope creep and divergence. SUnitToo loads fine, but when you go to load the recommended "SUnitToo(ls)" then there are missing prerequisite errors. Just where is the bundle that relates all these package versions? I can't help but wonder if the expression "simpler is better" will apply here.
 
It comes back to this. There is a need [by edict] for a test framework for VW and GS. It doesn't need to be very fancy. I don't even care about the red light / green light thing that is supposed to be so wonderful. The current thinking is that the tests will usually be run from scripts since most of the testing will be in GS code. It doesn't have to be a single framework for both environments, but the same test protocols should be used. No visual tests are anticipated because these are server applications.
 
I'm thinking the best thing is to port the latest formal SUnit to GS. The VW tests could be by any SUnit test protocol derivative but I'm not sure anything more than the original SUnit is necessary. It seems like others would have some experience in this area.
 
Paul Baumann
 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


--
Alan Knight [|], Engineering Manager, Cincom Smalltalk
IMPORTANT NOTICE
Email from OOCL is confidential and may be legally privileged.  If it is not intended for you, please delete it immediately unread.  The internet cannot guarantee that this communication is free of viruses, interception or interference and anyone who communicates with us by email is taken to accept the risks in doing so.  Without limitation, OOCL and its affiliates accept no liability whatsoever and howsoever arising in connection with the use of this email.  Under no circumstances shall this email constitute a binding agreement to carry or for provision of carriage services by OOCL, which is subject to the availability of carrier's equipment and vessels and the terms and conditions of OOCL's standard bill of lading which is also available at http://www.oocl.com.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] The best test framework to use is...

Andres Valloud-4
In reply to this post by Alan Knight-2
Just to clarify... the AV branch is SUnit Very Much, which can be used
to run our VM tests headlessly while producing a fail safe detailed log.
  It incorporates all the functionality needed for SUnit Based
Validation and SUnit Benchmarks.  SUnit Benchmarks are used by the VM
test suite.  The AV branch should be backwards compatible with vanilla
SUnit.

With that said, Assessments supersedes all that work.  It is written in
VW (although it is not meant to be VW specific).  It can run SUnit,
SUnitVM (vanilla, Validation and Benchmarks), and SUnitToo tests as
well.  It does not require any of those frameworks (or their associated
bridges) to be loaded for it to work.  Also, it does not touch the
source code of existing tests.  This also ensures that all the existing
SUnit* work does not become obsolete or requires porting work in the
presence of Assessments.

Personally, I'd recommend using Assessments instead of any variety of
SUnit for the simple reason that Assessments was designed to possess
flexibility and robustness to a degree that SUnit was never meant to
have.  That's just my personal opinion, though.

Andres.


Alan Knight wrote:

> The versions of SUnit starting with "AV" are someone (Andres Valloud's) personal branch, and not official. I think that work was abandoned in favour of a complete rewrite called Assessments.
>
> Part of the point of SUnit was to be cross-dialect, and ports to all dialects, including Gemstone, should already exist, although I couldn't tell you where to find them offhand if they're not on the sourceforge page. There aren't many recent versions because the code hasn't changed very much.
>
> Various people have found SUnit lacking in one respect or another and extended, modified, or rewritten it. SUnitToo is one such, and among other things, abandons portability in favour of exploiting VisualWorks-specific features. I don't see any issues with missing prerequisites when loading it, but I normally load it from the parcels accompanying the distribution. That gives a better likelihood you're getting a version compatible with that distribution.
>
> No one is mandating you to use any of these frameworks in particular, so if you think they could be simpler or better, you can just write one yourself - the most important feature of a test framework being that it can be rewritten from scratch on the train between Munich and Erfurt. But I think if you just need a basic test framework your best bet would be to find the existing Gemstone port of basic SUnit and use that.
>
> Internally we use both SUnit and SUnitToo, sometimes with rather fine-grained mixing. We run the tests both interactively and via scripts. We have a "bridge" in SUnit-Bridge2SU2 that can be used interactively to let you run both SUnit and SUnitToo(ls) tests from the SUnitToo(ls) test runner. In script form this would be less important - just use the appropriate runner, and if you're not trying to mix test frameworks it doesn't matter anyway.
>
> At 02:51 PM 2/5/2009, Paul Baumann wrote:
>  
>> Content-Language: en-US
>> Content-Type: multipart/alternative;
>>        boundary="_000_CD50A3C7334E0F47B37D6244B310A02806497CBF5Aatbpixmx02CPE_"
>>
>> I'm looking for advice concerning a unit test framework for VW and GS code.
>>
>> SUnit being "the mother of all unit testing frameworks" seems like a good place to start. At the time, SUnit was ported at CS1 it was meant to have a common code base that was adapted to multiple environments through bridge #sunit* protocols (the SUnitUI part was dialect specific of course). It seems there are now several test frameworks derived from SUnit--and some that go by the same name.
>>
>> The official SUnit site appears to be <http://sunit.sourceforge.net/index.html>http://sunit.sourceforge.net/index.html but the latest code drop is from 2003.04.28 and it references bad DTD files. At least the earlier 3.1 RC4 version is already in the Cincom public code repository.
>>
>> The public Store repository has revisions of SUnit package as recent as 2008.09.29 but I see from that code that it modifies the SUnit base in decidedly non-portable ways (like sending #beginsWith: instead of #sunitMatch:). That derivative seems to be part of "SUnit Very Much". A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload, so it is unclear just what it is intended to work with.
>>
>> Then I find SUnitToo (<http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086>http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086) with a long history of changes and the last change as recent as 2008.12.03. That would seem like a logical one to go with, but boy does that seem like a lot of changes and code to just run assert statements on test code. It looks like major scope creep and divergence. SUnitToo loads fine, but when you go to load the recommended "SUnitToo(ls)" then there are missing prerequisite errors. Just where is the bundle that relates all these package versions? I can't help but wonder if the expression "simpler is better" will apply here.
>>
>> It comes back to this. There is a need [by edict] for a test framework for VW and GS. It doesn't need to be very fancy. I don't even care about the red light / green light thing that is supposed to be so wonderful. The current thinking is that the tests will usually be run from scripts since most of the testing will be in GS code. It doesn't have to be a single framework for both environments, but the same test protocols should be used. No visual tests are anticipated because these are server applications.
>>
>> I'm thinking the best thing is to port the latest formal SUnit to GS. The VW tests could be by any SUnit test protocol derivative but I'm not sure anything more than the original SUnit is necessary. It seems like others would have some experience in this area.
>>
>> Paul Baumann
>>
>>
>>
>> ----------
>> This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>>    
>
> --
> Alan Knight [|], Engineering Manager, Cincom Smalltalk
> [hidden email]
> [hidden email]
> http://www.cincom.com/smalltalk
>
>  
> ------------------------------------------------------------------------
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>  


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] The best test framework to use is...

Paul Baumann
In reply to this post by thomas.hawker
Thanks All,
 
Someone responded offline that SUnit is built into GemStone now. That explains why it was so difficult to find a filein to add that support. I'd never noticed it or had forgotten it was there. My bad.
 
I first thought that I'd take a mixed test approach with functional organization of both VW and GS tests--and that portability would matter. The need to deploy tests in runtime images ended that notion. It seems all the frameworks mentioned support the basic SUnit protocols, and that is all that would matter now.
 
It is nice to see that some test framework options have an emphasis on benchmarks and headless operation. I think it is important to have flexibility in how the tests are launched and logged.
 
Andre's "Assessments" sounds interesting.
 
Paul Baumann 
 


From: [hidden email] [mailto:[hidden email]]
Sent: Sunday, February 08, 2009 12:32 AM
To: Paul Baumann; [hidden email]
Cc: [hidden email]
Subject: RE: [vwnc] The best test framework to use is...
Importance: High

Paul,

 

I didn’t see your original post.

 

GemStone has SUnit directly integrated into its server code base.  I’m not sure when they did that.  We recently upgraded from GS64 2.0.2.1 to 2.2.5.3 and SUnit was present.  I’m certain if you ask for it, you can get the framework from GemStone and it would probably work on just about any version.

 

Cheers!

 

Tom Hawker

Senior Framework Developer

Home

+1 (408) 274-4128

The Environment:

We take it personally

Office

+1 (408) 576-6591

Mobile

+1 (408) 835-3643

 


From: [hidden email] [mailto:[hidden email]] On Behalf Of Alan Knight
Sent: Friday, February 06, 2009 2:36 PM
To: Paul Baumann; VWNC
Subject: Re: [vwnc] The best test framework to use is...

 

The versions of SUnit starting with "AV" are someone (Andres Valloud's) personal branch, and not official. I think that work was abandoned in favour of a complete rewrite called Assessments.

Part of the point of SUnit was to be cross-dialect, and ports to all dialects, including Gemstone, should already exist, although I couldn't tell you where to find them offhand if they're not on the sourceforge page. There aren't many recent versions because the code hasn't changed very much.

Various people have found SUnit lacking in one respect or another and extended, modified, or rewritten it. SUnitToo is one such, and among other things, abandons portability in favour of exploiting VisualWorks-specific features. I don't see any issues with missing prerequisites when loading it, but I normally load it from the parcels accompanying the distribution. That gives a better likelihood you're getting a version compatible with that distribution.

No one is mandating you to use any of these frameworks in particular, so if you think they could be simpler or better, you can just write one yourself - the most important feature of a test framework being that it can be rewritten from scratch on the train between Munich and Erfurt. But I think if you just need a basic test framework your best bet would be to find the existing Gemstone port of basic SUnit and use that.

Internally we use both SUnit and SUnitToo, sometimes with rather fine-grained mixing. We run the tests both interactively and via scripts. We have a "bridge" in SUnit-Bridge2SU2 that can be used interactively to let you run both SUnit and SUnitToo(ls) tests from the SUnitToo(ls) test runner. In script form this would be less important - just use the appropriate runner, and if you're not trying to mix test frameworks it doesn't matter anyway.

At 02:51 PM 2/5/2009, Paul Baumann wrote:

Content-Language: en-US
Content-Type: multipart/alternative;
         boundary="_000_CD50A3C7334E0F47B37D6244B310A02806497CBF5Aatbpixmx02CPE_"

I'm looking for advice concerning a unit test framework for VW and GS code.
 
SUnit being "the mother of all unit testing frameworks" seems like a good place to start. At the time, SUnit was ported at CS1 it was meant to have a common code base that was adapted to multiple environments through bridge #sunit* protocols (the SUnitUI part was dialect specific of course). It seems there are now several test frameworks derived from SUnit--and some that go by the same name.
 
The official SUnit site appears to be http://sunit.sourceforge.net/index.html but the latest code drop is from 2003.04.28 and it references bad DTD files. At least the earlier 3.1 RC4 version is already in the Cincom public code repository.
 
The public Store repository has revisions of SUnit package as recent as 2008.09.29 but I see from that code that it modifies the SUnit base in decidedly non-portable ways (like sending #beginsWith: instead of #sunitMatch:). That derivative seems to be part of "SUnit Very Much". A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload, so it is unclear just what it is intended to work with.
 
Then I find SUnitToo ( http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086 ) with a long history of changes and the last change as recent as 2008.12.03. That would seem like a logical one to go with, but boy does that seem like a lot of changes and code to just run assert statements on test code. It looks like major scope creep and divergence. SUnitToo loads fine, but when you go to load the recommended "SUnitToo(ls)" then there are missing prerequisite errors. Just where is the bundle that relates all these package versions? I can't help but wonder if the expression "simpler is better" will apply here.
 
It comes back to this. There is a need [by edict] for a test framework for VW and GS. It doesn't need to be very fancy. I don't even care about the red light / green light thing that is supposed to be so wonderful. The current thinking is that the tests will usually be run from scripts since most of the testing will be in GS code. It doesn't have to be a single framework for both environments, but the same test protocols should be used. No visual tests are anticipated because these are server applications.
 
I'm thinking the best thing is to port the latest formal SUnit to GS. The VW tests could be by any SUnit test protocol derivative but I'm not sure anything more than the original SUnit is necessary. It seems like others would have some experience in this area.
 
Paul Baumann
 


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


--
Alan Knight [|], Engineering Manager, Cincom Smalltalk
IMPORTANT NOTICE
Email from OOCL is confidential and may be legally privileged.  If it is not intended for you, please delete it immediately unread.  The internet cannot guarantee that this communication is free of viruses, interception or interference and anyone who communicates with us by email is taken to accept the risks in doing so.  Without limitation, OOCL and its affiliates accept no liability whatsoever and howsoever arising in connection with the use of this email.  Under no circumstances shall this email constitute a binding agreement to carry or for provision of carriage services by OOCL, which is subject to the availability of carrier's equipment and vessels and the terms and conditions of OOCL's standard bill of lading which is also available at http://www.oocl.com.


This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] The best test framework to use is...

Niall Ross
Dear Paul,
couple of points.

1) Andres gave a talk on Assessments at ESUG 2008 which I wrote up in my
report (reach it from the www.esug.org or www.stic.st sites; the former
should have Andres' slides as well). I suspect you'll find starting with
the GS SUnit and the VW SUnit best for your purpose. However the talk
should give you a quick intro to Assessments to let you see if it would
suit and what would be involved in porting it to GS.

2) In my cross-dialect test-framework activities I have found the points
to check are

- make sure executeShould:inScopeOf: does the same in both dialects

- make sure TestResources behave the same in both dialects and in test
suite run, test run and test debug

- make sure shouldInheritSelectors and its callers behave the same in
both frameworks

- whether a test case instance is copied or reused when debugged and/or
rerun is also something that can vary between dialects. _Usually_ it
does not matter.

- SUnit normally runs tests in a predictable order but some versions in
some dialects implemented Sets, not sequenceable collections, in places
that can break this assumption. (By contrast, SUnitToo's default
behaviour is to run in a random order, unrecoverable in current versions
IIRC. The topic is passionately debated and I'll refrain from sounding
off here - my point is just, make sure your two do the same.)

ResumableTestFailures, if you use them or plan to, are another area that
was added after the initial ports, so may be worth checking for consistency.

3) When testing VW systems that talk to databases, I like my
CompetingResources and CrossProcessTest patterns (see SUnitUtilities in
the CincomOR, StS talks in my 2005 and 2007 reports) but how easily they
could be ported to GemStone SUnit is something you can probably assess
better than I.

HTH
Yours faithfully
Niall Ross

> Thanks All,
> Someone responded offline that SUnit is built into GemStone now. That
> explains why it was so difficult to find a filein to add that support.
> I'd never noticed it or had forgotten it was there. My bad.
> I first thought that I'd take a mixed test approach with functional
> organization of both VW and GS tests--and that portability would
> matter. The need to deploy tests in runtime images ended that notion.
> It seems all the frameworks mentioned support the basic SUnit
> protocols, and that is all that would matter now.
> It is nice to see that some test framework options have an emphasis on
> benchmarks and headless operation. I think it is important to have
> flexibility in how the tests are launched and logged.
> Andre's "Assessments" sounds interesting.
> *Paul Baumann*
>
> ------------------------------------------------------------------------
> *From:* [hidden email] [mailto:[hidden email]]
> *Sent:* Sunday, February 08, 2009 12:32 AM
> *To:* Paul Baumann; [hidden email]
> *Cc:* [hidden email]
> *Subject:* RE: [vwnc] The best test framework to use is...
> *Importance:* High
>
> Paul,
>
> I didn’t see your original post.
>
> GemStone has SUnit directly integrated into its server code base. I’m
> not sure when they did that. We recently upgraded from GS64 2.0.2.1 to
> 2.2.5.3 and SUnit was present. I’m certain if you ask for it, you can
> get the framework from GemStone and it would probably work on just
> about any version.
>
> Cheers!
>
> Tom Hawker
>
>
>
> Senior Framework Developer
>
> Home
>
>
>
> +1 (408) 274-4128
>
>
>
> *The Environment:*
>
> */We take it personally/*
>
> Office
>
>
>
> +1 (408) 576-6591
>
> Mobile
>
>
>
> +1 (408) 835-3643
>
> ------------------------------------------------------------------------
>
> *From:* [hidden email] [mailto:[hidden email]] *On
> Behalf Of *Alan Knight
> *Sent:* Friday, February 06, 2009 2:36 PM
> *To:* Paul Baumann; VWNC
> *Subject:* Re: [vwnc] The best test framework to use is...
>
> The versions of SUnit starting with "AV" are someone (Andres
> Valloud's) personal branch, and not official. I think that work was
> abandoned in favour of a complete rewrite called Assessments.
>
> Part of the point of SUnit was to be cross-dialect, and ports to all
> dialects, including Gemstone, should already exist, although I
> couldn't tell you where to find them offhand if they're not on the
> sourceforge page. There aren't many recent versions because the code
> hasn't changed very much.
>
> Various people have found SUnit lacking in one respect or another and
> extended, modified, or rewritten it. SUnitToo is one such, and among
> other things, abandons portability in favour of exploiting
> VisualWorks-specific features. I don't see any issues with missing
> prerequisites when loading it, but I normally load it from the parcels
> accompanying the distribution. That gives a better likelihood you're
> getting a version compatible with that distribution.
>
> No one is mandating you to use any of these frameworks in particular,
> so if you think they could be simpler or better, you can just write
> one yourself - the most important feature of a test framework being
> that it can be rewritten from scratch on the train between Munich and
> Erfurt. But I think if you just need a basic test framework your best
> bet would be to find the existing Gemstone port of basic SUnit and use
> that.
>
> Internally we use both SUnit and SUnitToo, sometimes with rather
> fine-grained mixing. We run the tests both interactively and via
> scripts. We have a "bridge" in SUnit-Bridge2SU2 that can be used
> interactively to let you run both SUnit and SUnitToo(ls) tests from
> the SUnitToo(ls) test runner. In script form this would be less
> important - just use the appropriate runner, and if you're not trying
> to mix test frameworks it doesn't matter anyway.
>
> At 02:51 PM 2/5/2009, Paul Baumann wrote:
>
> Content-Language: en-US
> Content-Type: multipart/alternative;
> boundary="_000_CD50A3C7334E0F47B37D6244B310A02806497CBF5Aatbpixmx02CPE_"
>
> I'm looking for advice concerning a unit test framework for VW and GS
> code.
>
> SUnit being "the mother of all unit testing frameworks" seems like a
> good place to start. At the time, SUnit was ported at CS1 it was meant
> to have a common code base that was adapted to multiple environments
> through bridge #sunit* protocols (the SUnitUI part was dialect
> specific of course). It seems there are now several test frameworks
> derived from SUnit--and some that go by the same name.
>
> The official SUnit site appears to be
> http://sunit.sourceforge.net/index.html but the latest code drop is
> from 2003.04.28 and it references bad DTD files. At least the earlier
> 3.1 RC4 version is already in the Cincom public code repository.
>
> The public Store repository has revisions of SUnit package as recent
> as 2008.09.29 but I see from that code that it modifies the SUnit base
> in decidedly non-portable ways (like sending #beginsWith: instead of
> #sunitMatch:). That derivative seems to be part of "SUnit Very Much".
> A method named #beginsWith: isn't defined by VW 7.5 nor SUnitPreload,
> so it is unclear just what it is intended to work with.
>
> Then I find SUnitToo (
> http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086 
> <http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3278236086>
> ) with a long history of changes and the last change as recent as
> 2008.12.03. That would seem like a logical one to go with, but boy
> does that seem like a lot of changes and code to just run assert
> statements on test code. It looks like major scope creep and
> divergence. SUnitToo loads fine, but when you go to load the
> recommended "SUnitToo(ls)" then there are missing prerequisite errors.
> Just where is the bundle that relates all these package versions? I
> can't help but wonder if the expression "simpler is better" will apply
> here.
>
> It comes back to this. There is a need [by edict] for a test framework
> for VW and GS. It doesn't need to be very fancy. I don't even care
> about the red light / green light thing that is supposed to be so
> wonderful. The current thinking is that the tests will usually be run
> from scripts since most of the testing will be in GS code. It doesn't
> have to be a single framework for both environments, but the same test
> protocols should be used. No visual tests are anticipated because
> these are server applications.
>
> I'm thinking the best thing is to port the latest formal SUnit to GS.
> The VW tests could be by any SUnit test protocol derivative but I'm
> not sure anything more than the original SUnit is necessary. It seems
> like others would have some experience in this area.
>
> *Paul Baumann*
>
> ------------------------------------------------------------------------
>
> This message may contain confidential information and is intended for
> specific recipients unless explicitly noted otherwise. If you have
> reason to believe you are not an intended recipient of this message,
> please delete it and notify the sender. This message may not represent
> the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries
> or affiliates, and does not constitute a contract or guarantee.
> Unencrypted electronic mail is not secure and the recipient of this
> message is expected to provide safeguards from viruses and pursue
> alternate means of communication where privacy or a binding message is
> desired.
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
>
> --
> Alan Knight [|], Engineering Manager, Cincom Smalltalk
> [hidden email]
> [hidden email]
> http://www.cincom.com/smalltalk
>
>IMPORTANT NOTICE
>Email from OOCL is confidential and may be legally privileged.  If it is not intended for you, please delete it immediately unread.  The internet cannot guarantee that this communication is free of viruses, interception or interference and anyone who communicates with us by email is taken to accept the risks in doing so.  Without limitation, OOCL and its affiliates accept no liability whatsoever and howsoever arising in connection with the use of this email.  Under no circumstances shall this email constitute a binding agreement to carry or for provision of carriage services by OOCL, which is subject to the availability of carrier's equipment and vessels and the terms and conditions of OOCL's standard bill of lading which is also available at http://www.oocl.com.
>
>
> ------------------------------------------------------------------------
> This message may contain confidential information and is intended for
> specific recipients unless explicitly noted otherwise. If you have
> reason to believe you are not an intended recipient of this message,
> please delete it and notify the sender. This message may not represent
> the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries
> or affiliates, and does not constitute a contract or guarantee.
> Unencrypted electronic mail is not secure and the recipient of this
> message is expected to provide safeguards from viruses and pursue
> alternate means of communication where privacy or a binding message is
> desired.
>
>------------------------------------------------------------------------
>
>_______________________________________________
>vwnc mailing list
>[hidden email]
>http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>  
>


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc