From 357036848d8c28d77e542f98f7961adcfff2d4cb Mon Sep 17 00:00:00 2001 From: roost-io Date: Sun, 11 Jan 2026 05:31:56 +0000 Subject: [PATCH] Functional test generated by RoostGPT Using AI Model gpt-4o --- functional_tests/README.md | 23 ++ .../.roost/roost_metadata.json | 34 +++ .../TCSBaNCS_functional-after-fix.csv | 15 ++ .../TCSBaNCS_functional-after-fix.docx | Bin 0 -> 11741 bytes .../TCSBaNCS_functional-after-fix.feature | 214 ++++++++++++++++++ .../TCSBaNCS_functional-after-fix.json | 1 + .../TCSBaNCS_functional-after-fix.xlsx | Bin 0 -> 9517 bytes 7 files changed, 287 insertions(+) create mode 100644 functional_tests/README.md create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json create mode 100644 functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx diff --git a/functional_tests/README.md b/functional_tests/README.md new file mode 100644 index 00000000..5087ef56 --- /dev/null +++ b/functional_tests/README.md @@ -0,0 +1,23 @@ +# Roost Generated Functional Test + +**Execution Date:** 1/11/2026, 5:31:55 AM + +**Test Unique Identifier:** "TCSBaNCS_functional-after-fix" + +**Input(s):** + 1. bankspromot.txt + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/bankspromot.txt + 2. TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx + 3. TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx + +**Test Output Folder:** + 1. [TCSBaNCS_functional-after-fix.json](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json) + 2. [TCSBaNCS_functional-after-fix.feature](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature) + 3. [TCSBaNCS_functional-after-fix.csv](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv) + 4. [TCSBaNCS_functional-after-fix.xlsx](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx) + 5. [TCSBaNCS_functional-after-fix.docx](TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx) + +--- + diff --git a/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json b/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json new file mode 100644 index 00000000..845a3d13 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/.roost/roost_metadata.json @@ -0,0 +1,34 @@ +{ + "project": { + "name": "TCSBaNCS_functional-after-fix", + "created_at": "2026-01-11T05:31:55.445Z", + "updated_at": "2026-01-11T05:31:55.445Z" + }, + "files": { + "input_files": [ + { + "fileName": "TCSBaNCS_functional-after-fix.txt", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.txt", + "fileSha": "cf83e1357e" + }, + { + "fileName": "bankspromot.txt", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/functional_tests/TCSBaNCS_functional-after-fix/bankspromot.txt", + "fileSha": "0664b099ba" + }, + { + "fileName": "TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx", + "fileSha": "55a242034e" + }, + { + "fileName": "TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/12043b8c-5ab1-4ec8-8e64-5209df53a436/functional_tests/TCSBaNCS_functional-after-fix/TCS BaNCS-Functional Specifications-Securities Back Office Processing-v1.8.1.docx", + "fileSha": "2cd5271236" + } + ] + }, + "api_files": { + "input_files": [] + } +} \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv new file mode 100644 index 00000000..94a70349 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv @@ -0,0 +1,15 @@ +User Registration and Account Creation +Product Search and Filtering +Checkout Process with Payment Gateway Integration +Order Confirmation and Receipt Generation +Promotional Code Application +Shopping Cart Management +User Profile Management +Product Review and Rating System +Order History and Tracking +Customer Support Interaction +Invalid Payment Method Handling +Tax and Shipping Fee Calculation +Expired Promotional Code Handling +Order Status Transition +Data Protection Compliance \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.docx new file mode 100644 index 0000000000000000000000000000000000000000..be152f7fcbc7a0508b4d8bec40f9af537e5db486 GIT binary patch literal 11741 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 literal 0 HcmV?d00001 diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature new file mode 100644 index 00000000..9596be20 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature @@ -0,0 +1,214 @@ +Feature: E-commerce Platform Functional Testing + + # UI Test Scenarios + @ui + Scenario Outline: User Registration and Account Creation + Given I am on the registration page + When I enter valid personal information including name "", email "", and password "" + And I agree to terms and conditions + And I click the 'Register' button + Then a user account is created successfully + And a confirmation email is sent + + Examples: + | name | email | password | + | John | john@example.com | Pass123! | + | Alice | alice@example.com| Secure456!| + + @ui + Scenario Outline: Product Search and Filtering + Given I am logged in and on the homepage + When I enter "" in the search bar + And I click the 'Search' button + And I apply filters such as price range "" and category "" + Then search results are displayed according to the search term and applied filters + + Examples: + | product_name | price_range | category | + | Laptop | $500-$1000 | Electronics| + | Shoes | $50-$100 | Fashion | + + @ui + Scenario Outline: Checkout Process with Payment Gateway Integration + Given I have items in the shopping cart + When I navigate to the shopping cart + And I click the 'Checkout' button + And I enter shipping information "" + And I select payment method "" + And I complete payment through the payment gateway + Then the order is placed successfully + And payment is processed + + Examples: + | shipping_info | payment_method | + | 123 Main St, City, Zip | Credit Card | + | 456 Elm St, City, Zip | PayPal | + + @ui + Scenario Outline: Order Confirmation and Receipt Generation + Given I have completed a purchase + When I check my email for order confirmation + And I view the order receipt in my user account + Then an order confirmation email is received + And the receipt is available in the user account + + Examples: + | email_address | + | user1@example.com | + | user2@example.com | + + @ui + Scenario Outline: Promotional Code Application + Given I have items in the shopping cart and a valid promotional code "" + When I navigate to the shopping cart + And I proceed to checkout + And I enter the promotional code in the designated field + And I click 'Apply' button + Then a discount is applied to the order total + And it is reflected in the final amount + + Examples: + | promo_code | + | SAVE10 | + | DISCOUNT20 | + + @ui + Scenario Outline: Shopping Cart Management + Given I am logged in and browsing products + When I add a product "" to the shopping cart + And I update the quantity of the product in the cart to "" + And I remove a product "" from the cart + Then items are added, updated, and removed from the shopping cart successfully + + Examples: + | product | quantity | product_to_remove | + | Book | 2 | Book | + | Laptop | 1 | Laptop | + + @ui + Scenario Outline: User Profile Management + Given I am logged in and on the profile page + When I update personal information fields with name "", email "", and address "
" + And I save changes + Then profile information is updated successfully + And changes are reflected immediately + + Examples: + | name | email | address | + | John | john@example.com | 123 Main St | + | Alice | alice@example.com| 456 Elm St | + + @ui + Scenario Outline: Product Review and Rating System + Given I have purchased the product and am logged in + When I navigate to the purchased product page + And I enter a review "" in the designated field + And I select a rating "" + And I submit the review and rating + Then the review and rating are submitted successfully + And displayed on the product page + + Examples: + | review | rating | + | Great product! | 5 | + | Not satisfied | 2 | + + @ui + Scenario Outline: Order History and Tracking + Given I am logged in and have placed orders + When I navigate to the order history page + And I select an order to view details + And I check the tracking status of the order + Then order history is displayed with accurate details + And tracking information is up-to-date + + Examples: + | order_id | + | 12345 | + | 67890 | + + @ui + Scenario Outline: Customer Support Interaction + Given I am logged in and on the support page + When I fill out the support request form with details "
" + And I submit the support request + Then the support request is submitted successfully + And a confirmation message is displayed + + Examples: + | details | + | Issue with order | + | Account question | + + @ui + Scenario Outline: Invalid Payment Method Handling + Given I have items in the shopping cart and an invalid payment method saved + When I navigate to the shopping cart + And I click 'Checkout' button + And I select the invalid payment method + And I attempt to complete the payment + Then payment is declined + And an error message is displayed to the user + + Examples: + | invalid_method | + | Expired Card | + | Invalid PayPal | + + @ui + Scenario Outline: Tax and Shipping Fee Calculation + Given I have items in the shopping cart and am ready to checkout + When I navigate to the shopping cart + And I click 'Checkout' button + And I enter shipping address "
" + And I review the calculated tax and shipping fees + Then tax and shipping fees are calculated accurately + And based on the shipping address and order total + + Examples: + | address | + | 123 Main St, Zip | + | 456 Elm St, Zip | + + @ui + Scenario Outline: Expired Promotional Code Handling + Given I have items in the shopping cart and an expired promotional code "" + When I navigate to the shopping cart + And I proceed to checkout + And I enter the expired promotional code in the designated field + And I click 'Apply' button + Then an error message is displayed indicating the promotional code is expired + And no discount is applied + + Examples: + | expired_code | + | OLD10 | + | EXPIRED20 | + + @ui + Scenario Outline: Order Status Transition + Given I have placed an order and am logged in + When I navigate to the order history page + And I select the recent order + And I monitor status changes from pending to confirmed, shipped, and delivered + Then order status transitions correctly + And is updated in real-time + + Examples: + | order_id | + | 12345 | + | 67890 | + + @ui + Scenario Outline: Data Protection Compliance + Given I am on the registration page + When I enter personal information including name "", email "", and password "" + And I review and consent to data protection policies + And I click 'Register' button + Then user registration is successful + And data protection consent is recorded + + Examples: + | name | email | password | + | John | john@example.com | Pass123! | + | Alice | alice@example.com| Secure456!| diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json new file mode 100644 index 00000000..d77cf512 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.json @@ -0,0 +1 @@ +[{"type":"functional","title":"User Registration and Account Creation","description":"Verify that a new user can successfully register and create an account.","testId":"TC-001","testDescription":"A new user fills out the registration form with valid details and submits it.","prerequisites":"User is on the registration page.","stepsToPerform":"1. Navigate to the registration page.\n2. Enter valid personal information including name, email, and password.\n3. Agree to terms and conditions.\n4. Click 'Register' button.","expectedResult":"User account is created successfully and a confirmation email is sent.","additionalFields":"Email format validation, Password strength validation, Terms and conditions acceptance"},{"type":"functional","title":"Product Search and Filtering","description":"Verify that users can search for products and apply filters.","testId":"TC-002","testDescription":"A user searches for a product and applies filters to narrow down results.","prerequisites":"User is logged in and on the homepage.","stepsToPerform":"1. Enter product name in the search bar.\n2. Click 'Search' button.\n3. Apply filters such as price range and category.","expectedResult":"Search results are displayed according to the search term and applied filters.","additionalFields":"Search term validation, Filter application, Result accuracy"},{"type":"functional","title":"Checkout Process with Payment Gateway Integration","description":"Verify the checkout process including payment gateway integration.","testId":"TC-003","testDescription":"A user completes the checkout process using a valid payment method.","prerequisites":"User has items in the shopping cart.","stepsToPerform":"1. Navigate to the shopping cart.\n2. Click 'Checkout' button.\n3. Enter shipping information.\n4. Select payment method.\n5. Complete payment through the payment gateway.","expectedResult":"Order is placed successfully and payment is processed.","additionalFields":"Payment method validation, Shipping information accuracy, Payment gateway response handling"},{"type":"functional","title":"Order Confirmation and Receipt Generation","description":"Verify that an order confirmation and receipt are generated after a successful purchase.","testId":"TC-004","testDescription":"A user receives an order confirmation and receipt after completing a purchase.","prerequisites":"User has completed a purchase.","stepsToPerform":"1. Complete the checkout process.\n2. Check email for order confirmation.\n3. View order receipt in user account.","expectedResult":"Order confirmation email is received and receipt is available in the user account.","additionalFields":"Email receipt format, Order details accuracy, Receipt accessibility"},{"type":"functional","title":"Promotional Code Application","description":"Verify that users can apply valid promotional codes during checkout.","testId":"TC-005","testDescription":"A user applies a valid promotional code at checkout to receive a discount.","prerequisites":"User has items in the shopping cart and a valid promotional code.","stepsToPerform":"1. Navigate to the shopping cart.\n2. Proceed to checkout.\n3. Enter promotional code in the designated field.\n4. Click 'Apply' button.","expectedResult":"Discount is applied to the order total and reflected in the final amount.","additionalFields":"Promotional code validation, Discount calculation accuracy, Expired code handling"},{"type":"functional","title":"Shopping Cart Management","description":"Verify that users can add, update, and remove items from the shopping cart.","testId":"TC-006","testDescription":"A user manages items in their shopping cart by adding new items, updating quantities, and removing items.","prerequisites":"User is logged in and browsing products.","stepsToPerform":"1. Add a product to the shopping cart.\n2. Update the quantity of the product in the cart.\n3. Remove a product from the cart.","expectedResult":"Items are added, updated, and removed from the shopping cart successfully.","additionalFields":"Cart update validation, Quantity change reflection, Cart item removal confirmation"},{"type":"functional","title":"User Profile Management","description":"Verify that users can update their profile information.","testId":"TC-007","testDescription":"A user updates their profile information including name, email, and address.","prerequisites":"User is logged in and on the profile page.","stepsToPerform":"1. Navigate to the profile page.\n2. Update personal information fields.\n3. Save changes.","expectedResult":"Profile information is updated successfully and changes are reflected immediately.","additionalFields":"Data integrity checks, Profile update confirmation, Email format validation"},{"type":"functional","title":"Product Review and Rating System","description":"Verify that users can submit reviews and ratings for purchased products.","testId":"TC-008","testDescription":"A user submits a review and rating for a product they have purchased.","prerequisites":"User has purchased the product and is logged in.","stepsToPerform":"1. Navigate to the purchased product page.\n2. Enter a review in the designated field.\n3. Select a rating.\n4. Submit the review and rating.","expectedResult":"Review and rating are submitted successfully and displayed on the product page.","additionalFields":"Review content validation, Rating scale validation, Review submission confirmation"},{"type":"functional","title":"Order History and Tracking","description":"Verify that users can view their order history and track orders.","testId":"TC-009","testDescription":"A user views their order history and tracks the status of an order.","prerequisites":"User is logged in and has placed orders.","stepsToPerform":"1. Navigate to the order history page.\n2. Select an order to view details.\n3. Check the tracking status of the order.","expectedResult":"Order history is displayed with accurate details and tracking information is up-to-date.","additionalFields":"Order details accuracy, Tracking status updates, Order history accessibility"},{"type":"functional","title":"Customer Support Interaction","description":"Verify that users can contact customer support through the platform.","testId":"TC-010","testDescription":"A user initiates a customer support request through the website.","prerequisites":"User is logged in and on the support page.","stepsToPerform":"1. Navigate to the customer support page.\n2. Fill out the support request form with details.\n3. Submit the support request.","expectedResult":"Support request is submitted successfully and a confirmation message is displayed.","additionalFields":"Support form validation, Submission confirmation, Support request tracking"},{"type":"functional","title":"Invalid Payment Method Handling","description":"Verify system behavior when an invalid payment method is used during checkout.","testId":"TC-011","testDescription":"A user attempts to complete a purchase using an invalid or expired payment method.","prerequisites":"User has items in the shopping cart and an invalid payment method saved.","stepsToPerform":"1. Navigate to the shopping cart.\n2. Click 'Checkout' button.\n3. Select the invalid payment method.\n4. Attempt to complete the payment.","expectedResult":"Payment is declined, and an error message is displayed to the user.","additionalFields":"Error message validation, Payment method verification, User guidance for resolution"},{"type":"functional","title":"Tax and Shipping Fee Calculation","description":"Verify that tax and shipping fees are calculated accurately during checkout.","testId":"TC-012","testDescription":"A user proceeds to checkout and reviews the calculated tax and shipping fees.","prerequisites":"User has items in the shopping cart and is ready to checkout.","stepsToPerform":"1. Navigate to the shopping cart.\n2. Click 'Checkout' button.\n3. Enter shipping address.\n4. Review the calculated tax and shipping fees.","expectedResult":"Tax and shipping fees are calculated accurately based on the shipping address and order total.","additionalFields":"Tax rate validation, Shipping fee calculation, Address-based fee adjustment"},{"type":"functional","title":"Expired Promotional Code Handling","description":"Verify system behavior when an expired promotional code is applied during checkout.","testId":"TC-013","testDescription":"A user attempts to apply an expired promotional code at checkout.","prerequisites":"User has items in the shopping cart and an expired promotional code.","stepsToPerform":"1. Navigate to the shopping cart.\n2. Proceed to checkout.\n3. Enter the expired promotional code in the designated field.\n4. Click 'Apply' button.","expectedResult":"An error message is displayed indicating the promotional code is expired, and no discount is applied.","additionalFields":"Expired code validation, Error message clarity, User guidance for valid codes"},{"type":"functional","title":"Order Status Transition","description":"Verify that order status transitions correctly from pending to delivered.","testId":"TC-014","testDescription":"A user places an order and tracks its status through various stages.","prerequisites":"User has placed an order and is logged in.","stepsToPerform":"1. Navigate to the order history page.\n2. Select the recent order.\n3. Monitor status changes from pending to confirmed, shipped, and delivered.","expectedResult":"Order status transitions correctly and is updated in real-time.","additionalFields":"Status update timing, Real-time tracking, Notification accuracy"},{"type":"functional","title":"Data Protection Compliance","description":"Verify compliance with data protection regulations during user registration.","testId":"TC-015","testDescription":"A new user registers and consents to data protection policies.","prerequisites":"User is on the registration page.","stepsToPerform":"1. Navigate to the registration page.\n2. Enter personal information including name, email, and password.\n3. Review and consent to data protection policies.\n4. Click 'Register' button.","expectedResult":"User registration is successful, and data protection consent is recorded.","additionalFields":"Consent recording validation, Privacy policy accessibility, User data handling compliance"}] \ No newline at end of file diff --git a/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..cf20a2ad2a5cf6d9c5b6537f898b5175f0dd849b GIT binary patch literal 9517 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 Rp+D9gy^kwWiQ>EX{{so@c9;MF literal 0 HcmV?d00001