Skip to content

Latest commit

 

History

History
169 lines (115 loc) · 8.03 KB

File metadata and controls

169 lines (115 loc) · 8.03 KB
title How-to get started with BDD test framework

How-to get started with BDD test framework

IMPORTANT!

Setup the BDD framework and reporting tool

  1. Install the BDD framework from the Forge

  2. Install the BDD framework reporting tool TBD forge component

    • To install the BDD framework reporting tool go to /servicecenter/Applications_List.aspx and click on the publish application button. Upload the "BDD Framework Reporting.oap" and 1-Click Publish

    Publish BDD Framework Application

  3. Set the BDD framework rest api effective url

    • In Service Center open the BDDFrameworkReporting module and open the integrations tab
    • Navigate to the Consumed REST APIs section and open the BDDFrameworkV1 REST API
    • Set the effective url to your environment base url e.g., https://synobsys.outsystemscloud.com/
  4. Set the Timer_ExecuteNewRoundOfTestSuites schedule and activate the timer

    • In Service Center open the BDDFrameworkReporting module and open the timers tab
    • Click on the Timer_ExecuteNewRoundOfTestSuites
    • Enter the desired schedule e.g. daily at 01:00 h
    • Click on Activate to activate the timer if it is not active

Writing test scenarios

Refer to the OutSystems Top-Notch Acceptance Criteria section for guidance on writing acceptance criteria. We create test scenarios based on the acceptance criteria written in the Given When Then format.

Creating a new test suite

Now we create a Test Suite appplication that will contain the component tests and a core test services application that contains reusable logic to be used across test modules.

Create Test Suite application

In LifeTime create a new application using the bddframework template.

  • Open your LifeTime environment Applications screen: <yourlifetimeserver>/lifetime/Applications.aspx

  • Click on the button Create Application Create Application screenshot

  • Create a new application parameters:

    • Choose owner team: The team you application to test belongs to e.g., Talent Manager Team
    • Choose the environment: Development
    • What are you building? : BDDFramework
    • Give the app a name following the naming convention
    • Fill the description.
    • Upload an icon. (We recommend to use the same icon as the application with a test watermark added)
  • Open the new application in ServiceStudio and create a new BDDFramework module name it like the module you are testing with the suffix _Test

  • In the MainTestFlow add a new screen and select the BDDFramework Data Drive Scenario (Static Enitity) template and name it TestSuite. Please note that you must name the screen TestSuite for the reporting tool to work.

Create TestSuite Screen

  • This action also adds a WebBlock DataDrivenDb_Scenario that we keep as a template Together with this webblock a static entity named TestData is created and an aggregate is added to the preparation.

  • Open the TestSuite screen and remove the ScenarioListRecords from the widget tree

  • Move the WebBlock to the templates UIFlow

  • Delete the GetTestData aggregate from the preparation

  • Set the module description to "<tested module name> tests module using BDDFramework"

  • Publish the module

Create Core Test Services

In LifeTime create a new application using the service template.

  • Open your LifeTime environment Applications screen: <yourlifetimeserver>/lifetime/Applications.aspx
  • Click on the button Create Application Team Create App screenshot
  • Create a new application parameters:
    • Choose owner team: The team you application to test belongs to
    • Choose the environment: Development
    • What are you building? : Choose a service template e.g, Service, CoreServices_CS
    • Name: <tested module name> Core Tests
    • Description: Wrapper of common reused tests logic
    • Upload an icon. (We recommend to use the same icon as the application with a test watermark added)

Building a test scenario example

Feature: As a Talent Manager I should be able to manage skill and categories

Scenario: Add Skill Group

Given I am a Talent Manager

When I add a new Skill Group named "Play"

Then I should be able to get a successful result

Preparation steps

Create reusable actions in module TalentManagerCoreTests_CS

  • PersonaLoginByName: GLogs in the with the specified persona name (Note this action may be already present in a generic test core service module)
  • SkillGroupSampleGet: Initializes a sample Skill Group record with given fields

Implement the scenario

  • Copy the Sample_Test webblock and rename it to TalentManagerAddSkillGroup

  • Set the names of the Scenario and the Given-When-Then blocks: Scenario Add SkillGroup image

  • Add the following logic to the a_Setup screen action: Setup action flow screenshot

  • Add the following logic to the b_Given screen action:

    • Add an Assert webblock to the flow and set the name to AssertTalentManager
    • Set Expected to: "User is TalentManager"
    • Set Obtained to: "User is " + If(LoggedInUserId = NullIdentifier(), "not logged in", If(CheckTalentManagerRole(LoggedInUserId), "", "not a ")) + "TalentManager"
  • Add the following logic to the c_When screen action: When action flow screenshot

  • Add the following logic to the d_Then screen action:

    • Add an Assert webblock to the flow and set the name to AssertSkillGroupCreated
    • Set Expected to "SkillGroup record created successfully"
    • Set Obtained to "SkillGroup record " + If(CreatedSkillGroupId <> NullIdentifier(), "created successfully", "not created")
  • Add the following logic to the e_Teardown screen action: Teardown action flow screenshot

    • Call SkillGroupDelete if a record was created

Adding test suites to the BDD framework reporting tool

To add a test suite to the BDD framework reporting tool you must add the module names separated with a comma to the ModuleListCSV site property. E.g. TalentManager_CS_Tests

Reference