Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Test progress reporting in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test simulates a simple test progress reporting scenario. It verifies that the test runner correctly reports the start, progress, and completion of multiple test steps.

Test Code - PyTest
Testing Fundamentals
class TestProgressReporting:
    def __init__(self):
        self.steps = ["Initialize", "Load Data", "Process Data", "Generate Report"]
        self.progress = []

    def run_test(self):
        print("Test starts")
        for step in self.steps:
            print(f"Running step: {step}")
            self.progress.append(step)
            print(f"Progress: {len(self.progress)}/{len(self.steps)} steps completed")
        print("Test completed successfully")

    def verify_progress(self):
        assert len(self.progress) == len(self.steps), "Not all steps completed"

if __name__ == "__main__":
    test = TestProgressReporting()
    test.run_test()
    test.verify_progress()
Execution Trace - 10 Steps
StepActionSystem StateAssertionResult
1Test startsTestProgressReporting instance created, steps list initialized—PASS
2Running step: InitializeStep 'Initialize' is being executedProgress list contains 'Initialize'PASS
3Progress: 1/4 steps completedOne step completed out of four—PASS
4Running step: Load DataStep 'Load Data' is being executedProgress list contains 'Load Data'PASS
5Progress: 2/4 steps completedTwo steps completed out of four—PASS
6Running step: Process DataStep 'Process Data' is being executedProgress list contains 'Process Data'PASS
7Progress: 3/4 steps completedThree steps completed out of four—PASS
8Running step: Generate ReportStep 'Generate Report' is being executedProgress list contains 'Generate Report'PASS
9Progress: 4/4 steps completedAll four steps completed—PASS
10Test completed successfullyTest run finished with all steps doneAssert that progress list length equals steps list lengthPASS
Failure Scenario
Failing Condition: If one or more steps are not added to the progress list during execution
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test print when it starts running?
ATest starts
BTest completed successfully
CRunning step: Initialize
DProgress: 1/4 steps completed
Key Result
Always track and verify each test step's progress to ensure the test completes all intended actions.

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