diff --git a/ci/assets/oniro-ci-flow.png b/ci/assets/oniro-ci-flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..0aa0bdae8feb4e710d99e846349f3e4745245c6b
Binary files /dev/null and b/ci/assets/oniro-ci-flow.png differ
diff --git a/ci/assets/oniro-ci-flow.png.license b/ci/assets/oniro-ci-flow.png.license
new file mode 100644
index 0000000000000000000000000000000000000000..b23a85e2641e098a6c0cc2a16c805cd56252d547
--- /dev/null
+++ b/ci/assets/oniro-ci-flow.png.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: Huawei Inc.
+
+SPDX-License-Identifier: CC-BY-4.0
\ No newline at end of file
diff --git a/ci/device-testing.rst b/ci/device-testing.rst
index 598b44295b705f4727f71ef20d83c80f2a1d4e74..557a6f64671b8582771873ba7faaa1fd64e15d02 100644
--- a/ci/device-testing.rst
+++ b/ci/device-testing.rst
@@ -21,7 +21,7 @@ How does the CI system work?
 ----------------------------
 
 The system automatically performs a set of test jobs upon a new or
-modified pull request. Failed jobs stop the pipeline, allowing you to review
+modified merge request. Failed jobs stop the pipeline, allowing you to review
 build logs, reproduce and resolve the failure locally.
 The central system maintains a queue and schedules build and test jobs for the
 available workers. The workers may be auto-scaled, for example, virtual machines
@@ -60,17 +60,30 @@ Typically micro-sites will also see a more limited usage, for example, to
 support a bootstrap of a new project or preparing the process for automation
 for a new device.
 
-What does LAVA do?
-------------------
-
-1. The LAVA job definition template populates the required variables for
-   executing the test job using the values from the Gitlab CI.
-2. This job is submitted via REST API, and the LAVA executes the job.
-3. Using the callback system, LAVA triggers the last CI job in the loop, the
-   report job.
-4. The report job calls LAVA REST API to collect the result.
-5. The report is submitted back to Gitlab, and the developers can see the
-   report in their merge request.
+Oniro CI Flow
+-------------
+
+.. image:: assets/oniro-ci-flow.png
+   :width: 600
+   :alt: Oniro CI Flow
+
+Oniro CI Flow
+
+1. New merge request triggers the CI pipeline.
+2. The pipeline build stage builds and uploads artifacts.
+3. Test job under test stage is triggered once the dependent build job
+   finishes.
+4. The LAVA job definition template populates the required variables for
+   executing the test job using the values from the GitLab CI.
+5. The test job is submitted using the REST API, and the LAVA executes the job.
+6. Report job is added to the pipeline, if all the dependent test jobs are
+   added.
+7. After all LAVA test jobs for the pipeline finish, using the callback system,
+   LAVA triggers the last CI job in the loop, the report job.
+8. The report job calls LAVA REST API to collect the test results.
+9. The report is submitted back to GitLab, and the test report can be seen in
+   the merge request.
+
 
 Setting up Remote LAVA Worker
 -----------------------------