Bird
Raised Fist0
Testing Fundamentalstesting~15 mins

Test execution reporting in Testing Fundamentals - Build an Automation Script

Choose your learning style10 modes available
Verify test execution report generation after running test cases
Preconditions (2)
Step 1: Run the automated test suite using the test runner command
Step 2: Wait for the test execution to complete
Step 3: Locate the generated test execution report file
Step 4: Open the report file
Step 5: Verify the report contains the test case names
Step 6: Verify the report shows the pass/fail status for each test case
Step 7: Verify the report includes the total number of tests run
Step 8: Verify the report includes the number of passed and failed tests
✅ Expected Result: A test execution report file is generated that lists all test cases run, their pass/fail status, and summary statistics of total, passed, and failed tests.
Automation Requirements - pytest
Assertions Needed:
Report file exists after test run
Report file contains test case names
Report file contains pass/fail status for each test
Report file contains summary of total, passed, and failed tests
Best Practices:
Use pytest built-in reporting options
Use assertions to verify report content
Use setup and teardown hooks if needed
Keep test code clean and readable
Automated Solution
Testing Fundamentals
import os
import pytest

REPORT_PATH = 'test_report.txt'

@pytest.fixture(scope='session', autouse=True)
def generate_report(request):
    # Run tests and generate report after all tests
    yield
    # Simulate report generation for demonstration
    with open(REPORT_PATH, 'w') as f:
        f.write('Test Case: test_example_1 - PASS\n')
        f.write('Test Case: test_example_2 - FAIL\n')
        f.write('Total tests: 2\n')
        f.write('Passed: 1\n')
        f.write('Failed: 1\n')


def test_example_1():
    assert 1 + 1 == 2

def test_example_2():
    assert 1 + 1 == 3


def test_report_file_exists():
    assert os.path.exists(REPORT_PATH), f'Report file {REPORT_PATH} should exist'


def test_report_contains_test_names():
    with open(REPORT_PATH) as f:
        content = f.read()
    assert 'test_example_1' in content
    assert 'test_example_2' in content


def test_report_contains_pass_fail_status():
    with open(REPORT_PATH) as f:
        content = f.read()
    assert 'PASS' in content
    assert 'FAIL' in content


def test_report_contains_summary():
    with open(REPORT_PATH) as f:
        content = f.read()
    assert 'Total tests: 2' in content
    assert 'Passed: 1' in content
    assert 'Failed: 1' in content

This code uses pytest to run two simple test cases: one that passes and one that fails.

The generate_report fixture runs once per test session and after all tests finish, it creates a simple text report file test_report.txt with test names, pass/fail status, and summary counts.

Separate test functions then check that the report file exists and contains the expected information. This simulates verifying a test execution report.

Using fixtures and assertions keeps the code organized and clear. The report generation is simplified here for demonstration but shows the key idea of verifying test execution reporting.

Common Mistakes - 4 Pitfalls
Not waiting for tests to finish before checking the report
Hardcoding report file paths without flexibility
Not asserting the presence of all required report details
Generating report manually inside test cases
Bonus Challenge

Now add data-driven testing with 3 different inputs and verify the report includes all test runs

Show Hint

Practice

(1/5)
1. What is the main purpose of a test execution report in software testing?
easy
A. To write new test cases
B. To design the software architecture
C. To show which tests passed or failed
D. To deploy the software to users

Solution

  1. Step 1: Understand the role of test execution reports

    Test execution reports summarize the results of running tests, showing which tests passed or failed.
  2. Step 2: Eliminate unrelated options

    Writing test cases, designing software, and deploying are different activities not related to reporting test results.
  3. Final Answer:

    To show which tests passed or failed -> Option C
  4. Quick Check:

    Test execution report = pass/fail summary [OK]
Hint: Reports show pass/fail status clearly [OK]
Common Mistakes:
  • Confusing report with test design
  • Thinking reports deploy software
  • Assuming reports write tests
2. Which of the following is a common element included in a test execution report?
easy
A. Test case names and their status
B. Source code of the application
C. User interface design sketches
D. Database schema diagrams

Solution

  1. Step 1: Identify typical report contents

    Test execution reports usually list test case names and whether they passed or failed.
  2. Step 2: Remove unrelated technical documents

    Source code, UI sketches, and database diagrams are not part of test execution reports.
  3. Final Answer:

    Test case names and their status -> Option A
  4. Quick Check:

    Report = test names + status [OK]
Hint: Reports list tests and results, not design files [OK]
Common Mistakes:
  • Including source code in reports
  • Confusing reports with design documents
  • Expecting diagrams in test reports
3. Consider this test execution report snippet:
TestLogin: Passed
TestPayment: Failed
TestLogout: Passed

How many tests passed according to this report?
medium
A. 1
B. 2
C. 3
D. 0

Solution

  1. Step 1: Count tests marked as Passed

    TestLogin and TestLogout are marked Passed, so 2 tests passed.
  2. Step 2: Confirm no other Passed tests

    TestPayment is Failed, so it does not count.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    Passed tests count = 2 [OK]
Hint: Count only 'Passed' labels in report [OK]
Common Mistakes:
  • Counting failed tests as passed
  • Misreading the report lines
  • Counting total tests instead of passed
4. A test execution report shows:
TestA: Passed
TestB: Passed
TestC: Passed
TestD: Passed

But the tester says TestC actually failed. What is the most likely problem?
medium
A. TestD result was copied to TestC by mistake
B. TestC was never executed
C. All tests actually passed
D. The report was not updated after the test run

Solution

  1. Step 1: Understand report and tester mismatch

    If the report shows TestC passed but tester says it failed, the report is outdated or incorrect.
  2. Step 2: Evaluate other options

    TestC was likely executed but result not updated; copying results is less common; all passing contradicts tester.
  3. Final Answer:

    The report was not updated after the test run -> Option D
  4. Quick Check:

    Report outdated = wrong pass shown [OK]
Hint: Mismatch means report not refreshed [OK]
Common Mistakes:
  • Assuming test was not run
  • Believing all tests passed
  • Ignoring report update timing
5. You have a test execution report with 10 tests: 7 passed, 2 failed, and 1 skipped. How should this report be presented to best help the development team?
hard
A. List all tests with status, highlight failed tests, and include error details
B. Show only passed tests to keep the report short
C. Exclude skipped tests and failed tests from the report
D. Report only the total number of tests run without details

Solution

  1. Step 1: Identify useful report content

    Listing all tests with their status helps the team see the full picture.
  2. Step 2: Emphasize failed tests and errors

    Highlighting failures and showing error details helps developers fix issues quickly.
  3. Final Answer:

    List all tests with status, highlight failed tests, and include error details -> Option A
  4. Quick Check:

    Complete, clear report = best for fixing bugs [OK]
Hint: Show all results, focus on failures with details [OK]
Common Mistakes:
  • Hiding failed or skipped tests
  • Giving only totals without details
  • Ignoring error messages
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