By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,798 Members | 1,342 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,798 IT Pros & Developers. It's quick & easy.

Testing tools (and the creation of)...

P: n/a
Hello all,

I just want to throw this out here as an idea I have and wanted some input
and/or direction.

I am currently working as a software developer and we have run into an issue
with our automated testing. The tests are currently taking 2+ hours to run
on a single machine, and many of the tests are client-based through the
actual application.

We have started by breaking up the tests into groups that can then be run on
different machines, but the management is clumsy at best (set-up still takes
the same amount of time as on one machine, but of course once we get going,
the actual tests run in 1/5 of the time). The setup required to run the
full test suite can range from 10 minutes to 1/2 hr (database, xdoclet,
deploy, BEA Weblogic startup).

My thoughts were to tackle this in 2 phases:

Phase 1: The test scripts are served by an individual machine via a test
queue that any developer can create. The queue machine would take a
request, then pass on the next test in the queue. This would load balance
the tests, and make it much more scalable across several different machines.
In and of itself, not to large a prospect.

Phase 2: The queue machine will take as part of it's request the results of
a CVS diff command, pulling out the changed files. Queue gets set up as in
Phase 1, but the tests on the queue are only the tests that touch the
dependency tree of the modified files.

The problem with Phase 2 is that I would have to create a dependency tree,
which I think could be done via the imports of the changed files. It would
have to recursively go both up and down the tree (ie. and files used by the
modified files and their children, as well as any files that use the
modified files as well as their ancestors). This just screams compiler to
me, and short of re-inventing the wheel, I am looking for suggestion as to
whether or not there is anything (preferably open-source) that would have a
starting point for the creation of this dependency tree. If I can get a
jump on the dependencies, the actual serving of the tests is trivial.
I don't know if this is the appropriate place for this question as well, and
will gladly move it to anywhere it is deemed more appropriate, but it has
been a while since I've been in the groups.

Anyone who has a suggestion or can point me in the direction of a forum, it
would be much appreciated.
----
Michael Melvin, BMath
ma****@alumni.uwaterloo.ca
Jul 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Michael Melvin wrote:

[snippage]
The problem with Phase 2 is that I would have to create a dependency
tree,
which I think could be done via the imports of the changed files.
It would have to recursively go both up and down the tree (ie. and
files used by the modified files and their children, as well as any
files that use the
modified files as well as their ancestors). This just screams
compiler to me, and short of re-inventing the wheel, I am looking
for suggestion as to whether or not there is anything (preferably
open-source) that would have a
starting point for the creation of this dependency tree. If I can
get a jump on the dependencies, the actual serving of the tests is
trivial.

[snippage]

Hi,
Dependencies. Yes, it DOES seem like something to be done by a
compiler, and, although I've never used it, I think IBM's Jikes can
generate dependencies. It says the dependencies it can generate are
intended for producing Makefiles, so I'm not sure if it actually goes
both up and down the tree, or if it only indicates those that use the
subject (not those it uses). Still, Jikes is open source, so maybe
you could hack it.
- --
Chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/ssV6wxczzJRavJYRAmKBAJ9UfdZdsJR0PiCNdjiyjVJf73Gqzg CfdtUK
H+mne7KOeH5P3tuX7uSxtAo=
=mAWs
-----END PGP SIGNATURE-----
Jul 17 '05 #2

P: n/a
Apache Ant (ant.apache.org) has a task/structure called 'Depend' that
does pretty much what you want.

[snippage]
The problem with Phase 2 is that I would have to create a dependency
tree,
which I think could be done via the imports of the changed files.
It would have to recursively go both up and down the tree (ie. and
files used by the modified files and their children, as well as any
files that use the
modified files as well as their ancestors). This just screams
compiler to me, and short of re-inventing the wheel, I am looking
for suggestion as to whether or not there is anything (preferably
open-source) that would have a
starting point for the creation of this dependency tree. If I can
get a jump on the dependencies, the actual serving of the tests is
trivial.

[snippage]

Hi,
Dependencies. Yes, it DOES seem like something to be done by a
compiler, and, although I've never used it, I think IBM's Jikes can
generate dependencies. It says the dependencies it can generate are
intended for producing Makefiles, so I'm not sure if it actually goes
both up and down the tree, or if it only indicates those that use the
subject (not those it uses). Still, Jikes is open source, so maybe
you could hack it.
- --
Chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/ssV6wxczzJRavJYRAmKBAJ9UfdZdsJR0PiCNdjiyjVJf73Gqzg CfdtUK
H+mne7KOeH5P3tuX7uSxtAo=
=mAWs
-----END PGP SIGNATURE-----

Jul 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.