Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Black-box vs white-box testing in Testing Fundamentals - Test Execution Compared

Choose your learning style10 modes available
Test Overview

This test compares black-box and white-box testing approaches by verifying a simple login function works correctly without and with knowledge of the code.

Test Code - unittest
Testing Fundamentals
import unittest

# Simple login function to test

def login(username, password):
    # White-box knowledge: valid credentials are 'user' and 'pass123'
    if username == 'user' and password == 'pass123':
        return True
    else:
        return False

class TestLogin(unittest.TestCase):
    def test_black_box_valid(self):
        # Black-box test: only input/output knowledge
        self.assertTrue(login('user', 'pass123'))

    def test_black_box_invalid(self):
        self.assertFalse(login('user', 'wrongpass'))

    def test_white_box_edge(self):
        # White-box test: testing edge case knowing code
        self.assertFalse(login('', ''))

if __name__ == '__main__':
    unittest.main()
Execution Trace - 5 Steps
StepActionSystem StateAssertionResult
1Test suite startsTest runner initialized, login function loaded—PASS
2Run test_black_box_valid: call login('user', 'pass123')Function receives valid credentialsAssert login returns TruePASS
3Run test_black_box_invalid: call login('user', 'wrongpass')Function receives invalid passwordAssert login returns FalsePASS
4Run test_white_box_edge: call login('', '')Function receives empty strings as inputAssert login returns FalsePASS
5Test suite endsAll tests executedAll assertions passedPASS
Failure Scenario
Failing Condition: login function incorrectly returns True for invalid credentials
Execution Trace Quiz - 3 Questions
Test your understanding
Which test uses only input and output knowledge without looking at the code?
AUnit testing
BWhite-box testing
CBlack-box testing
DIntegration testing
Key Result
Black-box testing focuses on inputs and outputs without code knowledge, while white-box testing uses internal code knowledge to design tests, especially for edge cases.

Practice

(1/5)
1. Which testing type focuses on testing software without knowing its internal code?
easy
A. Integration testing
B. Black-box testing
C. Unit testing
D. White-box testing

Solution

  1. Step 1: Understand black-box testing concept

    Black-box testing examines software functionality without looking at the code inside.
  2. Step 2: Compare with white-box testing

    White-box testing requires knowledge of the internal code structure, unlike black-box testing.
  3. Final Answer:

    Black-box testing -> Option B
  4. Quick Check:

    Black-box = no code knowledge [OK]
Hint: Black-box ignores code, tests only inputs and outputs [OK]
Common Mistakes:
  • Confusing black-box with white-box testing
  • Thinking unit testing is always black-box
  • Assuming integration testing is black-box by default
2. Which of the following is a correct statement about white-box testing?
easy
A. It tests software without any knowledge of internal code.
B. It ignores the program's internal logic.
C. It only tests the user interface.
D. It requires access to the source code to design test cases.

Solution

  1. Step 1: Recall white-box testing definition

    White-box testing involves looking inside the code to create test cases.
  2. Step 2: Evaluate each option

    It requires access to the source code to design test cases. correctly states the need for source code access; others describe black-box or incorrect ideas.
  3. Final Answer:

    It requires access to the source code to design test cases. -> Option D
  4. Quick Check:

    White-box = code access needed [OK]
Hint: White-box needs code access; black-box does not [OK]
Common Mistakes:
  • Mixing up white-box and black-box definitions
  • Thinking white-box only tests UI
  • Believing white-box ignores internal logic
3. Consider this scenario: A tester writes test cases based on the program's code paths and conditions. What type of testing is this?
medium
A. White-box testing
B. Black-box testing
C. System testing
D. Acceptance testing

Solution

  1. Step 1: Identify testing based on code paths

    Testing that uses knowledge of code paths and conditions is white-box testing.
  2. Step 2: Eliminate other options

    Black-box ignores code; system and acceptance testing focus on overall system or user needs, not code paths.
  3. Final Answer:

    White-box testing -> Option A
  4. Quick Check:

    Code path testing = white-box [OK]
Hint: Code path knowledge means white-box testing [OK]
Common Mistakes:
  • Choosing black-box because of 'test cases' mention
  • Confusing system testing with white-box
  • Ignoring code path clues
4. A tester tries to perform white-box testing but does not have access to the source code. What is the main problem here?
medium
A. White-box testing only tests the user interface.
B. Black-box testing requires source code access.
C. White-box testing cannot be done without source code access.
D. Source code access is optional for white-box testing.

Solution

  1. Step 1: Understand white-box testing requirements

    White-box testing needs access to source code to examine internal logic.
  2. Step 2: Analyze options

    White-box testing cannot be done without source code access. correctly states the problem; others are false or contradict white-box principles.
  3. Final Answer:

    White-box testing cannot be done without source code access. -> Option C
  4. Quick Check:

    White-box needs code access [OK]
Hint: No code access means no white-box testing [OK]
Common Mistakes:
  • Thinking black-box needs code access
  • Believing white-box tests only UI
  • Assuming code access is optional
5. A software team wants to improve test coverage by combining black-box and white-box testing. Which approach best achieves this?
hard
A. Use black-box testing to check user inputs and outputs, and white-box testing to verify internal code paths.
B. Only perform black-box testing since it covers all code paths.
C. Use white-box testing exclusively because it tests the interface.
D. Skip testing and rely on user feedback after release.

Solution

  1. Step 1: Understand strengths of black-box and white-box testing

    Black-box tests functionality without code knowledge; white-box tests internal code paths.
  2. Step 2: Combine both methods effectively

    Using black-box for inputs/outputs and white-box for code paths covers more test cases and improves quality.
  3. Final Answer:

    Use black-box testing to check user inputs and outputs, and white-box testing to verify internal code paths. -> Option A
  4. Quick Check:

    Combine black-box + white-box for best coverage [OK]
Hint: Combine black-box for UI and white-box for code paths [OK]
Common Mistakes:
  • Relying on only one testing type
  • Confusing white-box with UI testing
  • Ignoring testing before release
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