Skip to content
Permalink
Browse files

Update readme files

  • Loading branch information...
thiagodp committed Sep 9, 2019
1 parent e24bec4 commit 3dfbf52649a5c6bae7caf39344f545ae4651a15f
Showing with 32 additions and 18 deletions.
  1. +24 −17 README.md
  2. +8 −1 readme-pt.md
@@ -12,7 +12,7 @@
At a glance:

1. Write agile requirements specifications using the Concordia Language.
1. Write agile requirements specifications in Concordia Language.

2. Use the Concordia Compiler to setup the testing environment for you.

@@ -38,9 +38,9 @@ At a glance:

**Concordia Compiler** generates and executes [functional](https://en.wikipedia.org/wiki/Functional_testing) test cases and test scripts from documents written in *Concordia Language*. It uses [NLP](https://en.wikipedia.org/wiki/Natural_language_processing) and many other techniques in the process.

Both **test cases** and **test scripts** receive *test data* and *test oracles*. You don't have to produce them manually. They are inferred from your specification written with Concordia Language.
Both **test cases** and **test scripts** receive *test data* and *test oracles*. You don't have to produce them manually - they are inferred from your specification.

Concordia Compiler uses [plug-ins](docs/en/plugins.md) to transform abstract test scripts into source code and to setup the test environment for you. Every **plug-in** can generate test scripts for a different programming language and testing framework, for **web**, **mobile**, or **desktop** applications.
Concordia Compiler uses [plug-ins](docs/en/plugins.md) for transforming test cases (`.testcase` files) into test scripts, *i.e.* source code, and for setting the test environment up for you. Every **plug-in** can generate test scripts for a different programming language and testing framework, for **web**, **mobile**, or **desktop** applications.


### Why using it ?
@@ -49,26 +49,26 @@ Concordia Compiler uses [plug-ins](docs/en/plugins.md) to transform abstract tes

2. Separate high-level, business language declarations from medium-low-level, computing language declarations, **improving the communication** between your team, customers, and other stakeholders. Thus, you can **use a same document** to discuss features with stakeholders, analysts, testers, and developers, and facilitate the adoption of [BDD](https://en.wikipedia.org/wiki/Behavior-driven_development)/[ATDD](https://en.wikipedia.org/wiki/Acceptance_test%E2%80%93driven_development)/[SbE](https://en.wikipedia.org/wiki/Specification_by_example).

3. Make **your specifications more useful**. Get automated functional tests from them easily and **drive your development covered by tests**.
3. Make **your specifications more useful**. Get automated functional tests from your specification easily and **drive your development covered by tests**.

4. **Add test automation to new or legacy applications** without having to code.
4. **Add test automation to new or legacy applications** without having to write code.

5. Generate **relevant test cases and test scripts** in a few milliseconds. Get tests that adopt techniques such as [equivalence partitioning](https://en.wikipedia.org/wiki/Equivalence_partitioning), [boundary value analysis](https://en.wikipedia.org/wiki/Boundary-value_analysis), [combinatorial testing](https://en.wikipedia.org/wiki/All-pairs_testing) (*n-wise*), and [random testing](https://en.wikipedia.org/wiki/Random_testing) without having to think about (and invest your time in) them all.

6. **Reduce the need of writing negative scenarios** (those scenarios that handle incorrect or invalid input) by describing system rules of user interface elements. Concordia lets you to describe complex, dynamic system rules.
6. **Reduce the need of writing negative scenarios** (those scenarios that handle incorrect or invalid input) by describing system rules of user interface elements. Concordia supports complex, dynamic system rules.

7. Create rules with data from **files or databases** and Concordia will use them in the produced test cases.
7. Create rules with data from **files or databases** and Concordia will use them for producing the test cases.

8. **Track your specification** from the produced test cases and test scripts. They receive special line comments that refer to the specification and adopted testing techniques.
8. **Track your specification** from the produced test cases and test scripts. They receive special line (code) comments that refer to the specification and the adopted testing techniques.

9. **Add test cases without coding**. Write them with Concordia and let the compiler convert them into code.
9. **Add test cases without coding**. Write them with Concordia and let the compiler convert them into source code.

10. Use a **plain text** specification that is version control-friendly and can evolve with your application.
10. Use a **plain text** requirements specification that is version control-friendly and can evolve with your application.


## Installation

Concordia Compiler works on **Windows**, **Linux**, and **MacOS**, and requires [NodeJS](https://nodejs.org/) version `8` or above. If you want to test *web-based* applications, you also need to install [Java Runtime Environment (JRE)](http://www.oracle.com/technetwork/java/javase/downloads/index.html).
Concordia Compiler works on **Windows**, **Linux**, and **MacOS**, and requires [NodeJS](https://nodejs.org/) version `8` or above. If you want to test *web-based* applications, you also need to install [Java Runtime Environment (JRE)](http://www.oracle.com/technetwork/java/javase/downloads/index.html).

After installing the dependencies, open the console/terminal to execute the installation command.

@@ -111,7 +111,7 @@ npx concordia --version

## Getting Started

Let's create a basic, "hello world"-like example. To execute its tests, you will need an Internet connection and the [Google Chrome](https://www.google.com/chrome/) web browser installed.
Let's create a basic, "hello world"-like example. In order to run its tests, you will need an Internet connection and the [Google Chrome](https://www.google.com/chrome/) web browser installed.

**Step 1: *Create a directory***

@@ -122,7 +122,7 @@ mkdir search
cd search
```

> 💬 *Quick Tip*: If you are using Windows, you may also to create a empty folder using Windows Explorer, access it, and then type `cmd` in the address bar.
> 💬 *Quick Tip*: If you are using Windows, you may create a empty folder using Windows Explorer, open it, and then type `cmd` in the address bar.
**Step 2: *Configure***

@@ -131,15 +131,15 @@ Execute the following command to guide the setup process:
```bash
concordia --init
```
👉 On **Linux** or **MacOS** you may need to use `sudo` before the command whether your **NodeJS' version is less than `8.2`** or you are using Concordia `0.x`.
👉 On **Linux** or **MacOS** you may need to use `sudo` before the command, whether your **NodeJS' version is less than `8.2`** or you are using Concordia `0.x`.

You'll be asked about your preferences and they will be stored in a configuration file named `.concordiarc`. **LET ALL THE DEFAULT VALUES**, by typing <kbd>Enter</kbd> for all the questions.

Plug-ins will also be installed during the process. If you want to install them *manually*, please take a look at the [plugins page](./docs/en/plugins.md).

**Step 3: *Start the test server***

Test automation tools often use a test server to control a *browser*, a *device emulator* or a *real device*. So, first you start a test server, then you run all your tests.
Test automation tools often use a test server to control a *web browser*, a *device emulator* or a *real device*. So, first you start a test server, then you run all the test scripts.

Since **a test server usually blocks** the current terminal/console, **open a new terminal/console**.

@@ -185,7 +185,7 @@ Scenario: Search returns the expected result
Then I see "npm"
```

In the example above, the Feature and the Scenario are high level descriptions about the problem, without relation with the technology used to solve it. On the other hand, the Variant describes an expectation of interaction with application's user interface (which includes technological vocabulary) to perform a Scenario. Only the Variant is transformed into one or more Test Cases (depending on its content). In the example, a Google search was used instead of a real application.
Feature and Scenario are high-level, business-focused descriptions about the problem to solve. A Variant describes the expected interaction with the application's user interface in order to perform a Scenario. Thus, a Variant uses a more technological vocabulary.

> 👉 In Concordia, all the interactions with the application's user interface use first person singular ("I"). That "I" represents the actor that is interacting with the application (in the example above, a *visitor*).
@@ -198,7 +198,14 @@ concordia

*Congratulations!*

Concordia Compiler will generate some files, setup the environment, and then **generate and execute test scripts**. Your browser should open automatically during this process and the console will show the execution results.
Concordia Compiler will:
- setup the testing environment;
- generate a test case;
- transform the test case into a test script;
- execute the test script; and
- report the test script result.

Your browser should open automatically during this process and the console will show the execution results.

**Some generated files:**

@@ -201,7 +201,14 @@ concordia

*Parabéns!*

O Compilador Concordia irá gerar alguns arquivos, configurar o ambiente, então **gerar e executar os scripts de teste**. Seu navegador deverá abrir automaticamente durante o processo e o terminal mostrará o resultado da execução do teste.
O Compilador Concordia irá
- configurar o ambiente de teste;
- gerar um caso de teste;
- transformar o caso de teste em script de teste;
- executar o script de teste; e
- reportar o resultado da execução.

Seu navegador deverá abrir automaticamente durante o processo e o terminal mostrará o resultado da execução do teste.

**Alguns arquivos gerados:**

0 comments on commit 3dfbf52

Please sign in to comment.
You can’t perform that action at this time.