Skip to content

Commit

Permalink
Update documentation about roadmap and language
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagodp committed Jun 18, 2019
1 parent bdab282 commit 80f905a
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 126 deletions.
69 changes: 39 additions & 30 deletions docs/en/language.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,36 @@ Translations: [Português](../pt/language.md) 🌎

## Index <!-- omit in toc -->

- [Language constructions](#language-constructions)
- [Comments](#comments)
- [Language](#language)
- [Import](#import)
- [Tag](#tag)
- [Feature](#feature)
- [State](#state)
- [Scenario](#scenario)
- [Constants](#constants)
- [User Interface Element](#user-interface-element)
- [Examples of UI Elements](#examples-of-ui-elements)
- [Table](#table)
- [Database](#database)
- [Examples of databases](#examples-of-databases)
- [Variant](#variant)
- [Test Case](#test-case)
- [Test Events](#test-events)
- [Literals](#literals)
- [User Interface Literal](#user-interface-literal)
- [Value](#value)
- [Number](#number)
- [List of values](#list-of-values)
- [Query](#query)
- [References to declarations](#references-to-declarations)
- [User Interface Elements](#user-interface-elements)
- [Inside queries](#inside-queries)
- [Constants](#constants-1)
- [Tables](#tables)
- [Databases](#databases)
- [States](#states)
- [Language constructions](#Language-constructions)
- [Comments](#Comments)
- [Language](#Language)
- [Import](#Import)
- [Tag](#Tag)
- [Feature](#Feature)
- [State](#State)
- [Scenario](#Scenario)
- [Constants](#Constants)
- [User Interface Element](#User-Interface-Element)
- [Examples of UI Elements](#Examples-of-UI-Elements)
- [Table](#Table)
- [Database](#Database)
- [Examples of databases](#Examples-of-databases)
- [Variant](#Variant)
- [Test Case](#Test-Case)
- [Test Events](#Test-Events)
- [Literals](#Literals)
- [User Interface Literal](#User-Interface-Literal)
- [Value](#Value)
- [Number](#Number)
- [List of values](#List-of-values)
- [Query](#Query)
- [References to declarations](#References-to-declarations)
- [User Interface Elements](#User-Interface-Elements)
- [Inside queries](#Inside-queries)
- [Constants](#Constants-1)
- [Tables](#Tables)
- [Databases](#Databases)
- [States](#States)


## Language constructions
Expand Down Expand Up @@ -117,6 +117,15 @@ Reserved tags:
- `@fail`: indicates that a Test Case should fail.
- `@global`: defines a [User Interface Element](#user-interface-element) as global. **Yet not available in the tool*
- `@ignore`: whether applied to a Variant, it will not produce Test Cases; whether applied to a Test Case, it will not produce test scripts.
- `@generate-only-valid-values`: avoids that a UI Element's property be used for generating values considered invalid. This is specially useful for using with masked input fields, in which the system does not let a user to type invalid characters on it. For instance:
```concordia
UI Element: Year
- data type is integer
@generate-only-valid-values
- format is "/^[0-9]{1-3}$/"
Otherwise I must see "Year must be a number."
```
The above example will avoid generating invalid input values (*e.g.,*, "A") for testing the format of the Year.

Reserved for future use:
- `@extends( <name> )` allows inheritance of [User Interface Elements](#user-interface-element).
Expand Down
69 changes: 39 additions & 30 deletions docs/pt/language.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,36 @@

## Índice <!-- omit in toc -->

- [Construções da linguagem](#constru%C3%A7%C3%B5es-da-linguagem)
- [Comentários](#coment%C3%A1rios)
- [Language](#language)
- [Importe](#importe)
- [Tag](#tag)
- [Funcionalidade](#funcionalidade)
- [Estado](#estado)
- [Cenário](#cen%C3%A1rio)
- [Constantes](#constantes)
- [Elemento de Interface de Usuário](#elemento-de-interface-de-usu%C3%A1rio)
- [Exemplos de Elementos de IU](#exemplos-de-elementos-de-iu)
- [Tabela](#tabela)
- [Banco de Dados](#banco-de-dados)
- [Exemplos de bancos de dados](#exemplos-de-bancos-de-dados)
- [Variante](#variante)
- [Caso de Teste](#caso-de-teste)
- [Eventos de Teste](#eventos-de-teste)
- [Literais](#literais)
- [Literal de Interface de Usuário](#literal-de-interface-de-usu%C3%A1rio)
- [Valor](#valor)
- [Número](#n%C3%BAmero)
- [Lista de valores](#lista-de-valores)
- [Consulta](#consulta)
- [Referências para declarações](#refer%C3%AAncias-para-declara%C3%A7%C3%B5es)
- [Elementos de Interface de Usuário](#elementos-de-interface-de-usu%C3%A1rio)
- [Em consultas](#em-consultas)
- [Constantes](#constantes-1)
- [Tabelas](#tabelas)
- [Bancos de Dados](#bancos-de-dados)
- [Estados](#estados)
- [Construções da linguagem](#Constru%C3%A7%C3%B5es-da-linguagem)
- [Comentários](#Coment%C3%A1rios)
- [Language](#Language)
- [Importe](#Importe)
- [Tag](#Tag)
- [Funcionalidade](#Funcionalidade)
- [Estado](#Estado)
- [Cenário](#Cen%C3%A1rio)
- [Constantes](#Constantes)
- [Elemento de Interface de Usuário](#Elemento-de-Interface-de-Usu%C3%A1rio)
- [Exemplos de Elementos de IU](#Exemplos-de-Elementos-de-IU)
- [Tabela](#Tabela)
- [Banco de Dados](#Banco-de-Dados)
- [Exemplos de bancos de dados](#Exemplos-de-bancos-de-dados)
- [Variante](#Variante)
- [Caso de Teste](#Caso-de-Teste)
- [Eventos de Teste](#Eventos-de-Teste)
- [Literais](#Literais)
- [Literal de Interface de Usuário](#Literal-de-Interface-de-Usu%C3%A1rio)
- [Valor](#Valor)
- [Número](#N%C3%BAmero)
- [Lista de valores](#Lista-de-valores)
- [Consulta](#Consulta)
- [Referências para declarações](#Refer%C3%AAncias-para-declara%C3%A7%C3%B5es)
- [Elementos de Interface de Usuário](#Elementos-de-Interface-de-Usu%C3%A1rio)
- [Em consultas](#Em-consultas)
- [Constantes](#Constantes-1)
- [Tabelas](#Tabelas)
- [Bancos de Dados](#Bancos-de-Dados)
- [Estados](#Estados)


## Construções da linguagem
Expand Down Expand Up @@ -115,6 +115,15 @@ Tags reservadas:
- `@fail`: indica que um Caso de Teste deve falhar.
- `@global`: define um Elemento de Interface de Usuário como global. *Ainda não disponível na ferramenta.*
- `@ignore`: se aplicada em uma Variante, ela será ignorada para gerar Casos de Teste; se aplicada em um Caso de Teste, ele não produzirá scripts de teste.
- `@generate-only-valid-values`: evita que uma propriedade de um Elemento de IU seja usada para gerar valores considerados inválidos. Útil para uso em campos com máscara de edição, em que o próprio sistema impede que dados inválidos sejam digitados. Por exemplo:
```concordia
Elemento de UI: Ano
- tipo de dado é inteiro
@generate-only-valid-values
- formato é "/^[0-9]{1-3}$/"
Caso contrário, eu devo ver "Ano deve ser um número."
```
O exemplo acima irá evitar gerar valores de entrada incorretos (*e.g.,*, "A") para testar o formato do Ano.

Reservado para uso futuro:
- `@extends( <nome> )` permite herança de Elementos de Interface de Usuário.
Expand Down
105 changes: 39 additions & 66 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,46 +10,45 @@ DISCLAIMER:

Contents:

- [Compiler](#compiler)
- [CLI Options](#cli-options)
- [Filter Features to execute by file name without having to include dependencies](#filter-features-to-execute-by-file-name-without-having-to-include-dependencies)
- [Filter the Feature to execute by its name](#filter-the-feature-to-execute-by-its-name)
- [Filter the Scenario to execute by its name](#filter-the-scenario-to-execute-by-its-name)
- [Filter Test Cases by importance number for test script generation](#filter-test-cases-by-importance-number-for-test-script-generation)
- [Filter Test Cases by importance number for test script execution](#filter-test-cases-by-importance-number-for-test-script-execution)
- [Language Support](#language-support)
- [Support Variant Background](#support-variant-background)
- [Approach](#approach)
- [Generate test cases that explore SQL Injection](#generate-test-cases-that-explore-sql-injection)
- [Add a test case that uses naughty strings as test data](#add-a-test-case-that-uses-naughty-strings-as-test-data)
- [UI and Report](#ui-and-report)
- [Show precessing icons while waiting](#show-precessing-icons-while-waiting)
- [Show percentage being processed](#show-percentage-being-processed)
- [Generate an HTML report](#generate-an-html-report)
- [Tool integration](#tool-integration)
- [Integration with text editors](#integration-with-text-editors)
- [Integration with reporting tools](#integration-with-reporting-tools)
- [Performance](#performance)
- [Do not regenerate tests when a feature file and its dependencies have not changed their hash](#do-not-regenerate-tests-when-a-feature-file-and-its-dependencies-have-not-changed-their-hash)
- [Language](#language)
- [Create a tag to disable invalid data generation for a certain UI Element property](#create-a-tag-to-disable-invalid-data-generation-for-a-certain-ui-element-property)
- [Add language support to represent the current date and time](#add-language-support-to-represent-the-current-date-and-time)
- [Add locale support to date and time types](#add-locale-support-to-date-and-time-types)
- [Add support to visual comparison](#add-support-to-visual-comparison)
- [Accept UI Element properties inside strings of UI Element properties](#accept-ui-element-properties-inside-strings-of-ui-element-properties)
- [Accept UI Element properties inside strings from Variant steps](#accept-ui-element-properties-inside-strings-from-variant-steps)
- [Accept UI Element properties in Variant steps](#accept-ui-element-properties-in-variant-steps)
- [Support dynamic States, produced from UI Element values](#support-dynamic-states-produced-from-ui-element-values)
- [Consider global UI Elements](#consider-global-ui-elements)
- [Allow inheritance of UI Elements](#allow-inheritance-of-ui-elements)
- [Allow table matching](#allow-table-matching)
- [Multi-line queries](#multi-line-queries)
- [Multiple declared Tables per query](#multiple-declared-tables-per-query)
- [Multiple declared Databases per query](#multiple-declared-databases-per-query)
- [Internal](#internal)
- [Security](#security)
- [Sanitize all input file names](#sanitize-all-input-file-names)
- [Use a linter](#use-a-linter)
- [Compiler](#Compiler)
- [CLI Options](#CLI-Options)
- [Filter Features to execute by file name without having to include dependencies](#Filter-Features-to-execute-by-file-name-without-having-to-include-dependencies)
- [Filter the Feature to execute by its name](#Filter-the-Feature-to-execute-by-its-name)
- [Filter the Scenario to execute by its name](#Filter-the-Scenario-to-execute-by-its-name)
- [Filter Test Cases by importance number for test script generation](#Filter-Test-Cases-by-importance-number-for-test-script-generation)
- [Filter Test Cases by importance number for test script execution](#Filter-Test-Cases-by-importance-number-for-test-script-execution)
- [Language Support](#Language-Support)
- [Support Variant Background](#Support-Variant-Background)
- [Approach](#Approach)
- [Generate test cases that explore SQL Injection](#Generate-test-cases-that-explore-SQL-Injection)
- [Add a test case that uses naughty strings as test data](#Add-a-test-case-that-uses-naughty-strings-as-test-data)
- [UI and Report](#UI-and-Report)
- [Show precessing icons while waiting](#Show-precessing-icons-while-waiting)
- [Show percentage being processed](#Show-percentage-being-processed)
- [Generate an HTML report](#Generate-an-HTML-report)
- [Tool integration](#Tool-integration)
- [Integration with text editors](#Integration-with-text-editors)
- [Integration with reporting tools](#Integration-with-reporting-tools)
- [Performance](#Performance)
- [Do not regenerate tests when a feature file and its dependencies have not changed their hash](#Do-not-regenerate-tests-when-a-feature-file-and-its-dependencies-have-not-changed-their-hash)
- [Language](#Language)
- [Add language support to represent the current date and time](#Add-language-support-to-represent-the-current-date-and-time)
- [Add locale support to date and time types](#Add-locale-support-to-date-and-time-types)
- [Add support to visual comparison](#Add-support-to-visual-comparison)
- [Accept UI Element properties inside strings of UI Element properties](#Accept-UI-Element-properties-inside-strings-of-UI-Element-properties)
- [Accept UI Element properties inside strings from Variant steps](#Accept-UI-Element-properties-inside-strings-from-Variant-steps)
- [Accept UI Element properties in Variant steps](#Accept-UI-Element-properties-in-Variant-steps)
- [Support dynamic States, produced from UI Element values](#Support-dynamic-States-produced-from-UI-Element-values)
- [Consider global UI Elements](#Consider-global-UI-Elements)
- [Allow inheritance of UI Elements](#Allow-inheritance-of-UI-Elements)
- [Allow table matching](#Allow-table-matching)
- [Multi-line queries](#Multi-line-queries)
- [Multiple declared Tables per query](#Multiple-declared-Tables-per-query)
- [Multiple declared Databases per query](#Multiple-declared-Databases-per-query)
- [Internal](#Internal)
- [Security](#Security)
- [Sanitize all input file names](#Sanitize-all-input-file-names)
- [Use a linter](#Use-a-linter)


## Compiler
Expand Down Expand Up @@ -147,32 +146,6 @@ Example:

## Language

### Create a tag to disable invalid data generation for a certain UI Element property

This is needed when the User Interface uses a mask and blocks any invalid input value.
In such case, an invalid value is never accepted and the behavior described in a `Otherwise` sentence never happens.

Example:
```concordia
UI Element: Age
- format is "[0-9]{1,3}"
Otherwise I see "Please inform a number"
```

In this case, whether the UI blocks invalid input values, all the test cases that produces them could fail.

Therefore, a tag that indicates that could be used:

Example (`@valid-values-only`):
```concordia
UI Element: Age
@valid-values-only
- format is "[0-9]{1,3}"
Otherwise I see "Please inform a number"
```

This will avoid generating invalid data test cases for the target property.

### Add language support to represent the current date and time

See Issue #40
Expand Down

0 comments on commit 80f905a

Please sign in to comment.