H Chip,

As a feature-dev driven by a 150-man-strong-cloud-operator-base that is not
interested in anything but me showing that they can work with what they
asked for:

On Fri, Oct 4, 2013 at 10:52 PM, Chip Childers <chip.child...@sungard.com>wrote:
...

> On Fri, Oct 04, 2013 at 05:57:58PM +0530, Prasanna Santhanam wrote:
> > I'll summarize and address the concerns raised so far.
> >
> > Marvin has been in this repo for a long time for us to start writing
> > tests. The only tests I've seen coming are from a specific set of
> > people focussed on QA efforts.
>
> I agree - and that's a problem.  New features should *ALL* have tests
> before they merge into master.  I think that assuming that the only test
> writers are a group of folks that write the tests today is actually a
> larger problem.
>

Yes and we will need to work down a backlog of scenarios before we ever can
rely on guys like me doing that. Not because they won't but because there
is to much to write tests for edging on the new features they write. Just
because those tests aren't there yet. I think giving Citrix QA a repo to
work on is fine but I would like to see it merged back at some point and a
continued possibility to write them in the main tree.

>
> > I want to reduce the impediment for
> > people who are writing tests *today*. Those looking to get started in
> > the near future won't have any new learning to do, just that their
> > code goes in an alternate repo that is pointed to right
> > infrastructure.
>
@prasanna: education of the developers is also something to consider. I
know I could contribute more to integration and at Schuberg Philis we have
some work going on in that direction. It would be nice to see easy
integration of this with the Citrix work.

>
...

> >
> > Reason for tests and framework to go together is simple.
>
Guys, why not both. some general tests that will be valid for any ACS
version can go in the marvin code base. Others that change over time should
be tied to the version of ACS they apply to.

Test can be moved from one repo to the other if needed.

...

>
> That's marvin, not the tests, right?  If I add a new feature for 4.3,
> should that test appear in a 4.2 run?  Aren't we aiming for (I know
> we're not there) a situation where *all* tests pass before we release?
> IMO not versioning the tests (not the Marvin framework) with the target
> of the tests is confusing.
>
That I agree with completely.


> > The infrastructure (currently) only looks at the changes in the test
> > directory before performing a run. It doesn't care whether server/ was
> > changed or plugins/x/y/z was changed. That's because the tests are
> > unrelated to what is in the rest of the repository. In fact you can't
> > even run them without a deployed cloud. So I don't see why idle code
> > should lie in the repo.
>
You can trigger the building of a cloud when code changes and run the tests
against that.

>  >
> > Integration tests are essential, they will keep coming as long as
> > Citrix QA is invested in the effort, but they need to come faster into
> > the repos and that will be addressed by the separation IMO.
>
> How?
>
> > Managing
> > the feature submitted to cloudstack against tests submitted to marvin
> > is not a hard thing to do. We simply mirror the release branches in
> > marvin and submit tests there. In fact I wonder why we didn't have
> > this question when docs were separated? It doesn't work any
> > differently really.
>
> Well, it turns out that docs are absolutely not being done before code
> comes into master.  I dislike this fact, but live with it.
>
I don't see why a feature has to be published when it is implemented. So I
don't agree on the docs. The great advantage of hidden features is that you
can take them out again more easily when they don't meet the promise they
made when implemented. So Docs shouldn't be written (or at least published)
until features are used in real live imho.


> > What I would like to see provided by CloudStack is the ability to
> > upgrade all our test environments, staging environments, UATs, what
> > have you in continuous integration and have tests run on the
> > upgraded setup. That allows incrementally testing CloudStack the way
> > users do it. The current design of installing everything from scratch,
> > redoing the testbed for each automated test run is mostly a workaround
> > for that inability. If we had this ability tests written in marvin can
> > be run against live setups at all times as and when features merge to
> > master.
>
Yes and it would still be great if we could build these installations of
arbitrary version as required to de upgrades from any version to any higher
version and run the tests on those. For that marvin (or some tool using
marvin) must be able to preinstall a setup on an version x upgrade to y and
then run the required test.

> It has always been my goal to reduce the barrier to writing tests for
> > cloudstack and that's entirely the goal of the refactor as well. So I
> > hope I have spent my time well. Since I can't be after people to write
> > tests, and setup mandates, I aim to address the technical difficulty
> > in writing tests through this refactor and separation.
>

But you do agree that making all of us write tests, unit as well as
integration, is the ultimate goal, don't you.


> I'll say one thing though...  I'm exceptionally frustrated with the
> features / commits coming into master with little to no tests (unit OR
> integration).  I'm at a loss at this point, and frankly considering a
> possible reality that this community (generally) just doesn't care about
> making it easy to reproduce tests.  The lack of interest and ignorance
> about the pain that this causes is infuriating to me.
>
Here I can't speak for all of us featurists but I want my features to work
after I drop them. And I have the good sense to see that unit tests are not
sufficient for that. I feel guilt as well as infuriation. Taking a side
here against my wish: It is hard to learn 2 million lines of code implement
a feature see it work on a version and then try to guarantee to the rest of
the world that it will not break a twig down under. We should. We should
also make this as easy as we can. So for now we shouldn't ever accept a
submission without unit tests and strive to work towards a situation where
we don't have to accept submissions without integration tests any longer.

Let's be practical about it and make sure that both paths (marvin and
cloudstack repo) are open and stimulate the use of both.

One other thing: I refer to my self as the guilty party somehow. This is
nonsense but it helps me focus on the goal. One goal is to have people
outside Citrix write integration tests. I wrote integration tests for some
features that where a rip-off of some integration tests that Hugo wrote for
his. We run them once in a while (as in every release but not every RC) I
am yet to learn the Citrix way of doing this and will focus on that. You
can not blame a featurist like my self to first focus on the code to get
something done. Now that o have a grasp of a few percent of those two
million lines I am happy to learn more about marvin and rewrite our tests.

patients with me please, I am willing,
Daan, (and I am sure loads of others)

Reply via email to