Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

User story testing in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the login feature works as described in the user story. It verifies that a user can enter valid credentials and successfully log in to the application.

Test Code - Selenium with unittest
Testing Fundamentals
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class TestLoginUserStory(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://example.com/login')

    def test_valid_login(self):
        driver = self.driver
        # Wait for username field
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'username')))
        username_input = driver.find_element(By.ID, 'username')
        password_input = driver.find_element(By.ID, 'password')
        login_button = driver.find_element(By.ID, 'login-btn')

        username_input.send_keys('validUser')
        password_input.send_keys('validPass123')
        login_button.click()

        # Wait for dashboard page to load
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'dashboard')))
        dashboard = driver.find_element(By.ID, 'dashboard')

        self.assertTrue(dashboard.is_displayed(), 'Dashboard should be visible after login')

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()
Execution Trace - 8 Steps
StepActionSystem StateAssertionResult
1Test starts and opens Chrome browserBrowser opens at 'https://example.com/login' showing login page with username, password fields and login button—PASS
2Waits for username input field to be presentLogin page fully loaded with username input visiblePresence of element with ID 'username'PASS
3Finds username, password inputs and login buttonAll three elements found on the page—PASS
4Enters 'validUser' in username and 'validPass123' in password fieldsInput fields filled with valid credentials—PASS
5Clicks the login buttonLogin request sent, page starts loading dashboard—PASS
6Waits for dashboard element to be presentDashboard page loaded with element ID 'dashboard' visiblePresence of element with ID 'dashboard'PASS
7Checks if dashboard is displayedDashboard visible on screendashboard.is_displayed() returns TruePASS
8Test ends and browser closesBrowser closed—PASS
Failure Scenario
Failing Condition: Dashboard element does not appear after login attempt
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test verify after clicking the login button?
AThat an error message appears
BThat the dashboard page is displayed
CThat the login button is disabled
DThat the username field is cleared
Key Result
Always wait explicitly for key page elements after actions like login to ensure the page has loaded before checking results. This avoids flaky tests.

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