diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..67673a0 --- /dev/null +++ b/tests/README.md @@ -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. diff --git a/tests/doc/Cockburns-specification.md b/tests/doc/Cockburns-specification.md new file mode 100644 index 0000000..bdbe423 --- /dev/null +++ b/tests/doc/Cockburns-specification.md @@ -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 + + + + + + + + + + + +
Abbreviation + Meaning +
+ +
+ + + +# Actors + + + + + + + + + + + +
The client side + +
    + +
  • Operator (Fraiseur/responsable de maintenance) (co): operator on machine. He must understand information given by analysis dashboards to achieve his work. + +
  • Factory Leader (cfl): he manages the factory (Tenant) and the Operators. + +
  • Business Analyst (cba): he builds BI analysis dashboard based on the data warehouse. + +
  • Business Leader (cbl): He manages the business of the factory (Tenant) and the Business Analysts. + +
  • Data Scientist (cds): he defines algorithms to analyse data for trends identification. He defines the data warehouse structure and content. + +
  • Data Engineer (cde): he configures the resources the Data Scientist needs and the ingestion process from the factories to the datalake. + +
  • Tenant Admin (cta): it is the user in charge of the Tenant. +
  • +
+
The backend side + +
    + +
  • Platform Admin (hpa): he manages tenants. + +
  • System Admin (hsa): he installs and maintains the platform. + +
  • Stakeholders (hs): board of directors. + +
  • ICT manager (hm): he manages the project, the Platform Admin and the System Admin. +
  • +
+
+ + + +# Test case list + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Test case ID + Test case name + Primary Actor + Scope +
TC-1 + Authentication to a given tool via LDAP + all actors + Authentication +
TC-2 + Access to the FADI dashboard + Platform Admin, System Admin, Stakeholders, ICT manager + IHM +
TC-3 + Defining the Nifi workflow + Data Scientist, Data Engineer + Data ingestion +
TC-4 + Defining the Nifi workflow by uploading a template + Data Scientist, Data Engineer + Data ingestion +
TC-5 + Creating a database server in pgAdmin + Data Engineer + Data storage +
TC-6 + Creating a table in pgAdmin + Data Engineer + Data storage +
TC-7 + Deleting a table in pgAdmin + Data Engineer + Data storage +
TC-8 + Deleting a database in pgAdmin + Data Engineer + Data storage +
TC-9 + Inserting data in a given table + Data Engineer + Data storage +
TC-10 + Configuring a data source in the Grafana dashboard + Business Analyst, Business Leader + Exploring and displaying data +
TC-11 + Defining dashboards based on the analyzed data using Grafana + Business Analyst, Business Leader + Exploring and displaying data +
TC-12 + Defining alerts using Grafana + Business Analyst, Business Leader + Exploring and displaying data +
TC-13 + Configuring a database in Superset + Business Analyst, Business Leader + Exploring and displaying data +
TC-14 + Configuring a table in Superset + Business Analyst, Business Leader + Exploring and displaying data +
TC-15 + Creating a chart in Superset + Business Analyst, Business Leader + Exploring and displaying data +
TC-16 + Saving a dashboard in Superset + Business Analyst, Business Leader + Exploring and displaying data +
TC-17 + Preparing reports using Superset + Business Analyst, Business Leader + Exploring and displaying data +
TC-18 + Loading data in Jupyter + Business Analyst, Business Leader + Exploring and displaying data +
TC-19 + Analyzing data using Jupyter + Business Analyst, Business Leader + Data processing +
TC-20 + Loading data in Spark + Business Analyst, Business Leader + Exploring and displaying data +
TC-21 + Analyzing data using Spark + Business Analyst, Business Leader + Data processing +
diff --git a/tests/doc/README.md b/tests/doc/README.md new file mode 100644 index 0000000..580439c --- /dev/null +++ b/tests/doc/README.md @@ -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). diff --git a/tests/doc/Test-scripts-specifications.md b/tests/doc/Test-scripts-specifications.md new file mode 100644 index 0000000..9699175 --- /dev/null +++ b/tests/doc/Test-scripts-specifications.md @@ -0,0 +1,113 @@ +# Actors abbreviations list + + + + + + + + + + + + + +
Abbreviation + Meaning +
JEST + The test runner +
PUP + The API controlling operations on Google Chrome +
+ +# Description of the content of the table + + + + + + + + + + + + + + + + + + + + + + + + + +
Column + Meaning +
Test script ID + The identifier of the test script +
Test script name + The name of the test script +
Actions + The action(s) to do for testing an assertion +
Assertion + Test to do once the actions have been realized +
Comment + Issues found / comment +
+ +# Test scripts list + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Test script ID + Related use case + Test script name + Primary Actor + Scope +
TS-4 + TC-4 + Defining the Nifi workflow by uploading a template + Data Scientist, Data Engineer + Data ingestion +
TS-11 + TC-11 + Defining dashboards based on the analyzed data using Grafana + Business Analyst, Business Leader + Exploring and displaying data +
TS-15 + TC-15 + Creating a chart in Superset + Business Analyst, Business Leader + Exploring and displaying data +
diff --git a/tests/doc/cockburns/TC-1.md b/tests/doc/cockburns/TC-1.md new file mode 100644 index 0000000..c9cbfa5 --- /dev/null +++ b/tests/doc/cockburns/TC-1.md @@ -0,0 +1,110 @@ +## TC-1:Authentication to a given tool via LDAP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-1 +
Use case name + Authentication to a given tool via LDAP +
Actors + +
    + +
  • All actors +
  • +
+
Trigger + The actor wants to use one service of the FADI platform for the first time +
Short Description + This use case denotes the process of the authentication to the FADI platform. +
Pre-Conditions + +
    + +
  • The actor credentials should exist in the LDAP repository + +
  • The FADI platform is already installed + +
  • The actor already knows the URL address of the desired service (e.g grafana, pgAdmin, etc.) +
  • +
+
Post-Conditions + +
    + +
  • The actor is authenticated +
  • +
+
Steps + 1 + The actor access to a given service via its URL address +
2 + The actor enter his/her credentials +
3 + The actor is authenticated +
Exceptions + +
    + +
  • The actor credentials does’t not exist in the LDAP repository + +
  • The actor makes an error when entering his/her credentials +
  • +
+
Frequency + +
    + +
  • Every time the use is not logged-in in the FADI platform +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-10.md b/tests/doc/cockburns/TC-10.md new file mode 100644 index 0000000..0006fba --- /dev/null +++ b/tests/doc/cockburns/TC-10.md @@ -0,0 +1,146 @@ +## TC-10: Configuring a data source in the Grafana dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-10 +
Use case name + Configuring a data source in the Grafana dashboard +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualizing results coming from a new database + +
  • Connecting Grafana to a database +
  • +
+
Short Description + The FADI platform enables to visualize data and results in various types of dashboards (e.g. curves, heatmaps, etc.) either by directly querying the databases or by collecting stream data. +

+In this use case, the Grafana tool will be used and the way to connect this tool to a database is defined. +

Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Grafana service + +
  • The actor knows the credentials to connect to the Grafana service + +
  • The actor knows the required credentials to connect to the database (i.e. host, database, user, password, SSL mode, Version) +
  • +
+
Post-Conditions + +
    + +
  • The Grafana tool is connected to the database +
  • +
+
Steps + 1 + Access to the Grafana service +
2 + Authenticate to the Grafana service +
3 + Add a data source and choose the type “PostgreSQL” +
4 + Configure the following elements: +
    + +
  • Host: fadi-postgresql:5432 + +
  • database: postgres + +
  • user: admin + +
  • password: password1 + +
  • SSL Mode: disable + +
  • Version: 10 +
  • +
+
5 + Check that the database is correctly created +
Exceptions + +
    + +
  • An error in the credentials +
  • +
+
Frequency + +
    + +
  • Every time a new database should be connected to the Grafana tool +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-11.md b/tests/doc/cockburns/TC-11.md new file mode 100644 index 0000000..765a9b5 --- /dev/null +++ b/tests/doc/cockburns/TC-11.md @@ -0,0 +1,151 @@ +## TC-11: Defining dashboards based on the analyzed data using Grafana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-11 +
Use case name + Defining dashboards based on the analyzed data using Grafana +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualizing results in dashboards + +
  • Realizing a global overview about the results +
  • +
+
Short Description + The FADI platform enables to visualize data and results in various types of dashboards (e.g. curves, heatmaps, etc.) either by directly querying the databases or by collecting stream data. +

+In this use case, the Grafana tool will be used. +

Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Grafana service + +
  • The actor knows the credentials to connect to the Grafana service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) +
  • +
+
Post-Conditions + +
    + +
  • The actor visualizes dashboards +
  • +
+
Steps + 1 + Access to the Grafana service +
2 + Authenticate to the Grafana service +
3 + Choose the source of data +
4 + Edit a new dashboard +
5 + Select the type of a dashboard from the Visualization dropdown list (e.g. graph, heatmap, etc.) +
6 + Edit the query +
7 + Configure the time frame (if needed) +
+ 8 + Press on the Query inspector button to execute the query and visualize the dashboard +
Exceptions + +
    + +
  • An error in the query +
  • +
+
Frequency + +
    + +
  • Every time the actor wants to visualize his/her results +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-12.md b/tests/doc/cockburns/TC-12.md new file mode 100644 index 0000000..c563392 --- /dev/null +++ b/tests/doc/cockburns/TC-12.md @@ -0,0 +1,183 @@ +## TC-12: Defining alerts using Grafana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-12 +
Use case name + Defining alerts using Grafana +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Controlling visualized data + +
  • Detecting anomalies +
  • +
+
Short Description + The FADI platform enables to visualize data and results in various types of dashboards (e.g. curves, heatmaps, etc.). In addition, it allows users to define alerts and rules in order to automatically detect misbehaviours, anomalies and errors when analyzing data. +

+In this use case, the Grafana tool will be used +

Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Grafana service + +
  • The actor knows the credentials to connect to the Grafana service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) +
  • +
+
Post-Conditions + +
    + +
  • The actor visualizes the defined alert +
  • +
+
Steps + 1 + Access to the Grafana service +
2 + Authenticate to the Grafana service +
3 + Add a data source and choose the type “PostgreSQL” +
4 + Configure the following elements: +
    + +
  • Host: fadi-postgresql:5432 + +
  • database: postgres + +
  • user: admin + +
  • password: password1 + +
  • SSL Mode: disable + +
  • Version: 10 +
  • +
+
5 + Edit a new dashboard +
6 + Select the type of a dashboard from the Visualization dropdown list (e.g. graph, heatmap, etc.) +
7 + Configure the query +
8 + Configure the time frame (if needed) +
9 + Press on the Query inspector button to execute the query and visualize the dashboard +
10 + Go to the “Alert” tab +
11 + Create a new alert by specifying the alert threshold +
12 + Visualize the alert in the dashboard +
Exceptions + N/A +
Frequency + +
    + +
  • Every time the actor wants to defines alerts +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-13.md b/tests/doc/cockburns/TC-13.md new file mode 100644 index 0000000..9a4fd92 --- /dev/null +++ b/tests/doc/cockburns/TC-13.md @@ -0,0 +1,127 @@ +## TC-13: Configuring a database in Superset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-13 +
Use case name + Configuring a database in Superset +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualize results coming from a new database + +
  • Visualize results for the first time +
  • +
+
Short Description + The FADI platform enables to visualize the results of the data analysis and to export these results in reports. In this context, the Superset tool is used. The first thing to do is to link Superset to a data source. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Superset service + +
  • The actor knows the credentials to connect to the Superset service + +
  • The actor knows the credentials of the database (i.e. the database name, SQLAlchemy URI) +
  • +
+
Post-Conditions + +
    + +
  • The database is linked to the Superset +
  • +
+
Steps + 1 + Access to the Superset service +
2 + Authenticate to the Superset service +
3 + Create a new database by entering the following information: +

+the Database and the SQLAlchemy URI +

4 + Confirm the creation by clicking on the “Test Connection” button to check the connection to the database +
Exceptions + +
    + +
  • Error in the entered information + +
  • The connection to the database failed +
  • +
+
Frequency + +
    + +
  • Every time an actor wants to visualize data coming from a database which is not connected to Superset +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-14.md b/tests/doc/cockburns/TC-14.md new file mode 100644 index 0000000..45750ef --- /dev/null +++ b/tests/doc/cockburns/TC-14.md @@ -0,0 +1,143 @@ +## TC-14: Configuring a table in Superset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-14 +
Use case name + Configuring a table in Superset +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualize results coming from a new table + +
  • Visualize results for the first time +
  • +
+
Short Description + The FADI platform enables to visualize the results of the data analysis and to export these results in reports. In this context, the Superset tool is used to configure a table in a given database. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Superset service + +
  • The actor knows the credentials to connect to the Superset service + +
  • The actor knows the schema of the database + +
  • The actor knows the name of the table +
  • +
+
Post-Conditions + +
    + +
  • The table is configured +
  • +
+
Steps + 1 + Access to the Superset service +
2 + Authenticate to the Superset service +
3 + Create a new table by editing the following information: the database name and the table name +
4 + Save the edited values +
5 + Edit the columns of the created table by +
6 + Save the edited information +
7 + Check that the table and the columns are correctly configured +
Exceptions + +
    + +
  • Error in the entered information +
  • +
+
Frequency + +
    + +
  • Every time an actor wants to visualize data coming from a given table +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-15.md b/tests/doc/cockburns/TC-15.md new file mode 100644 index 0000000..f4b938c --- /dev/null +++ b/tests/doc/cockburns/TC-15.md @@ -0,0 +1,161 @@ +## TC-15: Creating a chart in Superset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-15 +
Use case name + Creating a chart in Superset +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualize results in a chart +
  • +
+
Short Description + The FADI platform enables to visualize the results of the data analysis and to export these results in reports. In this use case, the Superset tool is used to create a chart in order to visualize the results. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Superset service + +
  • The actor knows the credentials to connect to the Superset service + +
  • The actor knows the schema of the database +
  • +
+
Post-Conditions + +
    + +
  • A chart is created +
  • +
+
Steps + 1 + Access to the Superset service +
2 + Authenticate to the Superset service +
3 + On the top menu, click on “Chart” +
4 + Add a new record +
5 + Choose the datasource +
6 + Choose the visualization type +
7 + Click “Create new chart” +
8 + Configure the chart by defining the time requirements and the query +
9 + Click “Run query” to fetch the data from the database +
10 + Check the chart is correctly created +
Exceptions + +
    + +
  • Error during the authentication + +
  • Error in the edited information + +
  • Error in the query +
  • +
+
Frequency + +
    + +
  • Every time the user wants to create a chart +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-16.md b/tests/doc/cockburns/TC-16.md new file mode 100644 index 0000000..3f8772a --- /dev/null +++ b/tests/doc/cockburns/TC-16.md @@ -0,0 +1,144 @@ +## TC-16: Saving a dashboard in Superset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-16 +
Use case name + Saving a dashboard in Superset +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Save a new dashboard + +
  • Save a dashboard after a modification +
  • +
+
Short Description + The FADI platform enables to visualize the results of the data analysis and to export these results in reports. In this use case, the Superset tool is used to create and save a dashboard. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Superset service + +
  • The actor knows the credentials to connect to the Superset service + +
  • The actor knows the schema of the database +
  • +
+
Post-Conditions + +
    + +
  • The dashboard is saved +
  • +
+
Steps + 1 + Access to the Superset service +
2 + Authenticate to the Superset service +
3 + Create/modify a dashboard +
4 + Click on “save” and edit the following information +
    + +
  • Save as: Basic example + +
  • Add to new dashboard: Basic example dashboard +
  • +
+
5 + Click on Save & go to dashboard. +
6 + Visualize the saved dashboard +
Exceptions + +
    + +
  • Error during the authentication + +
  • Error editing the information +
  • +
+
Frequency + +
    + +
  • Every time the user creates or modifies a chart +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-17.md b/tests/doc/cockburns/TC-17.md new file mode 100644 index 0000000..3796ece --- /dev/null +++ b/tests/doc/cockburns/TC-17.md @@ -0,0 +1,141 @@ +## TC-17: Preparing reports using Superet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-17 +
Use case name + Preparing reports using Superset +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Visualize and report the results +
  • +
+
Short Description + The FADI platform enables to visualize the results of the data analysis and to export these results in reports. In this context, the Superset tool is used. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Superset service + +
  • The actor knows the credentials to connect to the Superset service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) +
  • +
+
Post-Conditions + +
    + +
  • A report is generated +
  • +
+
Steps + 1 + Access to the Superset service +
2 + Authenticate to the Superset service +
3 + Create a new database +
4 + Create a new table in the database +
5 + Create and configure a new chart by using the created database and table +
6 + Visualize the resulted chart +
7 + Export the resulted chard in a report +
Exceptions + +
    + +
  • Error when creating the database + +
  • Error when creating the table +
  • +
+
Frequency + +
    + +
  • Every time an actor wants to visualize data and export results in reports +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-18.md b/tests/doc/cockburns/TC-18.md new file mode 100644 index 0000000..f11b5e9 --- /dev/null +++ b/tests/doc/cockburns/TC-18.md @@ -0,0 +1,133 @@ +## TC-18: Loading data in Jupyter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-18 +
Use case name + Loading data in Jupyter +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Using data for the first time + +
  • Having a new database +
  • +
+
Short Description + The FADI platform enables to process analysis techniques on the collected data. It provides to do simple analysis using the Jupyter tool. In this use case, the loading of the scripts is checked. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Jupyter service + +
  • The actor know the credentials to connect to the Jupyter service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) + +
  • The actor possesses the two code scripts to upload +
  • +
+
Post-Conditions + +
    + +
  • Data is loaded +
  • +
+
Steps + 1 + Access to the Jupyter service +
2 + Authenticate to the Jupyter service +
3 + Choose the “Minimal environment” option and click on “Spawn” +
4 + Import the script(s) +
5 + Check that the script is correctly loaded +
Exceptions + +
    + +
  • The connection to the database fails + +
  • The authentication fails +
  • +
+
Frequency + +
    + +
  • Everytime the user wants to load scripts in Jupyter +
  • +
+
diff --git a/tests/doc/cockburns/TC-19.md b/tests/doc/cockburns/TC-19.md new file mode 100644 index 0000000..8c37e0d --- /dev/null +++ b/tests/doc/cockburns/TC-19.md @@ -0,0 +1,137 @@ +## TC-19: Analyzing data using Jupyter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-19 +
Use case name + Analyzing data using Jupyter +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • The actor wants to analyse data +
  • +
+
Short Description + The FADI platform enables to process analysis techniques on the collected data. It provides to do simple analysis using the Jupyter tool. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Jupyter service + +
  • The actor know the credentials to connect to the Jupyter service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) + +
  • The actor possesses the two code scripts to upload +
  • +
+
Post-Conditions + +
    + +
  • The data is analyzed +
  • +
+
Steps + 1 + Access to the Jupyter service +
2 + Authenticate to the Jupyter service +
3 + In the option “Minimal environment”, go the “Files” tab +
4 + Select the loaded script (i.e. module) +
5 + Run the scripts to configure the connection to the database and visualize temperature curve as function of date +
6 + Check that the scripts are executed with success +
Exceptions + +
    + +
  • The connection to the database fails + +
  • The authentication fails +
  • +
+
Frequency + +
    + +
  • Everytime the user wants to process analysis on data +
  • +
+
diff --git a/tests/doc/cockburns/TC-2.md b/tests/doc/cockburns/TC-2.md new file mode 100644 index 0000000..d04c229 --- /dev/null +++ b/tests/doc/cockburns/TC-2.md @@ -0,0 +1,118 @@ +## TC-2: Access to the FADI dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-2 +
Use case name + Access to the FADI dashboard +
Actors + +
    + +
  • Platform Admin + +
  • System Admin + +
  • Stakeholders + +
  • ICT manager +
  • +
+
Trigger + +
    + +
  • Check the state of a given pod + +
  • Check the installation of the FADI framework +
  • +
+
Short Description + The dashboard of FADI enables the actor to access to a web interface in order to check the status of the installed services (called also pods). +
Pre-Conditions + +
    + +
  • The FADI is already installed + +
  • The actor knows the namespace of FADI (e.g. fadi) +
  • +
+
Post-Conditions + +
    + +
  • The actor checks the status of a service +
  • +
+
Steps + 1 + Access to the dashboard of FADI platform +
2 + Select the appropriate dashboard +
3 + Check if there is some dashboards and information about the installed services +
Exceptions + +
    + +
  • The actor does not find the service +
  • +
+
Frequency + +
    + +
  • Everytime an actor wants to check the status of a given service +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-20.md b/tests/doc/cockburns/TC-20.md new file mode 100644 index 0000000..b482798 --- /dev/null +++ b/tests/doc/cockburns/TC-20.md @@ -0,0 +1,133 @@ +## TC-20: Loading data in Spark + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-20 +
Use case name + Loading data in Spark +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • Using data for the first time + +
  • Having a new database +
  • +
+
Short Description + The FADI platform enables to process analysis techniques on the collected data. It provides to do complex analysis using the Spark tool. In this use case, the script loading is described. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Spark service + +
  • The actor know the credentials to connect to the Spark service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) + +
  • The actor possesses the scripts to upload +
  • +
+
Post-Conditions + +
    + +
  • The data is analyzed +
  • +
+
Steps + 1 + Access to the Spark service +
2 + Authenticate to the Spark service +
3 + Choose the option “Spark environment” and Click the “Spawn” button +
4 + Upload the code script to explore Spark +
5 + Check that script is correctly uploaded +
Exceptions + +
    + +
  • The connection to the database fails + +
  • The authentication fails +
  • +
+
Frequency + +
    + +
  • Everytime the user wants to load scripts in Spark +
  • +
+
diff --git a/tests/doc/cockburns/TC-21.md b/tests/doc/cockburns/TC-21.md new file mode 100644 index 0000000..a95bb45 --- /dev/null +++ b/tests/doc/cockburns/TC-21.md @@ -0,0 +1,131 @@ +## TC-21: Analyzing data using Spark + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-21 +
Use case name + Analyzing data using Spark +
Actors + +
    + +
  • Business Analyst + +
  • Business Leader +
  • +
+
Trigger + +
    + +
  • The actor wants to analyse data +
  • +
+
Short Description + The FADI platform enables to process analysis techniques on the collected data. It provides to do complex analysis using the Spark tool. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Spark service + +
  • The actor know the credentials to connect to the Spark service + +
  • The actor knows the schema of the target database (i.e. name of tables, name of attributes, etc.) + +
  • The actor possesses the scripts to upload +
  • +
+
Post-Conditions + +
    + +
  • The data is analyzed +
  • +
+
Steps + 1 + Access to the Spark service +
2 + Authenticate to the Spark service +
3 + Choose the option “Spark environment” and Click the “Spawn” button +
4 + Launch the uploaded scripts to analyze data +
5 + Check that the scripts are executed with success +
Exceptions + +
    + +
  • The connection to the database fails + +
  • The authentication fails +
  • +
+
Frequency + +
    + +
  • Everytime the actor wants to process analysis on data +
  • +
+
diff --git a/tests/doc/cockburns/TC-3.md b/tests/doc/cockburns/TC-3.md new file mode 100644 index 0000000..fcc3972 --- /dev/null +++ b/tests/doc/cockburns/TC-3.md @@ -0,0 +1,130 @@ +## TC-3: Defining the Nifi workflow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-3 +
Use case name + Defining the Nifi workflow +
Actors + +
    + +
  • Data Scientist + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Adding a new industrial partner + +
  • Adding a new data type + +
  • Adding a new database +
  • +
+
Short Description + The Fadi platform enables the actors to define a workflow denoting how to collect and store data stream/batch. For this purpose, it integrates Nifi which is an open source tool to automate the flow of data between software systems. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Nifi service + +
  • The actor is already authenticated in the FADI platform + +
  • The actor knows the authentication credentials of the target database (e.g. the username and the password of the PostgreSQL database) + +
  • The actor knows +
      + +
    • the name of the target database and the table + +
    • the database connection URL, the database driver class name, database driver location, etc. +
    • +
    + +
  • The actor knows the source sending the data (e.g. data stream, a CSV file, etc.) +
  • +
+
Post-Conditions + +
    + +
  • The Nifi workflow is created and is successfully launched +
  • +
+
Steps + 1 + Access to the Nifi interface +
2 + Create the desired Nifi workflow +
3 + Launch the created workflow to start storing the data in the target database +
Exceptions + +
    + +
  • +
  • +
+
Frequency + +
    + +
  • Everytime the actor has new data coming to the FADI framework +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-4.md b/tests/doc/cockburns/TC-4.md new file mode 100644 index 0000000..5050f73 --- /dev/null +++ b/tests/doc/cockburns/TC-4.md @@ -0,0 +1,151 @@ +## TC-4: Defining the Nifi workflow by uploading a template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-4 +
Use case name + Defining the Nifi workflow by uploading a template +
Actors + +
    + +
  • Data Scientist + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Adding a new industrial partner + +
  • Adding a new data type + +
  • Adding a new database +
  • +
+
Short Description + The Fadi platform enables the actors to define a workflow denoting how to collect and store data stream/batch. For this purpose, it integrates Nifi which is an open source tool to automate the flow of data between software systems. In this use case, the actor will upload an existing template to create the Nifi workflow +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Nifi service + +
  • The actor is already authenticated in the FADI platform + +
  • The actor knows the source sending the data (e.g. data stream, a CSV file, etc.) + +
  • The actor has the Nifi template +
  • +
+
Post-Conditions + +
    + +
  • The Nifi workflow is created and is successfully launched +
  • +
+
Steps + 1 + Access to the Nifi interface +
2 + Upload the Nifi template +
3 + Drag and Drop the imported template +
4 + Configure the password to connect to the database +
5 + Enable both the required controller services. +
6 + Select the whole workflow and start the process +
7 + Launch the created workflow to start storing the data in the target database +
8 + Check that the data is correctly stored +
Exceptions + +
    + +
  • Error when upload the Nifi template +
  • +
+
Frequency + +
    + +
  • Everytime the actor has new data coming to the FADI framework +
  • +
+
diff --git a/tests/doc/cockburns/TC-5.md b/tests/doc/cockburns/TC-5.md new file mode 100644 index 0000000..3a6a918 --- /dev/null +++ b/tests/doc/cockburns/TC-5.md @@ -0,0 +1,140 @@ +## TC-5: Creating a database server in pgAdmin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-5 +
Use case name + Creating a database server in pgAdmin +
Actors + +
    + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Adding a new industrial partner + +
  • Adding a new data type +
  • +
+
Short Description + The FADI platform enables to create database server using the tool pgAdmin. This use case allows to test if the database creation is successfully achieved. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the pgAdmin service + +
  • The actor is connected to pgAdmin + +
  • The actor knows the credentials of PostreSQL +
      + +
    • Host name: fadi-postgresql + +
    • Port: 5432 + +
    • Maintenance database: postgres + +
    • Username: admin + +
    • Password: password1 +
    • +
    +
  • +
+
Post-Conditions + +
    + +
  • The database is created +
  • +
+
Steps + 1 + Access to the interface to create a database server +
2 + Enter the name of the database server in the “General” tab +
3 + Enter the credentials of PostgreSQL in the “Connection” tab +
4 + Save the edited information +
5 + Check the existence of the new database +
Exceptions + +
    + +
  • The credentials of PostgreSQL are not correct +
  • +
+
Frequency + +
    + +
  • Every time a new database needs to be created +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-6.md b/tests/doc/cockburns/TC-6.md new file mode 100644 index 0000000..61ea140 --- /dev/null +++ b/tests/doc/cockburns/TC-6.md @@ -0,0 +1,123 @@ +## TC-6: Creating a table in pgAdmin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-6 +
Use case name + Creating a table in pgAdmin +
Actors + +
    + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Creating a new table in the PostgreSQL database + +
  • Adding a new industrial partner + +
  • Adding a new data type +
  • +
+
Short Description + The FADI platform enables to create a new table via the interface of the pgAdmin tool. This use case allows to test whether the table creation is successfully achieved. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the pgAdmin service + +
  • The database in which the table will be created already exists + +
  • The actor is connected to pgAdmin + +
  • The actor knows the name of the table to be created + +
  • The actor knows the name of the target database +
  • +
+
Post-Conditions + +
    + +
  • The table is created +
  • +
+
Steps + 1 + Access to the interface to create a table +
2 + Execute the creation query +
3 + Check the existence of the new table +
Exceptions + +
    + +
  • The table already exists + +
  • There is an error in the creation query +
  • +
+
Frequency + +
    + +
  • Everytime the actor wants to create a new table +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-7.md b/tests/doc/cockburns/TC-7.md new file mode 100644 index 0000000..715e099 --- /dev/null +++ b/tests/doc/cockburns/TC-7.md @@ -0,0 +1,121 @@ +## TC-7: Deleting a table in pgAdmin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-7 +
Use case name + Deleting a table in pgAdmin +
Actors + +
    + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Removing a table from the PostgreSQL database +
  • +
+
Short Description + The FADI platform enables to delete a table via the interface of the pgAdmin tool. This use case allows to test whether the table deletion is successfully achieved. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the pgAdmin service + +
  • The actor is connected to pgAdmin + +
  • The table to delete already exists + +
  • The database in which the table will be deleted already exists + +
  • The actor knows the name of the table to be deleted + +
  • The actor knows the name of the database containing the table +
  • +
+
Post-Conditions + +
    + +
  • The table is deleted +
  • +
+
Steps + 1 + Access to the interface to delete a table +
2 + Execute the deletion query +
3 + Check the existence of the table (i.e. it should be deleted) +
Exceptions + +
    + +
  • The table does not exist + +
  • There is an error in the deletion query +
  • +
+
Frequency + +
    + +
  • Every time the actor wants to delete a table +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-8.md b/tests/doc/cockburns/TC-8.md new file mode 100644 index 0000000..2f63844 --- /dev/null +++ b/tests/doc/cockburns/TC-8.md @@ -0,0 +1,117 @@ +## TC-8: Deleting a database in pgAdmin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-8 +
Use case name + Deleting a database in pgAdmin +
Actors + +
    + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Removing a database from PostgreSQL +
  • +
+
Short Description + The FADI platform enables to delete a database via the interface of the pgAdmin tool. This use case allows to test whether the database deletion is successfully achieved. +
Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the pgAdmin service + +
  • The actor is connected to pgAdmin + +
  • The database to delete already exists + +
  • The actor knows the name of the database to be deleted +
  • +
+
Post-Conditions + +
    + +
  • The database is deleted +
  • +
+
Steps + 1 + Access to the interface to delete a database +
2 + Execute the deletion query +
3 + Check the existence of the database (i.e. it should be deleted) +
Exceptions + +
    + +
  • The database does not exist + +
  • There is an error in the deletion query +
  • +
+
Frequency + +
    + +
  • Every time the actor wants to delete a database +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-9.md b/tests/doc/cockburns/TC-9.md new file mode 100644 index 0000000..10436be --- /dev/null +++ b/tests/doc/cockburns/TC-9.md @@ -0,0 +1,153 @@ +## TC-9: Inserting data in a given table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + TC-9 +
Use case name + Inserting data in a given table +
Actors + +
    + +
  • Data Engineer +
  • +
+
Trigger + +
    + +
  • Collecting stream data + +
  • Collecting batch data + +
  • Storing analyzed data + +
  • Storing results (etc. analysis, dashboards, etc.) +
  • +
+
Short Description + The FADI platform enables to collect data and to store it in a given database either via the pgAdmin interface or by defining a data workflow using Nifi. This use case allows to test whether the data insertion is successfully achieved. +

+In this use case, we will implement the case of data insertion using Nifi. +

Pre-Conditions + +
    + +
  • The actor knows either the URL address or the command to access to the Nifi service + +
  • The actor is connected to the FADI platform + +
  • The target table already exists + +
  • The actor knows the name of the table to be deleted + +
  • The actor knows the name of the database containing the table +
  • +
+
Post-Conditions + +
    + +
  • The data is correctly inserted +
  • +
+
Steps + 1 + Access to the Nifi service +
2 + Upload a Nifi template +
3 + Drag and Drop the imported template +
4 + Configure the password to connect to the database +
5 + Enable both the required controller services. +
6 + Select the whole workflow and start the process +
7 + Check that the data is correctly inserted in the database by verifying the success connection. +
Exceptions + +
    + +
  • Error in the password of the database + +
  • The controller services are enabled + +
  • The data is not stored +
  • +
+
Frequency + +
    + +
  • Everytime data (stream or batch) is collected by the FADI platform +
  • +
+
\ No newline at end of file diff --git a/tests/doc/cockburns/TC-template.md b/tests/doc/cockburns/TC-template.md new file mode 100644 index 0000000..bb063e9 --- /dev/null +++ b/tests/doc/cockburns/TC-template.md @@ -0,0 +1,89 @@ +## TC-X: Title of the test case + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use case ID + +
Use case name + +
Actors + +
    +
+
Trigger + +
Short Description + +
Pre-Conditions + +
    +
+
Post-Conditions + +
    +
+
Steps + 1 + +
2 + A template to be completed +
3 + +
Exceptions + +
    +
+
Frequency + +
    +
+
diff --git a/tests/doc/test-scripts/TS-11.md b/tests/doc/test-scripts/TS-11.md new file mode 100644 index 0000000..a0037e9 --- /dev/null +++ b/tests/doc/test-scripts/TS-11.md @@ -0,0 +1,94 @@ +## TS-11: Defining dashboards based on the analyzed data using Grafana +### User story +* **As a** Business Analyst/Leader **I want to** define a dashboard **So I can** visualize the results of the analyzed data +* **As a** Business Analyst/Leader **I want to** define a dashboard **So I can** realize a global overview about the results of the analyzed data +### Initial data/state: +* The FADI platform is installed +* The actor is authenticated to the Grafana service +### TS dependencies: +* TS-10 : Configuring a data source in the Grafana dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Test script ID + Test Actions + Assertion +
Sequence + Actor + Action + Automatic/ Manual +
TS-11 + 1 + JEST + Launch the Grafana page + automatic + - Exit from Grafana +
2 + PUP + Choose the data source + automatic +
3 + PUP + Edit the dashboard + automatic +
4 + PUP + Choose the type of the dashboard + automatic +
5 + PUP + Edit the query + automatic +
6 + PUP + Press on the Query inspector button to execute the query and visualize the dashboard + automatic +
\ No newline at end of file diff --git a/tests/doc/test-scripts/TS-15.md b/tests/doc/test-scripts/TS-15.md new file mode 100644 index 0000000..f533b22 --- /dev/null +++ b/tests/doc/test-scripts/TS-15.md @@ -0,0 +1,114 @@ +## TS-15: Creating a chart in Superset +### User story +* **As a** Business Analyst/Leader **I want to** create a chart in Superset **So I can** visualize the results of the analyzed data +### Initial data/state: +* The FADI platform is installed +* The actor is authenticated to the Superset service +### TS dependencies: +* TS-13 : Configuring a database in Superset +* TS-14 : Configuring a table in Superset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Test script ID + Test Actions + Assertion +
Sequence + Actor + Action + Automatic/ Manual +
TS-15 + 1 + JEST + Launch the Superset page + automatic + - Exit from Superset +
2 + PUP + Choose the Chart option menu + automatic +
3 + PUP + Add a new record + automatic +
4 + PUP + Choose the datasource + automatic +
5 + PUP + Choose the visualization type + automatic +
6 + PUP + Click “Create new chart” + automatic +
7 + PUP + Configure the chart by defining the time requirements and the query + automatic +
8 + PUP + Run the query + automatic +
\ No newline at end of file diff --git a/tests/doc/test-scripts/TS-4.md b/tests/doc/test-scripts/TS-4.md new file mode 100644 index 0000000..509554b --- /dev/null +++ b/tests/doc/test-scripts/TS-4.md @@ -0,0 +1,96 @@ +## TS-4: Defining the Nifi workflow by uploading a template +### User story +* **As a** data scientist/engineer **I want to** define a data workflow management **So I can** consider data coming from a new data source +* **As a** data scientist/engineer **I want to** define a data workflow management **So I can** support a new data type +* **As a** data scientist/engineer **I want to** define a data workflow management **So I can** integrate a new industrial partner +### Initial data/state: +* The FADI platform is installed +* The actor is already authenticated in the FADI platform +* The database is already created +### TS dependencies: +* No dependencies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Test script ID + Test Actions + Assertion +
Sequence + Actor + Action + Automatic/ Manual +
TS-4 + 1 + JEST + Launch the Nifi page + automatic + - Stop the data workflow once the data are correctly stored +
2 + PUP + Upload the Nifi template + automatic +
3 + PUP + Drag and drop the Nifi template + automatic +
4 + PUP + Configure the password to connect to the database + automatic +
5 + PUP + Enable both the required controller services + automatic +
6 + PUP + Start the process + automatic +
diff --git a/tests/doc/test-scripts/TS-template.md b/tests/doc/test-scripts/TS-template.md new file mode 100644 index 0000000..1f7250a --- /dev/null +++ b/tests/doc/test-scripts/TS-template.md @@ -0,0 +1,62 @@ +## TS-X: Title of the test script +### User story +* **As a** ..... **I want to** ..... **So I can** +### Initial data/state: +* +### TS dependencies: +* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Test script ID + Test Actions + Assertion +
Sequence + Actor + Action + Automatic/ Manual +
TS-X + 1 + + + + +
2 + + + +
3 + + + +