From c74f76993ea105d3c260009be062860bf667d7f3 Mon Sep 17 00:00:00 2001 From: roost-io Date: Sun, 11 Jan 2026 04:20:35 +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 | 14 ++ .../TCSBaNCS_functional-after-fix.docx | Bin 0 -> 11902 bytes .../TCSBaNCS_functional-after-fix.feature | 193 ++++++++++++++++++ .../TCSBaNCS_functional-after-fix.json | 1 + .../TCSBaNCS_functional-after-fix.xlsx | Bin 0 -> 9595 bytes 7 files changed, 265 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..2dcd1fec --- /dev/null +++ b/functional_tests/README.md @@ -0,0 +1,23 @@ +# Roost Generated Functional Test + +**Execution Date:** 1/11/2026, 4:20:34 AM + +**Test Unique Identifier:** "TCSBaNCS_functional-after-fix" + +**Input(s):** + 1. bankspromot.txt + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/f8312638-75eb-48c2-b58f-5d615b1782ae/bankspromot.txt + 2. TCSBaNCS_ST_BSSB_FSD_CallCenterOperator_v14.2.docx + Path: /var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/f8312638-75eb-48c2-b58f-5d615b1782ae/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/f8312638-75eb-48c2-b58f-5d615b1782ae/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..ccc70392 --- /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-11T04:20:34.355Z", + "updated_at": "2026-01-11T04:20:34.355Z" + }, + "files": { + "input_files": [ + { + "fileName": "TCSBaNCS_functional-after-fix.txt", + "fileURI": "/var/tmp/Roost/RoostGPT/TCSBaNCS_functional-after-fix/f8312638-75eb-48c2-b58f-5d615b1782ae/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/f8312638-75eb-48c2-b58f-5d615b1782ae/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/f8312638-75eb-48c2-b58f-5d615b1782ae/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/f8312638-75eb-48c2-b58f-5d615b1782ae/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..7f695d47 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.csv @@ -0,0 +1,14 @@ +User Registration and Account Creation +Product Search and Filtering +Shopping Cart Management +Checkout Process and Payment Integration +Order Confirmation and Receipt Generation +User Profile Management +Role-based Access Control and Permissions +Data Validation and Error Handling +UI Interactions across all screens and forms +Guest Checkout Process +Password Recovery Process +Product Review Submission +Wishlist Management +Multi-Currency Support \ 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..5ecb924926f839cb62edc378c1ea03acb3c3f1ea GIT binary patch literal 11902 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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..d766cab4 --- /dev/null +++ b/functional_tests/TCSBaNCS_functional-after-fix/TCSBaNCS_functional-after-fix.feature @@ -0,0 +1,193 @@ +Feature: E-commerce Application Functional Testing + + # UI Test Scenarios + @ui + Scenario Outline: User Registration and Account Creation + Given I am on the registration page + When I enter valid "", "", and "" + And I agree to the 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 Doe | john@example.com| Passw0rd! | + | Jane Doe | jane@example.com| Secure123! | + + @ui + Scenario Outline: Product Search and Filtering + Given I am on the homepage + When I enter "" in the search bar + And I apply filters for "" and "" + And I click the 'Search' button + Then relevant products are displayed according to the search criteria and filters + + Examples: + | keyword | category | price_range | + | laptop | electronics | 500-1000 | + | shoes | fashion | 50-100 | + + @ui + Scenario Outline: Shopping Cart Management + Given I am logged in + And I have selected a product + When I click 'Add to Cart' + And I navigate to the cart + And I remove a product from the cart + Then the products are added and removed from the cart correctly + And the cart updates accordingly + + Examples: + | product_name | + | Laptop | + | Sneakers | + + @ui + Scenario Outline: Checkout Process and Payment Integration + Given I have items in the cart + When I navigate to checkout + And I enter "" + And I select "" + And I confirm and complete payment + Then the order is processed successfully + And payment is confirmed + + Examples: + | shipping_details | payment_method | + | "123 Main St, City" | Credit Card | + | "456 Elm St, Town" | PayPal | + + @ui + Scenario Outline: Order Confirmation and Receipt Generation + Given I have completed the checkout process + When I check for the order confirmation message + Then the order confirmation is displayed + And a receipt is generated and emailed to the user + + Examples: + | order_id | + | 1001 | + | 1002 | + + @ui + Scenario Outline: User Profile Management + Given I am logged in + When I navigate to profile settings + And I update "" to "" + And I save changes + Then the profile information is updated successfully + And a confirmation message is displayed + + Examples: + | field | new_value | + | name | John Smith | + | email | john.smith@example.com | + | password| NewPass123! | + + @ui + Scenario Outline: Role-based Access Control and Permissions + Given I log in as a "" + When I attempt to access the admin panel + Then "" is displayed + + Examples: + | user_role | access_result | + | admin | Access granted | + | regular | Access denied | + + @ui + Scenario Outline: Data Validation and Error Handling + Given I am on a form requiring input validation + When I enter invalid "" with "" + And I submit the form + Then error messages are displayed for invalid inputs + + Examples: + | field | invalid_data | + | email | invalidemail | + | password| short | + + @ui + Scenario Outline: UI Interactions across all screens and forms + Given I access the application on a "" + When I navigate through various screens and forms + Then UI elements are responsive and interactive + + Examples: + | device | + | desktop | + | mobile | + + @ui + Scenario Outline: Guest Checkout Process + Given I have added products to the cart + When I proceed to checkout as a guest + And I enter "" and "" + And I select "" + And I complete the payment + Then the order is processed successfully + And a confirmation message is displayed + + Examples: + | shipping_details | billing_details | payment_method | + | "123 Main St, City" | "123 Main St, City" | Credit Card | + | "456 Elm St, Town" | "456 Elm St, Town" | PayPal | + + @ui + Scenario Outline: Password Recovery Process + Given I am on the login page + When I click on 'Forgot Password' + And I enter registered email "" + Then I receive a recovery email + And I successfully reset the password + + Examples: + | email | + | john@example.com | + | jane@example.com | + + @ui + Scenario Outline: Product Review Submission + Given I am logged in and have purchased the product + When I navigate to the product page + And I click on 'Write a Review' + And I enter review details and rating + And I submit the review + Then the review is submitted successfully + And appears on the product page + + Examples: + | product_name | + | Laptop | + | Sneakers | + + @ui + Scenario Outline: Wishlist Management + Given I am logged in + When I navigate to a product page + And I click 'Add to Wishlist' + And I navigate to the wishlist + And I remove a product from the wishlist + Then the products are added and removed from the wishlist correctly + And the wishlist updates accordingly + + Examples: + | product_name | + | Laptop | + | Sneakers | + + @ui + Scenario Outline: Multi-Currency Support + Given the multi-currency feature is enabled + When I navigate to the currency selection option + And I select "" + And I add products to the cart + And I proceed to checkout and complete the payment + Then prices are displayed in the selected currency + And the transaction is completed successfully + + Examples: + | currency | + | USD | + | EUR | 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..bae79ab4 --- /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 successful account creation with valid details.","testId":"TC-001","testDescription":"A new user registers with valid information to create an account.","prerequisites":"User must not have an existing account with the same email.","stepsToPerform":"1. Navigate to registration page.\n2. Enter valid 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":"Boundary Value Analysis for password length, Data integrity checks for PII"},{"type":"functional","title":"Product Search and Filtering","description":"Verify product search and filtering functionality.","testId":"TC-002","testDescription":"A user searches for products using keywords and applies filters.","prerequisites":"Products must be available in the database.","stepsToPerform":"1. Navigate to the search bar.\n2. Enter a product keyword.\n3. Apply filters such as category and price range.\n4. Click 'Search' button.","expectedResult":"Relevant products are displayed according to the search criteria and filters.","additionalFields":"Boundary Value Analysis for price range, UI Interactions for filter application"},{"type":"functional","title":"Shopping Cart Management","description":"Verify adding and removing items from the shopping cart.","testId":"TC-003","testDescription":"A user adds products to the cart and removes them as needed.","prerequisites":"User must be logged in and products must be available.","stepsToPerform":"1. Select a product.\n2. Click 'Add to Cart'.\n3. Navigate to the cart.\n4. Remove a product from the cart.","expectedResult":"Products are added and removed from the cart correctly, and the cart updates accordingly.","additionalFields":"State Transition testing for cart state, UI Interactions for add/remove actions"},{"type":"functional","title":"Checkout Process and Payment Integration","description":"Verify the checkout process and payment gateway integration.","testId":"TC-004","testDescription":"A user completes the checkout process and makes a payment.","prerequisites":"User must have items in the cart and a valid payment method.","stepsToPerform":"1. Navigate to checkout.\n2. Enter shipping details.\n3. Select payment method.\n4. Confirm and complete payment.","expectedResult":"Order is processed successfully, and payment is confirmed.","additionalFields":"Integration testing with payment gateways, High-risk edge cases for payment failures"},{"type":"functional","title":"Order Confirmation and Receipt Generation","description":"Verify order confirmation and receipt generation.","testId":"TC-005","testDescription":"A user receives an order confirmation and a receipt after successful payment.","prerequisites":"Order must be successfully placed and payment confirmed.","stepsToPerform":"1. Complete the checkout process.\n2. Check for order confirmation message.\n3. Verify receipt is generated and sent via email.","expectedResult":"Order confirmation is displayed, and a receipt is generated and emailed to the user.","additionalFields":"Data integrity checks for order details, UI Interactions for confirmation display"},{"type":"functional","title":"User Profile Management","description":"Verify user can update their profile information.","testId":"TC-006","testDescription":"A user updates their profile details such as name, email, and password.","prerequisites":"User must be logged in and have an existing profile.","stepsToPerform":"1. Navigate to profile settings.\n2. Update name, email, and password fields.\n3. Save changes.","expectedResult":"Profile information is updated successfully, and a confirmation message is displayed.","additionalFields":"Data integrity checks for PII, Boundary Value Analysis for password length"},{"type":"functional","title":"Role-based Access Control and Permissions","description":"Verify access control based on user roles.","testId":"TC-007","testDescription":"Different user roles have specific access permissions to various sections of the application.","prerequisites":"User roles must be predefined in the system.","stepsToPerform":"1. Log in as an admin user.\n2. Attempt to access admin panel.\n3. Log in as a regular user.\n4. Attempt to access admin panel.","expectedResult":"Admin user can access the admin panel, while regular user is denied access.","additionalFields":"Decision Table testing for role-based access, UI Interactions for access denial messages"},{"type":"functional","title":"Data Validation and Error Handling","description":"Verify data validation and error handling for user inputs.","testId":"TC-008","testDescription":"The system validates user inputs and provides appropriate error messages.","prerequisites":"User must be on a form requiring input validation.","stepsToPerform":"1. Navigate to a form with input fields.\n2. Enter invalid data in required fields.\n3. Submit the form.","expectedResult":"Error messages are displayed for invalid inputs, guiding the user to correct them.","additionalFields":"Data validation for sensitive information, Error message accuracy"},{"type":"functional","title":"Integration with External Payment Systems","description":"Verify integration with external payment gateways.","testId":"TC-009","testDescription":"The system successfully integrates with external payment systems for processing payments.","prerequisites":"Payment gateway credentials must be configured.","stepsToPerform":"1. Navigate to checkout.\n2. Select an external payment method.\n3. Complete the payment process.","expectedResult":"Payment is processed through the external gateway, and confirmation is received.","additionalFields":"Integration testing with payment gateways, High-risk edge cases for payment failures"},{"type":"functional","title":"UI Interactions across all screens and forms","description":"Verify UI interactions and responsiveness across different devices.","testId":"TC-010","testDescription":"The application UI is responsive and interactive across various devices and screen sizes.","prerequisites":"Access to different devices and screen sizes.","stepsToPerform":"1. Access the application on a desktop.\n2. Navigate through various screens and forms.\n3. Repeat steps on a mobile device.","expectedResult":"UI elements are responsive and interactive, providing a consistent user experience across devices.","additionalFields":"UI Interactions for responsiveness, Cross-browser compatibility checks"},{"type":"functional","title":"Guest Checkout Process","description":"Verify the checkout process for a guest user without account creation.","testId":"TC-011","testDescription":"A guest user completes the checkout process without creating an account.","prerequisites":"Guest checkout option must be enabled.","stepsToPerform":"1. Add products to the cart.\n2. Proceed to checkout as a guest.\n3. Enter shipping and billing details.\n4. Select payment method.\n5. Complete the payment.","expectedResult":"Order is processed successfully, and a confirmation message is displayed.","additionalFields":"Boundary Value Analysis for shipping details, Integration testing with payment gateways"},{"type":"functional","title":"Password Recovery Process","description":"Verify the password recovery process for users who forgot their password.","testId":"TC-012","testDescription":"A user initiates a password recovery process to reset their forgotten password.","prerequisites":"User must have an existing account with a registered email.","stepsToPerform":"1. Navigate to the login page.\n2. Click on 'Forgot Password'.\n3. Enter registered email address.\n4. Check email for recovery link.\n5. Follow the link and reset the password.","expectedResult":"User receives a recovery email and successfully resets their password.","additionalFields":"Data integrity checks for email handling, UI Interactions for recovery link"},{"type":"functional","title":"Product Review Submission","description":"Verify the ability for users to submit product reviews.","testId":"TC-013","testDescription":"A user submits a review for a purchased product.","prerequisites":"User must be logged in and have purchased the product.","stepsToPerform":"1. Navigate to the product page.\n2. Click on 'Write a Review'.\n3. Enter review details and rating.\n4. Submit the review.","expectedResult":"Review is submitted successfully and appears on the product page.","additionalFields":"Data validation for review content, UI Interactions for review submission"},{"type":"functional","title":"Wishlist Management","description":"Verify adding and removing items from the wishlist.","testId":"TC-014","testDescription":"A user adds products to the wishlist and removes them as needed.","prerequisites":"User must be logged in.","stepsToPerform":"1. Navigate to a product page.\n2. Click 'Add to Wishlist'.\n3. Navigate to the wishlist.\n4. Remove a product from the wishlist.","expectedResult":"Products are added and removed from the wishlist correctly, and the wishlist updates accordingly.","additionalFields":"State Transition testing for wishlist state, UI Interactions for add/remove actions"},{"type":"functional","title":"Multi-Currency Support","description":"Verify the application supports multiple currencies for international users.","testId":"TC-015","testDescription":"A user selects a different currency and completes a purchase.","prerequisites":"Multi-currency feature must be enabled.","stepsToPerform":"1. Navigate to the currency selection option.\n2. Select a different currency.\n3. Add products to the cart.\n4. Proceed to checkout and complete the payment.","expectedResult":"Prices are displayed in the selected currency, and the transaction is completed successfully.","additionalFields":"Boundary Value Analysis for currency conversion, UI Interactions for currency selection"}] \ 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..fd23c88d752b800529dba1446ea13d270d984c5c GIT binary patch literal 9595 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 BQ`-Ol literal 0 HcmV?d00001