What you've described is a great unit testing framework, but with integration testing you need recognition that some tests are dependent of specific system state - and therefore can not be run blindly in parallel.
Some can, just not all - and often the most expedient way to get a system in a known state is to "walk it there" through sequences of tests. I believe we essentially already have this framework in place with the openstack-integration-tests repo and the proposed (but not yet implemented) set of tests using proboscis to enable dependencies and grouping in those tests. -joe On Oct 19, 2011, at 5:00 PM, "Ngo, Donald (HP Cloud Services : QA)" <donald....@hp.com> wrote: > My wish list for our proposed framework: > > - Create XML JUnit style run reports > - Run tests in parallel > - Should be able to run out of the box with little configuration (a > single configuration file, everything in one place) > - Run through standard runner like Nosetest (i.e. nosetests /Kong or > nosetests /YourSuite). This will allow the suites to easily integrate in each > company’s framework. > - Tests framework should support drop and run using reflection as a > way to identify tests to run > > Thanks, > > Donald > > From: openstack-bounces+donald.ngo=hp....@lists.launchpad.net > [mailto:openstack-bounces+donald.ngo=hp....@lists.launchpad.net] On Behalf Of > Brebner, Gavin > Sent: Wednesday, October 19, 2011 10:39 AM > To: Daryl Walleck; Rohit Karajgi > Cc: openstack@lists.launchpad.net > Subject: Re: [Openstack] [QA] openstack-integration-tests > > > My 2c > > To me, the end-customer facing part of the Openstack solution is in many ways > the set of libraries and tools customers are likely to use – as such testing > with them > is essential. If there’s a bug that can be only exposed through some obscure > API call that isn’t readily available through one of the usual libraries, it > mostly will be of > only minor importance as it will be rarely if ever get used, whereas e.g. a > bug in a library that causes data corruption will not be good for Openstack > no matter > how correct things are from the endpoint in. The whole solution needs to > work; this is complex as we don’t necessarily control all the libraries, and > can’t test everything > with every possible library, so we have to do the best we can to ensure we > catch errors as early as possible e.g. via direct API testing for unit tests > / low level > functional tests. Testing at multiple levels is required, and the art is in > selecting how much effort to put at each level. > > Re. framework we need a wide range of capabilities, hence keep it simple and > flexible. One thing I’d really like to see would be a means to express > parallelism – e.g. for > chaos monkey type tests, race conditions, realistic stress runs and so on. > Support for tests written in any arbitrary language is also required. I can > write all > this myself, but would love a framework to handle it for me, and leave me to > concentrate on mimicking what I think our end customers are likely to do. > > Gavin > > From: openstack-bounces+gavin.brebner=hp....@lists.launchpad.net > [mailto:openstack-bounces+gavin.brebner=hp....@lists.launchpad.net] On Behalf > Of Daryl Walleck > Sent: Wednesday, October 19, 2011 6:27 PM > To: Rohit Karajgi > Cc: openstack@lists.launchpad.net > Subject: Re: [Openstack] [QA] openstack-integration-tests > > Hi Rohit, > > I'm glad to see so much interest in getting testing done right. So here's my > thoughts. As far as the nova client/euca-tools portion, I think we absolutely > need a series of tests that validate that these bindings work correctly. As a > nice side effect they do test their respective APIs, which is good. I think > duplication of testing between these two bindings and even what I'm > envisioning as the "main" test suite is necessary, as we have to verify at > least at a high level that they work correctly. > > My thoughts for our core testing is that those would the ones that do not use > language bindings. I think this is where the interesting architectural work > can be done. Test framework is a very loose term that gets used a lot, but to > me a framework includes: > > The test runner and it's capabilities > How the test code is structured to assure maintainability/flexibility/ease of > code re-use > Any utilities provided to extend or ease the ability to test > > I think we all have a lot of good ideas about this, it's just a matter of > consolidating that and choosing one direction to go forward with. > > Daryl > > On Oct 19, 2011, at 9:58 AM, Rohit Karajgi wrote: > > > Hello Stackers, > > I was at the design summit and the sessions that were ‘all about QA’ and had > shown my interest in supporting this effort. Sorry I could not be present at > the first QA IRC meeting due to a vacation. > I had a chance to eavesdrop at the meeting log and Nachi-san also shared his > account of the outcome with me. Thanks Nachi! > > Just a heads up to put some of my thoughts on ML before today’s meeting. > I had a look at the various (7 and counting??) test frameworks out there to > test OpenStack API. > Jay, Gabe and Tim put up a neat wiki > (http://wiki.openstack.org/openstack-integration-test-suites) to compare many > of these. > > I looked at Lettuce and felt it was quite effective. It’s incredibly easy to > write tests once the wrappers over the application are setup. Easy as in > “Given a ttylinux image create a Server” would be how a test scenario would > be written in a typical .feature file, (which is basically a list of test > scenarios for a particular feature) in a natural language. It has nose > support, and there’s some neat documentation too. I was just curious if > anyone has already tried out Lettuce with OpenStack? From the ODS, I think > the Grid Dynamics guys already have their own implementation. It would be > great if one of you guys join the meeting and throw some light on how you’ve > got it to work. > Just for those who may be unaware, Soren’s branch openstack-integration-tests > is actually a merge of Kong and Stacktester. > > The other point I wanted to have more clarity on was on using both novaclient > AND httplib2 to make the API requests. Though <wwkeyboard> did mention issues > regarding spec bug proliferation into the client, how can we best utilize > this dual approach and avoid another round of duplicate test cases. Maybe we > target novaclient first and then the use httplib2 to fill in gaps? After-all > novaclient does call httplib2 internally. > > I would like to team up with Gabe and others for the unified test runner > task. Please chip me in if you’re doing some division of labor there. > > Thanks! > Rohit > > (NTT) > From: openstack-bounces+rohit.karajgi=vertex.co...@lists.launchpad.net > [mailto:openstack-bounces+rohit.karajgi=vertex.co...@lists.launchpad.net] On > Behalf Of Gabe Westmaas > Sent: Monday, October 10, 2011 9:22 PM > To: openstack@lists.launchpad.net > Subject: [Openstack] [QA] openstack-integration-tests > > I'd like to try to summarize and propose at least one next step for the > content of the openstack-integration-tests git repository. Note that this is > only about the actual tests themselves, and says absolutely nothing about any > gating decisions made in other sessions. > > First, there was widespread agreement that in order for an integration suite > to be run in the openstack jenkins, it should be included in the community > github repository. > > Second, it was agreed that there is value in having tests in multiple > languages, especially in the case where those tests add value beyond the base > language. Examples of this may include testing using another set of > bindings, and therefore testing the API. Using a testing framework that just > takes a different approach to testing. Invalid examples include implanting > the exact same test in another language simply because you don't like python. > > Third, it was agreed that there is value in testing using novaclient as well > as httplib2. Similarly that there is value in testing both XML and JSON. > > Fourth, for black box tests, any fixture setup that a suite of tests requires > should be done via script that is close to but not within that suite – we > want tests to be as agnostic to an implementation of openstack as possible, > and anything you cannot do from the the API should not be inside the tests. > > Fifth, there are suites of white box tests – we understand there can be value > here, but we aren't sure how to approach that in this project, definitely > more discussion needed here. Maybe we have a separate directory for holding > white and black box tests? > > Sixth, no matter what else changes, we must maintain the ability to run a > subset of tests through a common runner. This can be done via command line > or configuration, whichever makes the most sense. I'd personally lean > towards configuration with the ability to override on the command line. > > If you feel I mischaracterized any of the agreements, please feel free to say > so. > > Next, we want to start moving away from the multiple entry points to write > additional tests. That means taking inventory of the tests that are there > now, and figuring out what they are testing, and how we run them, and then > working to combine what makes sense, into a directory structure that makes > sense. As often as possible, we should make sure the tests can be run in the > same way. I started a little wiki to start collecting information. I think > a short description of the general strategy of each suite and then details > about the specific tests in that suite would be useful. > > http://wiki.openstack.org/openstack-integration-test-suites > > Hopefully this can make things a little easier to start contributing. > > Gabe > This email may include confidential information. If you received it in error, > please delete it. > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp > > This email may include confidential information. If you received it in error, > please delete it. > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp