Toad World® Forums

Many questions about install configurations and multi-dev testing


#1

A user asked these questions through Quest Support:

If you have multiple developers working off a single schema, does QCT keep each user from clobbering the others work? Or is each user expected to have this installed to their own schemas which in turn poke other schemas?

  • Issue: Multiple developers (USER_A, USER_B) will either clobber/block one another’s work/from working, within Quest Code Tester while creating, or updating test definitions on the SAME code (e.g. DEV_SCHEMA.MYPACKAGE123).

  • So in order to ensure no clobbering or blocking, the solution would be to have each developer (USER_A, USER_B) having their own Quest Code Tester schema (CODE_TEST_SCHEMA_A, CODE_TEST_SCHEMA_B, etc). In which case you’d have test code scattered about the place, and tied to a user. This would NOT be ideal, as test code would no longer be together in one schema.

  • I’m going through the document now, but had some more comments: According to the documentation pg. 8, there are three schemas:

Quest Code Tester Schema, Test Schema, Code Schema
It appears I have the first two (1,2 - see below quoted) combined in with my own personal schema at the moment:

USER_A (1,2) —testing—> DEV_SCHEMA(3)
What if we had installed this with a separate test schema:

USER_A (1) & TEST_SCHEMA (2) ----testing—> DEV_SCHEMA(s)
Would this setup resolve anything? It doesn’t appear so, as we’d (USER_A, USER_B) still need to get at the TEST_SCHEMA and either clobber/block one another.

  • The most flexible scenario is on page 13:

DEV_SCHEMA_123 <-- TEST_SCHEMA_123 <-- USER_A
DEV_SCHEMA_456 <-- TEST_SCHEMA_456 <-- USER_B

Yet, if USER_A and USER_B want to test the same code (e.g. DEV_SCHEMA_123.CODE) at the same time, it’s not going to prevent them from clobbering one another.

DEV_SCHEMA_123
^
|
TEST_SCHEMA_123 <-- USER_A
^
|
USER_B

Other questions:

What are the differences between what is repository tables and test schema tables? How is the granularity of the test results being maintained? When I log into Quest Code Tester, do I type in my own personal schema username/password, or log into the test schema? What if two people use the same account, how does it store the differences between users? Is a session id used, etc?

This should hopefully give you a better idea of what we’re asking.
Basically we’re concerned with three layers/schemas, and want the
following:

1 - Quest Code (Q)

  • Schema containing all code Quest supplies us to work with
    (e.g QCT_SCHEMA)
  • This must be publically synonym’d
    (so USER_A, USER_B, etc - can access)
  • This must not be in the same schema as the user
    (e.g. not USER_A, but QCT)

2 - Results ®

  • Schema containing all our results from the tests run
    (e.g. TEST_RESULTS)
  • This must also be publically synonym’d if required
    (so USER_A, USER_B, etc - can access)
  • Must be granular to identify which user (e.g. USER_A, USER_B)
    is doing what.
  • can be the same schema as (Quest Code) as long as all other
    stated requirements are met.

3 - User (U) - Schemas belonging to the users (e.g. USER_A, USER_B)
- 1 per user
- separate from Q and R
(not same as TEST_RESULTS, QCT_SCHEMA)

Essentially if USER_A is working on DEV1.PACKAGE1 and so is USER_B, they might be working on different VERSIONS of the same code, and would need their own stuff separate so not to step on each others toes.

Message was edited by: unittestadmin


#2

Here is the way that Code Tester works today:

  • All metadata about your tests, including results, are stored in the test repository, which is owned by the QCTO schema.

  • The test code (generated packages) are defined in the schema specified by the test definition, but usually the currently connected schema.

  • QCTO only supports a single test definition for a program, and only one developer can edit that test definition at a time (it is locked).

  • Multiple developers can run a test definition at once.

  • You can only build tests and run tests for programs on which you have EXECUTE authority. So usually you will want to log in to your dev schema in Code Tester, so you have access to you programs.

From these statements, you can then conclude the following:

  • If two developers are working on different programs in the same package, they will have to “take turns” when it comes to modifying/building tests.

  • Alternatively, you could install different repositories, have each person build their own test definitions and then merge them together. Merge is available as an undocumented backend (non UI) option in 1.6. See attached file for instructions.

  • If two people log into the same Oracle schema to use Code Tester, we cannot distinguish between the two. Granularity of information/security is determined solely by the Oracle schema.

  • Test results cannot be stored in a schema different from the Code Tester repository schema.

I hope this clarifies the situation.

SF
Merge Test Definitions.pdf (28 KB)