Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Building a testing portfolio in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Create and verify a simple testing portfolio webpage
Preconditions (2)
Step 1: Open a new HTML file in the editor
Step 2: Create a webpage with a header titled 'My Testing Portfolio'
Step 3: Add a section with a list of three testing projects, each with a project name and a short description
Step 4: Add a footer with contact information
Step 5: Save the file as 'portfolio.html'
Step 6: Open 'portfolio.html' in the web browser
Step 7: Verify the header text is exactly 'My Testing Portfolio'
Step 8: Verify there are exactly three projects listed
Step 9: Verify each project has a name and description
Step 10: Verify the footer contains contact information
✅ Expected Result: The webpage displays a header 'My Testing Portfolio', three projects each with name and description, and a footer with contact info
Automation Requirements - Selenium with Python
Assertions Needed:
Header text equals 'My Testing Portfolio'
Exactly three project items are present
Each project item contains a project name and description
Footer contains contact information text
Best Practices:
Use explicit waits to ensure elements are loaded
Use semantic locators like By.TAG_NAME, By.CLASS_NAME
Organize code with setup and teardown methods
Use clear assertion messages
Automated Solution
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 TestPortfolioPage(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('file:///path/to/portfolio.html')  # Update path accordingly
        self.wait = WebDriverWait(self.driver, 10)

    def test_portfolio_content(self):
        driver = self.driver
        wait = self.wait

        # Wait for header and verify text
        header = wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'h1')))
        self.assertEqual(header.text, 'My Testing Portfolio', 'Header text does not match')

        # Find project list container
        projects = driver.find_elements(By.CLASS_NAME, 'project')
        self.assertEqual(len(projects), 3, 'There should be exactly 3 projects')

        # Verify each project has name and description
        for i, project in enumerate(projects, start=1):
            name = project.find_element(By.CLASS_NAME, 'project-name').text
            desc = project.find_element(By.CLASS_NAME, 'project-desc').text
            self.assertTrue(name.strip(), f'Project {i} name is empty')
            self.assertTrue(desc.strip(), f'Project {i} description is empty')

        # Verify footer contact info
        footer = driver.find_element(By.TAG_NAME, 'footer')
        self.assertIn('contact', footer.text.lower(), 'Footer does not contain contact information')

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

if __name__ == '__main__':
    unittest.main()

This test script uses Selenium with Python's unittest framework.

setUp: Opens the browser and loads the local portfolio HTML file.

test_portfolio_content: Waits for the header and checks its text. Finds all project elements by class name 'project' and asserts there are exactly three. For each project, it checks that the name and description elements are not empty. Finally, it checks the footer contains the word 'contact' to confirm contact info is present.

tearDown: Closes the browser after the test.

This structure ensures the test is clear, waits for elements properly, and uses semantic locators for maintainability.

Common Mistakes - 3 Pitfalls
Using hardcoded sleep instead of explicit waits
Using brittle XPath selectors that break easily
Not verifying all required elements (e.g., missing project descriptions)
Bonus Challenge

Now add data-driven testing with 3 different portfolio HTML files, each with different project details

Show Hint

Practice

(1/5)
1. What is the main purpose of a testing portfolio?
easy
A. To showcase your testing skills and experience
B. To store all your personal documents
C. To write code for software development
D. To manage project deadlines

Solution

  1. Step 1: Understand the role of a testing portfolio

    A testing portfolio is a collection of your work that shows your skills in software testing.
  2. Step 2: Identify the correct purpose

    It is used to prove your testing abilities to employers or clients, not for unrelated tasks like storing personal documents or managing deadlines.
  3. Final Answer:

    To showcase your testing skills and experience -> Option A
  4. Quick Check:

    Testing portfolio = showcase skills [OK]
Hint: Think: What would impress a hiring manager? [OK]
Common Mistakes:
  • Confusing portfolio with personal file storage
  • Thinking it's for coding instead of testing
  • Mixing portfolio with project management tools
2. Which of the following is the correct way to organize test cases in a portfolio?
easy
A. Random order based on when they were written
B. Grouped by feature or functionality tested
C. Only include failed test cases
D. Mix test cases with unrelated documents

Solution

  1. Step 1: Understand organization best practices

    Organizing test cases by feature or functionality helps reviewers find relevant tests easily.
  2. Step 2: Eliminate poor organization methods

    Random order or mixing with unrelated documents makes the portfolio confusing. Including only failed tests is incomplete.
  3. Final Answer:

    Grouped by feature or functionality tested -> Option B
  4. Quick Check:

    Organize by feature = clear portfolio [OK]
Hint: Group similar tests together for clarity [OK]
Common Mistakes:
  • Leaving test cases unordered
  • Including only failed tests
  • Mixing unrelated files with test cases
3. Consider this snippet from a testing portfolio README:
Test Cases Included:
- Login Functionality
- Payment Processing
- User Profile Update

Bug Reports:
- Bug #101: Login fails on invalid password
- Bug #102: Payment gateway timeout

Automation Scripts:
- login_test.py
- payment_test.py
What will a reviewer most likely conclude about this portfolio?
medium
A. It only contains automation scripts without test cases
B. It lacks any bug reporting details
C. It is missing any test case descriptions
D. It is well-rounded with manual and automated tests

Solution

  1. Step 1: Analyze the portfolio contents

    The portfolio lists test cases, bug reports, and automation scripts, showing a variety of testing work.
  2. Step 2: Check for completeness

    Bug reports are included with details, and test cases cover features. Automation scripts are also present.
  3. Final Answer:

    It is well-rounded with manual and automated tests -> Option D
  4. Quick Check:

    Multiple test types = well-rounded portfolio [OK]
Hint: Look for variety: test cases, bugs, scripts [OK]
Common Mistakes:
  • Ignoring bug report details
  • Assuming automation means no manual tests
  • Missing that test cases are listed
4. You find this error in your testing portfolio README:
- Bug #201: "App crashes when clicking submit"
- Bug #202: "Login button not working"
- Bug #201: "Payment page freezes"

What is the main issue here?
medium
A. Bug descriptions are too detailed
B. Missing automation scripts
C. Duplicate bug IDs causing confusion
D. Test cases are not listed

Solution

  1. Step 1: Identify the problem in bug IDs

    Bug #201 appears twice with different descriptions, which can confuse readers and tracking systems.
  2. Step 2: Understand impact of duplicate IDs

    Duplicate IDs make it hard to reference bugs correctly and can cause errors in bug tracking.
  3. Final Answer:

    Duplicate bug IDs causing confusion -> Option C
  4. Quick Check:

    Unique bug IDs prevent confusion [OK]
Hint: Check for unique bug numbers [OK]
Common Mistakes:
  • Ignoring duplicate IDs
  • Thinking missing scripts is the main issue
  • Assuming descriptions are too long
5. You want to improve your testing portfolio by adding automation scripts. Which approach best demonstrates your skills?
hard
A. Add scripts that cover critical features with clear comments and results
B. Add many scripts without comments to show volume
C. Add scripts only for features you find easy to test
D. Add scripts that randomly test unrelated parts of the app

Solution

  1. Step 1: Identify quality over quantity

    Adding scripts that cover important features shows thoughtful testing and skill.
  2. Step 2: Importance of clarity and relevance

    Clear comments and showing test results help reviewers understand your work and its impact.
  3. Final Answer:

    Add scripts that cover critical features with clear comments and results -> Option A
  4. Quick Check:

    Quality scripts + clarity = strong portfolio [OK]
Hint: Focus on quality and clarity, not quantity [OK]
Common Mistakes:
  • Adding many unclear scripts
  • Ignoring critical features
  • Testing random unrelated parts
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