Note that there are some explanatory texts on larger screens.

plurals
  1. POFramework for automatically planning execution order of automated regression-tests?
    primarykey
    data
    text
    <p>I'm currently working on the implementation of a testsuite for a relatively complex application. The application is Java &amp; Spring based with a web frontend. The Frontend-Tests can be written in Java too (using Silk4J and their automation-client). Actually writing the tests is not the issue, this is the easy part. Where it starts getting tricky, is the order in which individual tests can be executed.</p> <p>Currently we are writing our tests using JUnit. As JUnit is a Unit-Testing tool the order in which the tests are executed is not fixed. If we simply create the tests for every module of the application we quickly run into trouble. Some tests have to rely on other parts to be working correctly and that certain data from other modules is available. I could write the tests for every module in a way that is initializes the applications state to a pre-defined state and then executes its tests, but having to clean and prepare the state would be quite an effort. The more complex tests require a vast amount of preparation and test scenarios that go accross multiple modules.</p> <p>What I'm looking for is a testing framework, in which each test can somehow define its requirements and what service it tests/provides (A test of the create-user-feature can actually create users ... at least it should). Now I don't want to hard-code which test is run with which data and in which order, because it is extremely complex to determin the order and changes to the application would make it neccesary to completely refactor the tests.</p> <p>For example my "create-user-test" creates users as a side-effect of actually checking that users are correctly created. To me it doesn't matter if this functionality is tested using userA, userB or userC, just as long as it is tested. If I now have another test "create-account-test" that requires a user that only userC sattisfies, then the test system should know "Oh ... create-account-test needs userC, that has not been created yet but by passing userC to my "create-user-test", that would create it. So in the final execution it runs "create-user-test" with userC before "create-account-test" and hereby uses the side-effect of "create-user-test" to create the state needed by the "create-account-test".</p> <p>By inspecting the requirements and the services of my tests. Such a system should be able to create a non-cyclic graph containing each test at least once (hereby testing the entire functionality) but without having to prepare/teardown the applications state for every test or fire an Error if it is somehow not possible to create such a graph. At least this way I could create huge test scenarios that would still stay maintainable.</p> <p>I know this is a somewhat complex. I googled a while, if somebody allready worked on such a framework. Unfortunately I couldn't find anything similar.</p> <p>Now I'm hoping for someone here to guide me to a tool OR tell me why this is a totally bad idea. A response of "Hey ... great idea ... nobody created such a thing yet" ... would certainly kill my after-work leasure time dramatically, because in that case I would propably start developing such a tool ;-)</p> <p>Chris</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload