Skip to content

Instantly share code, notes, and snippets.

@highsmallxu
Created June 23, 2023 19:47
Show Gist options
  • Save highsmallxu/26f31658beb56cb71903028cd0aedc69 to your computer and use it in GitHub Desktop.
Save highsmallxu/26f31658beb56cb71903028cd0aedc69 to your computer and use it in GitHub Desktop.
Feature: Customer Segmentation
As a retail business
In order to personalize marketing strategies
I want to segment customers based on their attributes and behavior
Scenario: Label customers as premium if they are between 19 and 60 and made high past purchases
Given a customer is <age> years old
And the customer has <income_level> income
And the customer has made high past purchases
When the segmentation process is executed
Then the customer should be labeled as premium
Examples:
| income_level | age |
| low | 19 |
| low | 35 |
| medium | 28 |
| high | 42 |
| high | 60 |
Scenario: Label customers as premium if they are between 19 and 60 and have high income
Given a customer is <age> years old
And the customer has high income
And the customer has made <purchases_level> past purchases
When the segmentation process is executed
Then the customer should be labeled as premium
Examples:
| purchases_level | age |
| low | 19 |
| low | 35 |
| medium | 28 |
| high | 42 |
| high | 60 |
Scenario: Label customers as premium if they are above 60, have high income and made high past purchases
Given a customer is <age> years old
And the customer has high income
And the customer has made high past purchases
When the segmentation process is executed
Then the customer should be labeled as premium
Examples:
| age |
| 61 |
| 70 |
| 99 |
| 42 |
| 60 |
Scenario: Label customers as basic if they do not meet the above requirements
Given a customer is <age> years old
And the customer has <income_level> income
And the customer has made <purchases_level> past purchases
When the segmentation process is executed
Then the customer should be labeled as basic
Examples:
| age | income_level | purchases_level |
| 18 | low | low |
| 17 | high | high |
| 28 | low | medium |
| 42 | medium | low |
| 60 | medium | high |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment