What's Next
Ideas and proposals
Last updated
Ideas and proposals
Last updated
Work in progress and issues:
(GitHub)
(GitHub)
Yes, this project does not have a logo yet 😱. Designers interested in helping us (for free 🙏), please contact us on our or .
The logo should reflect the idea behind the language:
The tool generates test cases and test scripts that verify if the application under test meets the specified functional requirements. Therefore, the idea of "verification" or "testing" could be in the logo.
Interested? See .
👉 Our next goal is a plugin for .
Suggestions:
JavaScript and friends: (web), (web, mobile, desktop)
PHP: (web)
Java: (web), (android), (desktop)
Ruby: (web), (mobile applications developed with )
Python: (web)
C++: (desktop), (desktop)
Delphi: (desktop), (desktop)
Other programming languages or frameworks are welcome! 💖
A Variant Background
defines steps that must be executed before all the Variants of a certain Scenario. Example:
MOTIVATION: It allows to keep initial, repeated steps in a common place.
Like this:
MOTIVATION: Simpler syntax.
MOTIVATION: It allows to perform visual comparison and detect related bugs.
To use the characters """
(three quotation marks) to denote a text content to be compared. Example:
MOTIVATION: It facilitates comparisons with text files or multiple-line strings.
To allow a given UI Element or UI Literal to match a certain Table.
Example 1:
Example 2:
In which Some Table
is declared like this:
It should make target table's rows to match the declared ones.
MOTIVATION: It facilitates the verification of expected data in tables from a user interface.
NOTES: Probably it requires to convert the Concordia Action to many abstract commands that verify every table row independently. Usually testing frameworks do not provide such kind of verification (for many rows at once).
Use Concordia 2 data and time expressions inside table rows. They must be written between `
or some other character. Example:
MOTIVATION: Concordia Language allows date and time expressions inside UI Properties. Using them inside tables can be useful.
States that vary according to some generated value. Example:
According to the selected user, it will produce a different State. For example, when "bob" is selected, the produced state will be admin is logged in
and when "joe" is selected, the produced state will be guest is logged in
.
Thus, Features could depend on static or dynamic states.
MOTIVATION: Making states more flexible.
To provide a Given sentence that requires one - and only one - of the provided states. Example:
MOTIVATION: It allows to perform a XOR operation with the given states using natural language, aiming at choosing one and only one of the given states.
To provide annotations parameterize a test combination strategy for a specific Feature.
For instance, to configure the combination of invalid values for a specific Feature:
The annotations should correspond to the CLI parameters.
MOTIVATION: Increase the flexibility of the test generation procedure.
Currently:
Proposal (to accept as valid):
Alternative proposal:
MOTIVATION: Make it easier to write/read SQL statements.
Select a Feature for Test Case generation, without having to include its dependencies:
by importance value
Select a Scenario for Test Case generation:
by importance value (tag @importance
)
Test Case for test script generation;
by importance value (tag @importance
)
Provide the option --watch
to generate .testcase
files when their corresponding .feature
file changes or an imported .feature
file changes. A new seed must be produced, except when explicitly provided (using --seed
or configuration file).
Concordia has language constructions that the Compiler does not support yet. Examples:
Variant Background: Implement Variant Background
, which is part of the Concordia Language but was not implemented yet by the Concordia Compiler.
Support the tag @ignore
in Features and Scenarios. Currently it is supported inVariant
s and Test Case
s. Whether added to a Feature or a Scenario, it would not generate Test Cases.
Consider global UI Elements
Make the tool processing UI Elements tagged with @global
.
Allow inheritance of UI Elements
Use @extends( <name> )
to extend another UI Element.
Example:
Multiple declared Tables per query: Allow a query to reference more than one table declared in the specification.
Multiple declared Databases per query: Allow a query to reference more than one database declared in the specification.
Test cases that explore SQL Injection: Using declared Databases and Queries to formulate Test Cases that generate strings with SQL Injection commands.
It is already possible to generate HTML or even PDF reports using the available plug-ins. However, these reports indicate the frameworks' results, not necessarily the ones from Concordia.
To provide the CLI parameter --report
for indicating the corresponding plug-in. Example:
which should be equivalent to
Be able to run test scripts using Concordia from the IDE.
Keep some hash control or use Git information when available. Hashes can be stored in a .json
or .yml
file. Example:
Please see .
Test cases that use naughty strings as test data: Using a as test data.
Create new projects for auto-completion plug-ins for text editors such as VS Code, Sublime Text, Atom, etc. Example for VS Code: .
Create integration with . Other reporters (e.g., ) can be added further.
NodeJS has made considerable progress since version 10.5
adding support to . Stable support for Worker Threads was added in version 12
LTS. Although, it would increase minimum requirements to install Concordia Compiler - currently it requires NodeJS 8.0
.