Bird
Raised Fist0
Testing Fundamentalstesting~8 mins

Test progress reporting in Testing Fundamentals - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Test progress reporting
Folder Structure for Test Progress Reporting Framework
project-root/
├── tests/                  # Test cases organized by feature or module
│   ├── login_tests.py
│   ├── checkout_tests.py
│   └── ...
├── reports/                # Generated test reports (HTML, XML, JSON)
│   └── latest_report.html
├── logs/                   # Logs capturing test execution details
│   └── test_run.log
├── config/                 # Configuration files for environments and reporting
│   └── config.yaml
├── utils/                  # Utility scripts for reporting and logging
│   └── report_helper.py
├── conftest.py             # Pytest fixtures for setup, teardown, and reporting hooks
└── pytest.ini              # Pytest configuration including reporting plugins
Test Framework Layers for Test Progress Reporting
  • Test Layer: Contains test scripts that execute test cases and trigger reporting events.
  • Reporting Layer: Handles capturing test progress, generating reports, and formatting output (e.g., HTML, XML, JSON).
  • Logging Layer: Records detailed logs of test execution steps and errors for debugging.
  • Configuration Layer: Manages environment settings, report formats, and notification preferences.
  • Utility Layer: Provides helper functions for report generation, timestamping, and sending notifications.
Configuration Patterns for Test Progress Reporting
  • Environment Settings: Use a YAML or JSON config file (e.g., config/config.yaml) to define environments (dev, staging, prod) and reporting options.
  • Report Format Selection: Configure report output formats (HTML, XML, JSON) via config file or command line options.
  • Credentials and Notifications: Store notification credentials (email, Slack tokens) securely and configure notification triggers for test progress updates.
  • Pytest Integration: Use pytest.ini to enable reporting plugins like pytest-html and configure report paths.
Test Reporting and CI/CD Integration
  • Real-time Progress Reporting: Use test runner hooks to show live progress in console or CI logs.
  • Detailed Reports: Generate human-readable HTML reports with test results, screenshots, and logs.
  • Machine-readable Reports: Produce XML or JSON reports for CI tools to parse and display.
  • CI/CD Integration: Configure CI pipelines (e.g., GitHub Actions, Jenkins) to run tests, collect reports, and fail builds on test failures.
  • Notifications: Send test progress summaries or failure alerts via email or chat tools after test runs.
Best Practices for Test Progress Reporting Frameworks
  1. Use Standard Reporting Plugins: Leverage existing tools like pytest-html or JUnit XML to avoid reinventing reporting.
  2. Keep Reports Clear and Concise: Show only relevant information to quickly understand test status and failures.
  3. Integrate with CI/CD Early: Automate test runs and reporting to catch issues quickly and maintain quality.
  4. Separate Logs and Reports: Keep detailed logs for debugging separate from summary reports for clarity.
  5. Secure Sensitive Data: Never hardcode credentials in config files; use environment variables or secret managers.
Self Check Question

Where in this folder structure would you add a new utility script to send test progress notifications to a Slack channel?

Key Result
Organize test progress reporting with clear layers for tests, reporting, logging, configuration, and utilities to enable real-time feedback and CI integration.

Practice

(1/5)
1. What does test progress reporting mainly show during software testing?
easy
A. How many tests have been completed and how many are left
B. The total number of bugs found in the software
C. The time taken to write each test case
D. The number of developers working on the project

Solution

  1. Step 1: Understand the purpose of test progress reporting

    Test progress reporting is designed to show the current status of testing, specifically how many tests are done and how many remain.
  2. Step 2: Compare options with the definition

    Only How many tests have been completed and how many are left correctly describes this purpose. Other options describe different metrics unrelated to progress reporting.
  3. Final Answer:

    How many tests have been completed and how many are left -> Option A
  4. Quick Check:

    Progress reporting = tests done vs remaining [OK]
Hint: Focus on tests done and left to find progress [OK]
Common Mistakes:
  • Confusing bug count with progress
  • Thinking progress shows developer count
  • Mixing test writing time with progress
2. Which of the following is the correct way to represent test progress as a percentage?
easy
A. (Total tests / Number of tests completed) * 100
B. (Number of tests completed / Total tests) * 100
C. (Number of tests remaining / Number of tests completed) * 100
D. (Number of tests completed - Number of tests remaining) * 100

Solution

  1. Step 1: Recall the formula for percentage progress

    Progress percentage is calculated by dividing completed tests by total tests, then multiplying by 100.
  2. Step 2: Evaluate each option

    (Number of tests completed / Total tests) * 100 matches the correct formula. Options B, C, and D use incorrect divisions or operations.
  3. Final Answer:

    (Number of tests completed / Total tests) * 100 -> Option B
  4. Quick Check:

    Progress % = completed ÷ total x 100 [OK]
Hint: Divide completed by total, then multiply by 100 [OK]
Common Mistakes:
  • Reversing numerator and denominator
  • Using subtraction instead of division
  • Multiplying before dividing
3. Consider this code snippet updating test progress:
total_tests = 50
completed_tests = 20
progress = (completed_tests / total_tests) * 100
print(f"Progress: {progress}%")
What will be the printed output?
medium
A. Progress: 25.0%
B. Progress: 20.0%
C. Progress: 50.0%
D. Progress: 40.0%

Solution

  1. Step 1: Calculate the progress value

    progress = (20 / 50) * 100 = 0.4 * 100 = 40.0
  2. Step 2: Check the printed output

    The print statement outputs "Progress: 40.0%" exactly.
  3. Final Answer:

    Progress: 40.0% -> Option D
  4. Quick Check:

    20 ÷ 50 x 100 = 40.0 [OK]
Hint: Divide completed by total, multiply by 100 for percent [OK]
Common Mistakes:
  • Misreading completed and total values
  • Confusing 20/50 as 25%
  • Ignoring multiplication by 100
4. A tester wrote this code to show test progress:
total_tests = 100
completed_tests = 30
progress = completed_tests / total_tests * 100
print("Progress: " + progress + "%")
What is the error in this code?
medium
A. Division by zero error
B. Incorrect formula for progress
C. Cannot concatenate string and float directly
D. Missing parentheses in print statement

Solution

  1. Step 1: Identify the data types in the print statement

    progress is a float, and the code tries to concatenate it directly with strings using +.
  2. Step 2: Understand Python string concatenation rules

    Python cannot concatenate string and float directly; progress must be converted to string first.
  3. Final Answer:

    Cannot concatenate string and float directly -> Option C
  4. Quick Check:

    String + float needs conversion [OK]
Hint: Convert numbers to string before concatenation [OK]
Common Mistakes:
  • Assuming division by zero
  • Thinking formula is wrong
  • Ignoring type errors in print
5. You want to create a test progress report that updates after each test and shows both fraction and percentage. Which approach is best?
hard
A. After each test, print: "Completed X/Y tests (Z%)" where Z = (X/Y)*100
B. Print total tests once, then print completed tests separately without percentage
C. Only print percentage after all tests finish
D. Print completed tests count only, no total or percentage

Solution

  1. Step 1: Understand the goal of progress reporting

    It should show how many tests are done, total tests, and progress percentage updated continuously.
  2. Step 2: Evaluate each option for completeness and clarity

    After each test, print: "Completed X/Y tests (Z%)" where Z = (X/Y)*100 shows fraction and percentage after each test, which is clear and informative. Other options miss key info or delay updates.
  3. Final Answer:

    After each test, print: "Completed X/Y tests (Z%)" where Z = (X/Y)*100 -> Option A
  4. Quick Check:

    Show fraction and percent continuously [OK]
Hint: Show fraction and percent after each test for clarity [OK]
Common Mistakes:
  • Not updating progress continuously
  • Omitting total tests count
  • Showing only percentage or only count
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