- Due to the removal of the unique name constraint for symbols, project files created with previous releases are not compatible with this release.
- Due to the CLI overhaul, the CLI got a new API with is not compatible with previous releases.
- Fix issue with JSON path evaluation that returns a JSON object
- Fix issue with local usage of ALEX with the Chrome image
- Make ALEX Kubernetes ready:
- Added Helm chart to
infratructure/helm
. - Added Skaffold pipeline for local Kubernetes development.
- Added Helm chart to
- Symbol names must not be unique in the project. Instead, symbol names must be unique within a symbol group.
- CLI overhaul: new API.
- Allow Webhooks to have custom HTTP headers.
- Add validation widget for learner setups.
- Allow to send PATCH requests via an action.
- Symbols and tests cannot be exported and imported separately anymore.
- Update to Selenium 4
- Remove support for Internet Explorer and HTML Unit
- Fix bug where test cases could not be executed.
- Fix bug where tests could not be saved when pre steps have changed.
- Use Docker for development and production versions of ALEX. The standalone build is no longer supported.
- Due to the previous point, the web drivers have been removed. It is only possible to set the URL to a Selenium Hub.
- See which symbols and tests are used by other users in a project
- Export formula suites while exporting a project
- Export learner setups while exporting a project
- Automated model checking of learned models
- Associate LTL formula suites with a learner setup
- Scoping issues with variables
- Add Flyway support
- Migrate frontend to Angular 8
- Server-side import and export
- Add stack trace for failed tests
- Abort test processes more quickly
- Show symbol references
- Support for Java 11
- Project environments: create environments and environment variables
- New actions:
- Drag and drop operations
- goto-like jumps
- waiting for a script
- Update a test suite during test generation
- Extend "switch to" action for handling windows
- Import and export for projects
- Specify default test configurations
- Multiple pre and post steps for test cases
- Queue test and learning processes
- Save learning setups
- Collaboration for projects
- Generate test case from model
- Add cookie to request action
- Fix model not displayed in testing view
- Removed the HTML Element Picker. The picker only really worked in Chrome and then only in some selected use cases, i.e. static pages. Due to these restrictions we decided to remove it completely.
- Removed xvfb option. The option was introduced when major browsers did not have a headless mode. Since the option only worked on Linux systems and all major browsers have such a mode, the option has been removed.
- Basic LTL-based model checking using LTSmin.
- Compatibility with Java > 8.
- Add action to set a variable by HTTP status.
- Improved parallelisation support for learning processes.
- Permanently delete symbols instead of just hiding them. This only works if a symbol is not referenced by some other entity.
- Symbol groups can have the same name when they don't share the parent group.
- New events for when symbols are deleted permanently.
- New model checker related events.
- The JWT expires after 7 days.
- Test results are ordered properly.
- Fix resuming learning processes with new input symbols.
- Fix issues with HTML Element Picker
-
Symbols have to be migrated to the new version. Please use the migration script
src/main/resources/migration/1.6.0/migrate-symbols-1.5.0-to-1.6.0.js
via:node migrate-symbols-1.5.0-to-1.6.0.js ./symbols-from-1.5.0.json ./symbols-for-1.6.0.json
-
Tests have to be migrated to the new version. Please use the migration script
src/main/resources/migration/1.6.0/migrate-tests-1.5.0-to-1.6.0.js
via:node migrate-tests-1.5.0-to-1.6.0.js ./tests-from-1.5.0.json ./tests-for-1.6.0.json
- Symbols can be composed of other symbols.
- Symbols can be parameterized in learning experiments.
- Connect ALEX to a MySQL database. See the README for instructions.
- Generate test suites from discrimination tree based learners (TTT, Discrimination Tree).
- Use test cases in test suites as equivalence oracle.
- Added support for Internet Explorer
- Execute JavaScript asynchronously
- Symbol parameters can be public or private. If a parameter is public, its value can be set by the user while configuring a testing or learning process. If it is private, its value cannot be set manually, but is resolved by the value in the global data context.
This release only contains some bug fixes.
-
Symbols and tests that have been exported with v.1.4.0 and lower can not be imported directly. Apply the new export format and for each symbol in an exported JSON file add the properties
inputs
andoutputs
so that the resulting file looks like:{ "version": "1.4.0", "type": "symbols", "symbols": [ { "name": "symbol", ..., "inputs": [], "outputs": [] }, ... ] }
- Resuming a learning process should now work as expected.
- Various smaller fixes.
- The results of test executions are saved in reports.
- Added webhooks to notify external applications about changes.
- Reuse the browser instance for membership queries. A hard reset with a new browser instance can be achieved with a new action.
- New actions:
- Refresh and restart the browser window.
- Click on a arbitrary element with a given visible text.
- Check if an element, e.g. a checkbox, radio button or option is selected.
- Set variable to HTTP response body.
- Parameterized symbols: symbols now have dynamic inputs and outputs. Values for inputs can be set by a user for modelling tests.
- Symbols and symbol groups can be nested in a tree like structure.
- Named project URLs.
- Download uploaded files.
- Learner results can be cloned.
- Import and export symbol groups.
- The CLI for ALEX is now a standalone NPM package and can be installed via
npm install alex-cli
-
Symbol abbreviations have been removed. To use old exported symbol sets, remove the abbreviation property manually from the JSON file.
-
The HTML Element Picker does not work as before. In order to use it properly, make sure you start your browser with disabled CORS rules or use a plugin. See the user documentation for detailed instructions.
- Define a default web driver to execute tests in
- Immediately stop learning instead of waiting for the current iteration to finish
- Support for native headless web driver support for Chrome and Firefox
- Action recorder - Record a sequence of actions for a symbol in the Element Picker
- Extended testing capability - Save and execute test cases without starting a learning process
- Calculate the difference between two models
- Added Safari driver
- New actions:
- Wait for a text to appear
- Wait for the value of an elements attribute
- Interact with alert, prompt and confirm dialogs
- Validate JSON against a JSON schema
See the user documentation for more details.
- The execute symbol action is no longer supported
- Possibility to resume old learning experiments
-
Actions that deal with web elements have to be updated:
node: {selector: '...', type: 'CSS|XPATH'}
- New actions:
- Set a variable by node count
- Set a variable by regex
- Switch between XPath and CSS selectors in actions
- Experimental parallel test execution support
- New actions:
- Press special keys like enter, ctrl, etc.
- Check the value of an elements attribute
- New equivalence oracle: hypothesis
- Test symbols without starting a learning process
- Support for the edge driver
- Dropped support for IE web driver
- Firefox and Chrome drivers are not supported by default any longer. Instead, you have specify the paths to the driver executables.
- Fixed the parsing of JSON paths in various REST actions.
- New action: Move mouse
- Click action supports double click
ALEX v1.1 (and hidden ALEX v1.1.1)
- Allow symbol groups to be edited via the frontend again
- Properly close connectors after finished learning
- ALEX v1.1.1 fixed a problem with the fonts.
- New action: Execute JavaScript
- GoTo action and Call action support Basic HTTP authentication
- Export and import projects
- New REST endpoint: rest/users/batch/{ids} to delete multiple users at once
- Additional visual enhancements
- Updated frontend and backend dependencies
- Removed requirement to have grunt and grunt-cli installed globally