Supports the execution of automated tests written in the spreadsheet based CHUR automation language.
Supports the execution of a selected subset of test cases.
Supports the repeated execution of all or a selected subset, based on duration or count.
Supports the automatic cleanup of the target environment, if a specific test case execution remains hung, or runs for over a specified period.
Supports the execution of user-written external programs or scripts to implement specific automation functions.These may be written in any language chosen, and each atom may be implemented in a different language.
Supports a modular approach to test automation, by providing an ability to cluster related functionality into separate spreadsheet files.
Supports the uploading of test results and other useful execution and environmental data, such as build ID, machine configurations, etc... into Zermatt, within the context of a specified test plan.
Supports the concept of test sessions. Results may be filed under an existing session, or a new session may be created.
Supports debugging of automated tests, by facilitating interactive execution of unimplemented atoms. The user is prompted to manually do the step, and provide the outcome of the missing atom.
Supports the execution of tests in performance mode, where the verification actions are not performed. Execution times are recorded in the DB. Can be combined with Repeat execution.
Supports the possibility to do a sanity check of the automated test suite syntax, without executing any atoms.
Supports the controlled execution of multiple threads to concurrently execute multiple test logic streams in parallel, to simulate real environment, with thread-safe variables.
Supports the controlled cleanup at various levels of testing, viz. test suite, test case, test step- to allow automated tests to run unattended for longer periods.
Supports creation and launching of test sessions in cooperation with Zermatt.
Supports the automatic compression and archival of multiple log files per test session.
Supports the execution of atoms within the same process context, thus avoiding costly process launch overhead. This feature could be useful for performance testing, where functional consistency is also important.
Features
Chur is a spreadsheet based powerful test specification language that is easy to understand by non-programmers. The language supports concurrency, exception handling and cleanup after failure, so as to minimize the possibility of an unproductive automation test cycle, because some test got stuck, and compromised the initial assumptions about the environment made by subsequent tests.
Can easily generate hundreds of test variants, by automatically combining variable values to make new test cases, each of which is individually traceable.
An execution engine that interprets the test specification, and collects information about the test environment, beyond simply the test result.
The test execution and application logs are automatically compressed and archived. The execution logs are separate for what the execution engine outputs, and the test steps might need to write.
Chur Technical specifications
Supports a syntactic construct to specify cleanup steps for any action that does not execute successfully.
Supports a syntactic construct to clearly differentiate between steps that progress the test logic, and steps that merely verify that the test logic step has yielded the desired outcome.
Supports user of third-party written program or a script, in any language, to implement the discrete actions needed to execute the steps in a test. The syntax supports an ability to implicitly share context between these entities.
Supports a fair number of commonly used functions as built-in atoms, that execute within the process context on the execution engine.
Supports a syntactic construct to express the fact that a test step, or a collection of test steps may be scheduled in parallel with thread-safe variable.
Supports a language construct that allows the user to call for automatic generation of a multitude of test cases, based on the same test procedure, but applied to different test variable.
Support syntactic constructs that allow passing of arguments either by value, or reference-regardless of whether the target is a molecule or an atom - built-in, in-process or out-of-process.
Support the concept of include files that implement prebuilt libraries of atoms and molecules. Name collisions are managed through intuitive namespace support.
Supports a variable number of arguments - anywhere between zero and a reasonable number when invoking a molecule or an atom.
Support the ability to provide descriptions of test cases and test steps.