Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Transitioning to automation in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test simulates a simple web login automation to verify that the login button works and the user is redirected to the dashboard page. It checks if automation can successfully perform a login action and validate the result.

Test Code - Selenium with unittest
Testing Fundamentals
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
import unittest

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

    def test_login_button_redirects(self):
        driver = self.driver
        # Wait until login button is clickable
        login_button = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.ID, 'login-btn'))
        )
        login_button.click()
        # Wait until dashboard page loads by checking URL
        WebDriverWait(driver, 10).until(
            EC.url_contains('/dashboard')
        )
        self.assertIn('/dashboard', driver.current_url)

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

if __name__ == '__main__':
    unittest.main()
Execution Trace - 6 Steps
StepActionSystem StateAssertionResult
1Test starts and Chrome browser opensBrowser window opened at https://example.com/login—PASS
2Wait until login button with ID 'login-btn' is clickableLogin page fully loaded with login button visible and enabledLogin button is clickablePASS
3Click the login buttonBrowser navigates to new page after click—PASS
4Wait until URL contains '/dashboard' indicating page loadDashboard page loaded with URL containing '/dashboard'Current URL contains '/dashboard'PASS
5Assert that current URL contains '/dashboard'Dashboard page visibleassertIn('/dashboard', driver.current_url)PASS
6Close browser and end testBrowser closed—PASS
Failure Scenario
Failing Condition: Login button with ID 'login-btn' is not found or not clickable within 10 seconds
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test check after clicking the login button?
AIf the page title changes to 'Login Page'
BIf the URL contains '/dashboard' indicating successful navigation
CIf the login button changes color
DIf an alert popup appears
Key Result
Always wait explicitly for elements to be ready before interacting in automation to avoid flaky tests caused by timing issues.

Practice

(1/5)
1. Why is automation testing preferred for repeated test cases?
easy
A. Because it requires more manual effort
B. Because it cannot be reused
C. Because it is slower than manual testing
D. Because it runs tests quickly and without human error

Solution

  1. Step 1: Understand the nature of repeated tests

    Repeated tests are often boring and time-consuming when done manually.
  2. Step 2: Identify benefits of automation for repeated tests

    Automation runs tests quickly and consistently without human mistakes.
  3. Final Answer:

    Because it runs tests quickly and without human error -> Option D
  4. Quick Check:

    Automation speeds up repeated tests = B [OK]
Hint: Automation is best for fast, error-free repeated tests [OK]
Common Mistakes:
  • Thinking automation needs more manual work
  • Believing automation is slower than manual testing
  • Assuming automation cannot be reused
2. Which of the following is the correct way to start an automation script in Python?
easy
A. def test_function():\n assert True
B. function test_function() { assert true; }
C. test_function() => { assert true }
D. start test_function() { assert true }

Solution

  1. Step 1: Identify correct Python function syntax

    Python functions start with 'def' followed by the function name and parentheses.
  2. Step 2: Check the options for Python syntax

    def test_function():\n assert True uses 'def' and a colon, which is correct Python syntax.
  3. Final Answer:

    def test_function():\n assert True -> Option A
  4. Quick Check:

    Python functions start with def = D [OK]
Hint: Python functions start with 'def' keyword and colon [OK]
Common Mistakes:
  • Using JavaScript or other language syntax in Python
  • Missing colon after function definition
  • Incorrect arrow function syntax in Python
3. What will be the output of this Python test script?
def test_sum():
    total = 0
    for i in range(3):
        total += i
    assert total == 3
medium
A. SyntaxError occurs
B. Test passes successfully
C. AssertionError occurs
D. Test is skipped

Solution

  1. Step 1: Calculate the sum in the loop

    Loop runs i=0,1,2; total starts at 0, then adds 0+1+2 resulting in 3.
  2. Step 2: Verify the assertion total == 3

    total = 0+1+2 = 3, so assertion total == 3 is True, no error.
  3. Final Answer:

    Test passes successfully -> Option B
  4. Quick Check:

    Sum 0+1+2=3, assertion true = C [OK]
Hint: Sum range(3) is 0+1+2=3, so assertion passes [OK]
Common Mistakes:
  • Miscounting the sum of range(3)
  • Assuming assertion fails without calculation
  • Confusing syntax error with logic error
4. Identify the error in this automation test snippet:
def test_login():
    username = "user"
    password = "pass"
    assert username = "user"
medium
A. Using single equals '=' instead of '==' in assertion
B. Missing parentheses in assert statement
C. Incorrect variable names
D. Password variable is unused

Solution

  1. Step 1: Check the assertion syntax

    In Python, '=' is assignment, '==' is comparison. Assertion needs '==' to compare.
  2. Step 2: Identify the error type

    Using '=' in assert causes SyntaxError because assignment is not allowed there.
  3. Final Answer:

    Using single equals '=' instead of '==' in assertion -> Option A
  4. Quick Check:

    Assertions need '==' for comparison = A [OK]
Hint: Use '==' in assert, not '=' [OK]
Common Mistakes:
  • Confusing assignment '=' with comparison '=='
  • Ignoring syntax errors in assert statements
  • Thinking unused variables cause assertion errors
5. You want to automate a test that runs daily and checks if a website's homepage loads correctly. Which approach is best to start your automation?
hard
A. Manually check the homepage daily instead of automating
B. Write a complex script that tests every link on the homepage before scheduling
C. Write a simple script that opens the homepage and checks the title, then schedule it to run daily
D. Automate only after the website has no changes for a month

Solution

  1. Step 1: Choose a simple test to automate first

    Starting with a simple script to check the homepage title is easy and effective.
  2. Step 2: Schedule the script for daily runs

    Scheduling the script automates the daily check without manual effort.
  3. Final Answer:

    Write a simple script that opens the homepage and checks the title, then schedule it to run daily -> Option C
  4. Quick Check:

    Start simple and schedule = A [OK]
Hint: Start with simple checks before adding complexity [OK]
Common Mistakes:
  • Trying to automate too many things at once
  • Ignoring automation benefits and doing manual checks
  • Waiting too long to start automation
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