Bird
Raised Fist0
Testing Fundamentalstesting~8 mins

User story testing in Testing Fundamentals - Framework Patterns

Choose your learning style10 modes available
Framework Mode - User story testing
Folder Structure for User Story Testing
user-story-testing-project/
├── user_stories/
│   ├── US001_login.feature
│   ├── US002_shopping_cart.feature
│   └── US003_checkout.feature
├── tests/
│   ├── test_login.py
│   ├── test_shopping_cart.py
│   └── test_checkout.py
├── data/
│   ├── test_data_login.json
│   └── test_data_checkout.json
├── utils/
│   └── helpers.py
├── config/
│   └── config.yaml
├── reports/
│   └── latest_report.html
└── README.md
Test Framework Layers for User Story Testing
  • User Stories Layer: Contains user story files describing features in simple language (e.g., Gherkin .feature files).
  • Test Layer: Automated test scripts that implement tests based on user stories, verifying acceptance criteria.
  • Data Layer: Test data files to provide inputs and expected outputs for tests, supporting data-driven testing.
  • Utility Layer: Helper functions and common utilities to support test execution and data handling.
  • Configuration Layer: Environment settings, credentials, and test parameters to run tests in different contexts.
  • Reporting Layer: Generates test execution reports showing which user stories passed or failed.
Configuration Patterns for User Story Testing
  • Environment Config: Use a YAML or JSON file (e.g., config/config.yaml) to store URLs, environment names (dev, staging, prod), and other settings.
  • Credentials Management: Store sensitive data securely outside the code, load them at runtime from environment variables or encrypted files.
  • Browser or Platform Settings: Define test execution parameters (browser type, headless mode) in config files to allow easy switching.
  • Test Data Separation: Keep test data separate from test logic to allow easy updates and reuse across user stories.
Test Reporting and CI/CD Integration
  • Test Reports: Generate clear HTML or XML reports after test runs showing which user stories passed or failed, with details on failed steps.
  • CI/CD Integration: Integrate tests into Continuous Integration pipelines (e.g., GitHub Actions, Jenkins) to run tests automatically on code changes.
  • Notifications: Configure email or chat notifications to alert the team about test results related to user stories.
  • Traceability: Link test results back to user stories for easy tracking of feature quality and progress.
Best Practices for User Story Testing Framework
  • Write Tests from User Perspective: Design tests that reflect real user actions and acceptance criteria described in user stories.
  • Keep User Stories Clear and Simple: Use plain language and avoid technical jargon to ensure everyone understands the feature and tests.
  • Separate Test Data from Test Logic: This makes tests easier to maintain and reuse for different scenarios.
  • Automate Acceptance Criteria: Automate tests that verify each acceptance criterion to ensure the feature works as expected.
  • Maintain Traceability: Keep clear links between user stories, test cases, and test results for easy reporting and debugging.
Self Check Question

Where in this folder structure would you add a new automated test script for a new user story about "Password Reset"?

Key Result
Organize tests around user stories with clear layers for stories, tests, data, utilities, config, and reporting.

Practice

(1/5)
1. What is the main purpose of user story testing in software development?
easy
A. To verify that the software meets the user's needs and expectations
B. To check the software's installation process
C. To test the software's performance under heavy load
D. To review the software's code quality

Solution

  1. Step 1: Understand user story testing focus

    User story testing focuses on validating features from the user's perspective, ensuring the software solves real user problems.
  2. Step 2: Compare options to user story testing goal

    Options A, B, and D focus on technical or internal aspects, not user needs.
  3. Final Answer:

    To verify that the software meets the user's needs and expectations -> Option A
  4. Quick Check:

    User needs = Verify software meets needs [OK]
Hint: User story testing checks if software fits user needs [OK]
Common Mistakes:
  • Confusing user story testing with performance testing
  • Thinking it focuses on code quality
  • Assuming it tests installation or setup
2. Which of the following is the correct way to write a test scenario from a user story: "As a user, I want to log in so that I can access my dashboard"?
easy
A. Test if the login page loads within 5 seconds
B. Check if the database connection is active
C. Verify that entering valid credentials allows access to the dashboard
D. Measure the CPU usage during login

Solution

  1. Step 1: Identify the user story goal

    The story is about logging in to access the dashboard, so the test should check login success with valid credentials.
  2. Step 2: Match test scenarios to the story

    Verify that entering valid credentials allows access to the dashboard directly tests the login functionality as per the story. Options A, C, and D focus on performance or backend, not user goal.
  3. Final Answer:

    Verify that entering valid credentials allows access to the dashboard -> Option C
  4. Quick Check:

    Test scenario matches user goal [OK]
Hint: Test scenarios must match user story goals exactly [OK]
Common Mistakes:
  • Testing technical details unrelated to user goal
  • Confusing performance tests with functional tests
  • Ignoring the 'so that' part of the user story
3. Given the user story: "As a shopper, I want to add items to my cart so that I can buy them later", which test result indicates the feature works correctly?
medium
A. After adding an item, the cart shows the correct item and quantity
B. The website loads the homepage in under 2 seconds
C. The user receives an error when trying to add an item
D. The cart icon disappears after adding an item

Solution

  1. Step 1: Understand the user story's expected outcome

    The story expects items to be added to the cart and visible for later purchase.
  2. Step 2: Identify the test result that matches this outcome

    After adding an item, the cart shows the correct item and quantity confirms the cart updates correctly. Options A, B, and C do not confirm correct cart behavior.
  3. Final Answer:

    After adding an item, the cart shows the correct item and quantity -> Option A
  4. Quick Check:

    Cart updates correctly = Feature works [OK]
Hint: Look for test results that confirm user story success [OK]
Common Mistakes:
  • Confusing performance with functional correctness
  • Assuming errors mean success
  • Ignoring UI feedback like cart icon visibility
4. A tester wrote this test step for the user story "As an admin, I want to delete users": "Click the delete button and check if the user is removed". The test fails because the user is not deleted. What is the most likely error?
medium
A. The delete button was clicked twice accidentally
B. The test missed confirming the confirmation popup before deletion
C. The user was deleted but the page did not refresh
D. The test used the wrong user credentials

Solution

  1. Step 1: Analyze the test step and failure

    The test clicks delete but the user remains, suggesting a missing confirmation step.
  2. Step 2: Identify common deletion flow issues

    Many delete actions require confirming a popup; missing this blocks deletion. Options B, C, and D are less likely causes.
  3. Final Answer:

    The test missed confirming the confirmation popup before deletion -> Option B
  4. Quick Check:

    Missing confirmation popup blocks deletion [OK]
Hint: Check for confirmation dialogs in delete actions [OK]
Common Mistakes:
  • Ignoring confirmation popups
  • Assuming UI refresh means deletion
  • Not verifying correct user permissions
5. You have this user story: "As a user, I want to filter products by price so that I can find affordable options." Which of the following test cases best covers this story including edge cases?
hard
A. Test filtering with negative price values
B. Test filtering with only maximum price set to 100
C. Test filtering with price range 50 to 50
D. Test filtering with minimum price 0, maximum price 100, and no products in range

Solution

  1. Step 1: Understand the user story and edge cases

    The story requires filtering by price, including cases where no products match.
  2. Step 2: Evaluate test cases for coverage

    Test filtering with minimum price 0, maximum price 100, and no products in range tests a full range including zero and no matching products, covering normal and edge cases. Options B, C, and D miss some edge cases or use invalid inputs.
  3. Final Answer:

    Test filtering with minimum price 0, maximum price 100, and no products in range -> Option D
  4. Quick Check:

    Full range and no-match edge case tested [OK]
Hint: Include edge cases like empty results in user story tests [OK]
Common Mistakes:
  • Ignoring no-match scenarios
  • Testing only partial filters
  • Using invalid negative prices without story support
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard