[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[News.eclipse.test-and-performance] Re: Will this project be geared to software testing only?

> This is the basic concept spot on.  At some point the behaviours will 
> be able to be very generic, and the codegen will interface to any SUT
> provided a thin testability interface is provided to it, and the
> behaviours will also be able to control any logging monitoring or
> parameter tuning agents that are kicking about in the environment.
> 
> However, at the moment the codegen is specific to certain SUTs and the
> behaviours are limited to certain constructs.  You can take one of 
> these and extend it, or bolt in your own codegen through the UI 
> extension point, and there is a "cat flap" to let in proprietary 
> behaviours (i.e. non-UML-derived scripts) at this point.

Ok, while this is a very interesting concept, it won't work for us 
anytime in the near future.  Our environment effectively consists of a 
single test component that generates all behaviors at run-time.  We do 
this because it requires billions and billions (as Carl Segan would say) 
of behaviors to fully test a SUT.  Our test component is on the order of 
1 million lines of C++.  A testcase for us is simply a set of 
configuration parameters for the test component.

To execute these tests, we use thousands of machines.  These machines 
must be shared with non-test workloads.  This requirement does not allow 
us to use a dedicated testing daemon like RAC.  Jobs are dispatched to 
these machines from a central server that manages a queue.  Any user may 
queue any job.

To maximize throughput of tests, we use another server that supplies 
test jobs to the queue described above.  Users construct testcaess and 
make the test server aware of the testcases.  The test server will 
submit these testcases to the queue 24/7 until a set of specified 
conditions is met.  As we have thousands of testcases to choose from, 
the test server is able to keep the queue full of tests.

It is my understanding (please enlighten me if I'm misinformed) that 
with software testing if you run a testcase more than once, it will 
always produce the same behavior and same fail for a given (defective) 
SUT.  This is not the case for us.  Whenever we run a testcase, a new 
behavior is created and thus the possibility for a new fail condition.  (
Note that this feature factors into the use of the test server described 
above.)  For example, if I run a testcase 100 times on a given SUT, it 
is possible to get 100 unique fail verdicts.  This situation typically 
poses a challenge to fail management not seen in software testing.

You mention the test execution history model.  I'm assuming this is an 
EMF model that needs to be loaded.  How is the data displayed once the 
model is loaded?  To manage our fails, we require the ability to make 
user defined queries to a database, and to display the data in a format 
as specified by the user.  Right now, the only given is that the fail 
data will be displayed in tabular format.  Everything else is 
configurable by the user.

I'd be interested to know more about how you handle artifact data.  We 
can easily generate hundreds of gigabytes of artifact data per day.

There is also a major performance issue for us that gets into a 
discussion of testcase grouping and data localization, but I'll save 
that for later.

Bryan