--- title: "Outsystem BDD integration & Unit testing" slug: "devops-unit-testing" updated: 2023-09-25T17:01:57Z published: 2023-09-25T17:01:57Z canonical: "docs.agilenow.io/devops-unit-testing" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.agilenow.io/llms.txt > Use this file to discover all available pages before exploring further. # Outsystem BDD integration & Unit testing OutSystems provides two different types of Testing frameworks which are mandatorily integrated with the Agile.Now Factory application. 1. Integration and unit tests for the server side:  These tests are created using the OutSystems BDD testing framework (ver 1.4.0). You can download the software from OutSystems Forge from [here](https://www.outsystems.com/forge/component-overview/1201/ instructions) for use. 2. Integration and unit tests for client side: These tests are created using OutSystems BDD Framework for Client Side (Reactive and Mobile applications) and more information about this could be found [here](https://www.outsystems.com/forge/component-overview/10917/bddframework-client-side). Integration and unit testing ensures the quality of the code developed through OutSystems. One of the advantages of Agile.Now Factory testing integration is the intelligent synchronization of BDD tests from one environment to another. The BDD tests are also synced for those issues that has been completed and deployed from one environment (for eg: Development) to another (for eg: Testing). > This happens if the "Deploy testing module" functionality is enabled within **Settings>Environment>Environment** **Behaviors** The functionality is better explained with the help of the following scenario: - **Project Name**: SuperHero - **Applications:** Superhero-Mobile and Superhero-Backend - **Superhero-Mobile**- Status (In Progress) - There are 5 new unit tests (Sync automatically skips pages named; InternalError, Login, InvalidPermissions, NoPermission, MyInfo, NoTest%) - There is one Feature which the developers are working on - Authentication Page - **Status** (In Progress) - **Superhero-Backend**- Status (Done) - There are 1 new unit test - **Feature:** Reports transition - Status (Done) - **Feature:** Add a new page - Status (Done) - When we run Agile.Now Factory, it would deploy Superhero-Backend app from **dev** to **testing**and the following things are envisaged to happen: - ****Superhero-Mobile test** - the old version remains unchanged. (New unit tests are not integrated in testing environment)** - **Superhero-Backend** **test** - environment is updated with the latest changes from the **dev** environment. This process is automated and no manual intervention is required to move the unit tests from one environment to another. The unit tests of the remaining issues are not synchronized unless the status of the issues are set as "Done". Naturally, only those tests are performed in the target environment that exist. This prevents unnecessary test cases from being presented. #### Setting up BDD Framework Software Create new application with tests using [BDD Framework](https://www.outsystems.com/forge/component-overview/1201/bddframework).![](https://cdn.document360.io/06417a5c-658f-4a8a-ad57-27f6e06c9e0d/Images/Documentation/bdd1.png) ![](https://cdn.document360.io/06417a5c-658f-4a8a-ad57-27f6e06c9e0d/Images/Documentation/bdd2.png) - [Create the team](https://success.outsystems.com/Documentation/11/Managing_the_Applications_Lifecycle/Manage_IT_Users/Create_an_IT_Team)s in the **Lifetime User Management** and add the application with BDD tests which has been created in the previous step. - Synchronize the environment (Projects → Sync environment). After this step the corresponding records in the database should be created/updated in Agile.Now Factory. > Agile.Now Factory use external application such as the Ghost Inspector or Tosca to do end to end testing and UI testing.