Results 1 to 4 of 4
  1. #1

    Modular tests and System Base States

    Hello All,

    At the moment, I have a system level smoke test. (Rational Robot) This test is sequential in its execution. I have a top level test script that calls other test scripts. I use global data structures to pass input data to scripts. This smoke test is quite valuable and has found many problems.

    However, I would like to be able to run any test script, at any time, in order to test only certain functionality. All my test scripts are 'modular', however the problem lies in the various databases on the back end. I need to guarantee that the system databases are in a certain state in order to run repeatable tests with confidence. The smoke test mentioned above drives the system through all its various 'states', so it is not a requirement to set the base state before each test. Each test is dependent on the successful execution of previous tests. :-( But what if I want to test functionality somewhere in the middle of a sequence? The obvious answer is to put the system into the correct base state before running the test. This would require 'pushing' databases out to the SQL servers, bouncing other servers, and verifying the environment before starting.

    I can envision a nightmare of maintenance overhead trying to keep baseline databases up to date and in sync with test scripts, input data, and expected results.

    I would like to hear other testers' experiences with this method of providing a base state. I welcome any advice you may have on this matter.


  2. #2

    Re: Modular tests and System Base States

    Each test suite should be able to stand on it's own. Thus, I always make sure that either I use one fixed data (no modification required), or I populate the data for each test suite. You can use ODBC calls, and so forth to do this.

    Otherwise, you can run through the application to do this, or break the tests to 'destructive' and 'non-destructive' tests, and make sure 'destructive' tests are isolated, and you setup specific data for these types of tests.

    If automation takes up tons of time manually setting up before it can run, I consider it an incomplete automation. Often times, I've found that most time consuming part of automation suite is setup and configuration.


  3. #3

    Re: Modular tests and System Base States


    Thank you for the response. I think I'll try the following.

    1. Push my 'initialized' SQL DB's out to the servers.
    2. Use an automated test script to populate/modify the contents of the database instead of driving the system to the required state using the GUI, and set up other base state requirements.
    3. Run the automated test.
    4. Clean up

    I think it will be easier to correlate the base state data with the test input data and expected results by removing the dependency of having to 'match' a database to a specific 'test procedure/input data/expected results' combination.

    There are some sections in the book 'Automated Software Testing' that mention 'test data', but I'm looking for gorry details on how other testers actually use automation to set up the environment, and keep it synchronized with all the various test scripts.

  4. #4

    Re: Modular tests and System Base States

    That's great.

    If your product provides external API's to populate data, you may want to consider that route in the future. If you create generic db functions, you can utilize it to validate that records properly exist, and guess what, you've just regression tested bunch of APIs, and at the same time enhanced your automation.

    Also, the other thing to consider is making your tests data driven. Meaning, I would consider doing a select statement against a particular record types, and using the list, run through tests. This way, you are not required to manage the test cases, just the records in the database.

    Depending on your product(s), you may run into some issues. It's hard to list them all, but if you do run into them, just ask and someone can help you out.




Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
BetaSoft Inc.
All times are GMT -8. The time now is 07:19 PM.

Copyright BetaSoft Inc.