Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request #104 from cetic/feature/testsDOC
Browse files Browse the repository at this point in the history
Feature/tests doc
  • Loading branch information
fzalila authored Feb 20, 2020
2 parents d2b9c04 + 649eace commit 239216a
Show file tree
Hide file tree
Showing 30 changed files with 3,803 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Automated tests
This repository contains materials to define functional test cases and to run functional tests of FADI platform.

Test cases specification using cockburns[1] is available [here](doc/Cockburns-specification.md).

Test scripts specification is available [here](doc/Test-scripts-specifications.md).


## Defining a new test case

Two templates are available in order to define a new [test case](doc/cockburns/TC-template.md) and a new [test script](doc/test-scripts/TS-template.md).

## Running a single test
Explain how to run a single test.

```bash
Give an example
```

## Running an end-to-end test
Explain how to run an end-to-end test.

```bash
Give an example
```
## References
[1] Alistair Cockburn. 2000. Writing Effective Use Cases (1st. ed.). Addison-Wesley Longman Publishing Co., Inc., USA.
310 changes: 310 additions & 0 deletions tests/doc/Cockburns-specification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
# General definitions

In this section, the main concepts and technologies are introduced in order to ease the understanding of the different test use cases.



* **FADI platform** is a Cloud Native platform for Big Data based on mature open source tools. The FADI project is dedicated to making the deployment of Big Data tools simple, portable and scalable. The goal is to provide a straightforward way to deploy open-source systems for Big Data to various infrastructures (private and public clouds).
* **FADI dashboard** is actually the Kubernetes dashboard that enables to have an idea about the status of the Kubernetes pods by launching the command “minikube dashboard”.
* **Apache Nifi** is an open source tool designed to automate the flow of data between software systems. It used in the FADI platform in order to collect data, to extract it, to transform it and to store it in the appropriate data store.
* **PostgreSQL** is an open source relational database management system and it is used to store the data in the FADI platform.
* **PgAdmin** is an open source graphical administration tool for PostgreSQL databases. It is used in FADI in order to ease the management of the PostgreSQL databases.
* **Grafana** is an open source tool enabling the visualization and the formatting of metrics data coming from different type of databases. It can play the role of the FADI dashboard.
* **Apache Superset** is an open source tool to visualize big data and it can play the role of th FADI dashboard.
* **Spark** is an open source analytics engine for large-scale data processing. It is used in the FADI platform to analyse data.
* **Jupyter** is a notebook that provides an easy interface to the Spark processing engine that runs on your cluster. It is used in the FADI platform to enable the use of Spark and explore data.


# Abbreviations list


<table>
<tr>
<td>Abbreviation
</td>
<td>Meaning
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
</tr>
</table>



# Actors


<table>
<tr>
<td>The client side
</td>
<td>
<ul>

<li><strong>Operator (</strong>Fraiseur/responsable de maintenance)<strong> (co)</strong>: operator on machine. He must understand information given by analysis dashboards to achieve his work.

<li><strong>Factory Leader (cfl)</strong>:<strong> </strong>he manages the factory (Tenant) and the Operators.

<li><strong>Business Analyst (cba)</strong>: he builds BI analysis dashboard based on the data warehouse.

<li><strong>Business Leader (cbl)</strong>: He manages the business of the factory (Tenant) and the Business Analysts.

<li><strong>Data Scientist (cds)</strong>: he defines algorithms to analyse data for trends identification. He defines the data warehouse structure and content.

<li><strong>Data Engineer (cde)</strong>: he configures the resources the Data Scientist needs and the ingestion process from the factories to the datalake.

<li><strong>Tenant Admin (cta)</strong>: it is the user in charge of the Tenant.
</li>
</ul>
</td>
</tr>
<tr>
<td>The backend side
</td>
<td>
<ul>

<li><strong>Platform Admin (hpa)</strong>: he manages tenants.

<li><strong>System Admin (hsa)</strong>: he installs and maintains the platform.

<li><strong>Stakeholders (hs)</strong>: board of directors.

<li><strong>ICT manager (hm)</strong>: he manages the project, the Platform Admin and the System Admin.
</li>
</ul>
</td>
</tr>
</table>



# Test case list


<table>
<tr>
<td><strong>Test case ID</strong>
</td>
<td><strong>Test case name</strong>
</td>
<td><strong>Primary Actor</strong>
</td>
<td><strong>Scope</strong>
</td>
</tr>
<tr>
<td>TC-1
</td>
<td><a href="./cockburns/TC-1.md">Authentication to a given tool via LDAP</a>
</td>
<td>all actors
</td>
<td>Authentication
</td>
</tr>
<tr>
<td>TC-2
</td>
<td><a href="./cockburns/TC-2.md">Access to the FADI dashboard</a>
</td>
<td>Platform Admin, System Admin, Stakeholders, ICT manager
</td>
<td>IHM
</td>
</tr>
<tr>
<td>TC-3
</td>
<td><a href="./cockburns/TC-3.md">Defining the Nifi workflow</a>
</td>
<td>Data Scientist, Data Engineer
</td>
<td>Data ingestion
</td>
</tr>
<tr>
<td><a href="https://github.com/cetic/fadi/blob/feature/tests/tests/__tests__/1-nifi.test.js" title="TC-4">TC-4</a>
</td>
<td><a href="./cockburns/TC-4.md">Defining the Nifi workflow by uploading a template</a>
</td>
<td>Data Scientist, Data Engineer
</td>
<td>Data ingestion
</td>
</tr>
<tr>
<td>TC-5
</td>
<td><a href="./cockburns/TC-5.md">Creating a database server in pgAdmin</a>
</td>
<td>Data Engineer
</td>
<td>Data storage
</td>
</tr>
<tr>
<td>TC-6
</td>
<td><a href="./cockburns/TC-6.md">Creating a table in pgAdmin</a>
</td>
<td>Data Engineer
</td>
<td>Data storage
</td>
</tr>
<tr>
<td>TC-7
</td>
<td><a href="./cockburns/TC-7.md">Deleting a table in pgAdmin</a>
</td>
<td>Data Engineer
</td>
<td>Data storage
</td>
</tr>
<tr>
<td>TC-8
</td>
<td><a href="./cockburns/TC-8.md">Deleting a database in pgAdmin</a>
</td>
<td>Data Engineer
</td>
<td>Data storage
</td>
</tr>
<tr>
<td>TC-9
</td>
<td><a href="./cockburns/TC-9.md">Inserting data in a given table</a>
</td>
<td>Data Engineer
</td>
<td>Data storage
</td>
</tr>
<tr>
<td>TC-10
</td>
<td><a href="./cockburns/TC-10.md">Configuring a data source in the Grafana dashboard</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-11
</td>
<td><a href="./cockburns/TC-11.md">Defining dashboards based on the analyzed data using Grafana</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-12
</td>
<td><a href="./cockburns/TC-12.md">Defining alerts using Grafana</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-13
</td>
<td><a href="./cockburns/TC-13.md">Configuring a database in Superset</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-14
</td>
<td><a href="./cockburns/TC-14.md">Configuring a table in Superset</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-15
</td>
<td><a href="./cockburns/TC-15.md">Creating a chart in Superset</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-16
</td>
<td><a href="./cockburns/TC-16.md">Saving a dashboard in Superset</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-17
</td>
<td><a href="./cockburns/TC-17.md">Preparing reports using Superset</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-18
</td>
<td><a href="./cockburns/TC-18.md">Loading data in Jupyter</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-19
</td>
<td><a href="./cockburns/TC-19.md">Analyzing data using Jupyter</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Data processing
</td>
</tr>
<tr>
<td>TC-20
</td>
<td><a href="./cockburns/TC-20.md">Loading data in Spark</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Exploring and displaying data
</td>
</tr>
<tr>
<td>TC-21
</td>
<td><a href="./cockburns/TC-21.md">Analyzing data using Spark</a>
</td>
<td>Business Analyst, Business Leader
</td>
<td>Data processing
</td>
</tr>
</table>
5 changes: 5 additions & 0 deletions tests/doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Test specification

Test cases specification using cockburns is available [here](./Cockburns-specification.md).

Test scripts specification is available [here](./Test-scripts-specifications.md).
Loading

0 comments on commit 239216a

Please sign in to comment.