Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

What software testing is in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the software testing process correctly identifies a simple bug in a calculator app by verifying the addition function works as expected.

Test Code - unittest
Testing Fundamentals
import unittest

class Calculator:
    def add(self, a, b):
        return a + b

class TestCalculator(unittest.TestCase):
    def test_addition(self):
        calc = Calculator()
        result = calc.add(2, 3)
        self.assertEqual(result, 5, "Addition result should be 5")

if __name__ == '__main__':
    unittest.main()
Execution Trace - 5 Steps
StepActionSystem StateAssertionResult
1Test startsTesting framework initializes the test runner—PASS
2Creates Calculator instanceCalculator object ready for use—PASS
3Calls add method with inputs 2 and 3Calculator processes addition—PASS
4Checks if result equals 5Result is 5self.assertEqual(result, 5)PASS
5Test endsTest runner reports success—PASS
Failure Scenario
Failing Condition: The add method returns incorrect sum, e.g., 4 instead of 5
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test verify in this example?
AThat the test framework runs without errors
BThat the add method returns the correct sum
CThat the Calculator class can be created
DThat the add method returns a string
Key Result
Always write tests that check the expected behavior clearly, so bugs can be found early and fixed easily.

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