Bird
Raised Fist0
Testing Fundamentalstesting~8 mins

What software testing is in Testing Fundamentals - Framework Patterns

Choose your learning style10 modes available
Framework Mode - What software testing is
Folder Structure of a Simple Testing Project
project-root/
├── tests/
│   ├── test_login.py
│   ├── test_signup.py
│   └── test_checkout.py
├── src/
│   └── app_code.py
├── reports/
│   └── test_report.html
├── config/
│   └── config.yaml
├── utils/
│   └── helpers.py
└── README.md
Test Framework Layers
  • Test Cases Layer: Contains the actual test scripts that check if the software works as expected.
  • Application Code Layer: The main software code that is being tested.
  • Utilities Layer: Helper functions and tools to support tests, like data generators or loggers.
  • Configuration Layer: Holds settings like environment details and test data.
  • Reports Layer: Where test results and reports are saved for review.
Configuration Patterns

We keep settings separate from code to easily change things like:

  • Environment: Test on development, staging, or production servers by changing one place.
  • Credentials: Store usernames and passwords securely, not hard-coded in tests.
  • Test Data: Use external files or config to manage input data for tests.

This makes tests flexible and easy to maintain.

Test Reporting and CI/CD Integration

After tests run, we generate reports showing which tests passed or failed.

  • Reports help quickly find problems.
  • We can connect tests to CI/CD tools (like Jenkins or GitHub Actions) to run tests automatically when code changes.
  • This keeps software quality high and catches bugs early.
Best Practices for a Testing Framework
  • Keep tests independent: Each test should run alone without relying on others.
  • Use clear naming: Test names should explain what they check.
  • Separate test data: Don't mix data inside test code; keep it outside.
  • Automate reporting: Always have clear, easy-to-read test results.
  • Keep config flexible: Make it easy to switch environments or settings.
Self Check Question

Where in this folder structure would you add a new test for the user profile page?

Key Result
Software testing frameworks organize tests, code, configs, and reports to check software works correctly.

Practice

(1/5)
1. What is the main purpose of software testing?
easy
A. To find problems in software before users do
B. To write new software features
C. To design the software user interface
D. To increase the software size

Solution

  1. Step 1: Understand the goal of testing

    Testing aims to find bugs or issues in software early.
  2. Step 2: Compare options to this goal

    Only To find problems in software before users do matches this purpose; others describe unrelated tasks.
  3. Final Answer:

    To find problems in software before users do -> Option A
  4. Quick Check:

    Testing purpose = find problems [OK]
Hint: Testing finds bugs early to avoid user issues [OK]
Common Mistakes:
  • Confusing testing with coding new features
  • Thinking testing is about design
  • Believing testing increases software size
2. Which of the following is a correct way to describe software testing?
easy
A. Writing code to add new features
B. Manually or automatically checking software for errors
C. Designing the software architecture
D. Deploying software to users

Solution

  1. Step 1: Identify testing methods

    Testing can be manual or automated to find errors.
  2. Step 2: Match options to testing description

    Only Manually or automatically checking software for errors correctly describes testing methods; others describe different tasks.
  3. Final Answer:

    Manually or automatically checking software for errors -> Option B
  4. Quick Check:

    Testing = manual or automated checks [OK]
Hint: Testing checks software manually or with tools [OK]
Common Mistakes:
  • Mixing testing with coding or deployment
  • Ignoring automated testing
  • Confusing testing with design
3. A software tester wants to check if a login form works correctly. Which testing approach best fits this goal?
easy
A. Deploying the login form to production
B. Writing new code to add login features
C. Manual testing by entering usernames and passwords
D. Designing the login page layout

Solution

  1. Step 1: Understand the testing goal

    The tester wants to verify login functionality works as expected.
  2. Step 2: Choose the correct testing method

    Manual testing by entering credentials simulates real user actions to find issues.
  3. Final Answer:

    Manual testing by entering usernames and passwords -> Option C
  4. Quick Check:

    Testing login = manual input checks [OK]
Hint: Test login by trying real inputs manually [OK]
Common Mistakes:
  • Confusing testing with coding or design
  • Thinking deployment is testing
  • Ignoring manual testing importance
4. Consider this code snippet for a simple test check:
def test_sum():
    result = 2 + 2
    assert result == 4
    print('Test passed')

What will be the output when this test runs?
medium
A. Test passed
B. AssertionError
C. No output
D. SyntaxError

Solution

  1. Step 1: Check the assertion condition

    The sum 2 + 2 equals 4, so assert result == 4 passes.
  2. Step 2: Determine output after assertion

    Since assertion passes, 'Test passed' is printed.
  3. Final Answer:

    Test passed -> Option A
  4. Quick Check:

    2+2=4, assertion passes, print runs [OK]
Hint: If assert condition is true, print statement runs [OK]
Common Mistakes:
  • Thinking assertion fails causing error
  • Expecting no output from print
  • Confusing syntax errors with assertion
5. This test code has an error:
def test_divide():
    result = 10 / 0
    assert result == 0
    print('Test passed')

What is the error and how to fix it?
medium
A. AssertionError; fix by changing assert to result != 0
B. SyntaxError; fix by adding colon after function
C. NameError; fix by defining result before use
D. ZeroDivisionError; fix by avoiding division by zero

Solution

  1. Step 1: Identify the error in code

    Dividing by zero causes ZeroDivisionError at runtime.
  2. Step 2: Fix the error

    Avoid dividing by zero to prevent the error.
  3. Final Answer:

    ZeroDivisionError; fix by avoiding division by zero -> Option D
  4. Quick Check:

    Division by zero causes error [OK]
Hint: Division by zero causes error; never divide by zero [OK]
Common Mistakes:
  • Confusing runtime error with syntax error
  • Thinking assertion fails first
  • Ignoring division by zero problem
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