Difference between revisions of "Testing Tool (Architecture)"
m (Moved missplaced title) |
(Added service section) |
||
Line 40: | Line 40: | ||
</pre> | </pre> | ||
+ | |||
+ | == Provide testing as a service in EiffelStudio == | ||
+ | |||
== Communication between tool and test executor == | == Communication between tool and test executor == |
Revision as of 11:38, 20 June 2008
Contents
Test system architecture
- separate system for executing tests
- system is only responsible for running tests, without determine whether a test fails or not -> compiling and launching system is done by tool, which is also oracle
- tests are compiled up to degree 3 in development system, so user can edit tests like normal classes, but do not affect resulting binary
- test referenced by root class of development system will be compiled anyway, this way we can also run tests in debugger
- in CDD: test system is implicit target (does not have to be in ecf) which inherits from development target, test target simply defines new root class/feature
- re-use development EIFGEN (copy) so test system does not need to compile from scratch?
EiffelStudio <-----------------------------> Testing tool <-----------------------------> Test executor * Show tests in system * can be part of EiffelStudio or * execute test in safe environment * Show test result compiled as separate tool to be (executor is allowed to crash) * Provide test creation wizards used e.g. through console * Interface for CDD, Auto tests, * compile test executor creating manual tests, running * distribute test executors to * provide ESF service for different machines testing/test results * schedule test execution * provide test results * find all tests for a given ecf file * write root class for test executor CDD * implemented partially in debugger/executable * should be part of any Eiffel application, that way test can be created for bug submitting * extraction can be initiated through debugger, breakpoints, failure window, etc. Auto Test * separate tool, interface in EiffelStudio
Provide testing as a service in EiffelStudio
Communication between tool and test executor
Protocol
From tool to executor
- name(s) of test to execute
- quit
From executor to tool
- test result
- text output produced by test
- exception details (type, tag, feature, class? occurred during set up, test, tear down?)
- call stack for exception
Open questions
- executor per machine/processor?
- text based/object base communication?