Introduction to smoke tests
Smoke tests are preliminary tests to reveal simple failures severe enough to, for example, reject an upcoming software release. In the Software Factory, you can use smoke tests to ensure a basic quality level of SQL queries in your application. They will discover the following problems in advance instead of at runtime:
- Malformed queries - SQL queries that are not placed on the database as application logic may be malformed.
- Editable views without RDBMS editing support, instead-of triggers, or handlers.
- Outdated parameterization of logic.
- Some forms of outdated dependencies for views, triggers, and stored procedure logic on the database.
Items tested by smoke tests
Procedure subroutines, handlers, and tasks are not included in smoke tests, since knowledge of the parameterization is required to execute these without causing errors. You can use unit tests to achieve the desired coverage.
The following items are tested by smoke tests:
- Via a select query:
- SQL prefilters
- Calculated columns
- Calculated columns (function)
- Expression columns
- Column default expressions
- Task parameter default expressions
- Report parameter default expressions
- Process variable default expressions
- Scalar functions
- Table-valued functions
- Domain input constraints (sql-typed).
- Within a transaction that is rolled back, using null values as input:
- Default logic
- Layout logic
- Context logic
- Badge logic
- Change detection logic
- Within a transaction that is rolled back, firing with 0 affected rows:
- Insert triggers
- Instead-of insert triggers
- Update triggers
- Instead-of update triggers
- Delete triggers
- Instead-of delete triggers.
Run the smoke tests
Before running a smoke test, note that:
- Smoke tests only support SQL server as a database platform.
- Smoke tests can be run only as a single unit. This means you cannot run a smoke test for an individual item (for example, a prefilter).
- Each branch can have only one set of smoke test results. Rerunning a smoke test will replace the previous results.
- If a test has not finished after 10 seconds, it will be aborted. This can happen, for example, for complex calculations. In that case, it generally means the code is compiled correctly.
To run the available smoke tests:
menu Quality > Smoke tests
- Execute the Start smoke test task.
- If necessary, change the Runtime configuration.
- Click Execute.
The results are displayed in tab List. By default, successfully executed tests are filtered out as they require no further attention.
The details for all tests are available in tab Form. Here, you can consult failed or skipped steps, and a test's SQL code for manual execution.
Results of the smoke tests