Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Data validation rules in Testing Fundamentals - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the data entered into a form meets the required validation rules. It verifies that invalid data is rejected and valid data is accepted.

Test Code - PyTest
Testing Fundamentals
def validate_age(age):
    if not isinstance(age, int):
        return False
    if age < 0 or age > 120:
        return False
    return True


def test_validate_age():
    assert validate_age(25) == True
    assert validate_age(-1) == False
    assert validate_age(130) == False
    assert validate_age('twenty') == False
    assert validate_age(0) == True
    assert validate_age(120) == True

if __name__ == '__main__':
    test_validate_age()
Execution Trace - 14 Steps
StepActionSystem StateAssertionResult
1Test startsTest environment ready, validate_age function loaded—PASS
2Call validate_age(25)Function receives integer 25Check if 25 is valid age (0 <= 25 <= 120)PASS
3Assert validate_age(25) == TrueFunction returned TrueAge 25 is validPASS
4Call validate_age(-1)Function receives integer -1Check if -1 is valid age (0 <= -1 <= 120)PASS
5Assert validate_age(-1) == FalseFunction returned FalseAge -1 is invalidPASS
6Call validate_age(130)Function receives integer 130Check if 130 is valid age (0 <= 130 <= 120)PASS
7Assert validate_age(130) == FalseFunction returned FalseAge 130 is invalidPASS
8Call validate_age('twenty')Function receives string 'twenty'Check if input is integerPASS
9Assert validate_age('twenty') == FalseFunction returned FalseNon-integer input is invalidPASS
10Call validate_age(0)Function receives integer 0Check if 0 is valid age (0 <= 0 <= 120)PASS
11Assert validate_age(0) == TrueFunction returned TrueAge 0 is validPASS
12Call validate_age(120)Function receives integer 120Check if 120 is valid age (0 <= 120 <= 120)PASS
13Assert validate_age(120) == TrueFunction returned TrueAge 120 is validPASS
14Test endsAll assertions passed—PASS
Failure Scenario
Failing Condition: Function returns True for invalid age like -1 or string input
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test check when calling validate_age(-1)?
AThat the function accepts strings
BThat negative ages are valid
CThat negative ages are invalid
DThat age 0 is invalid
Key Result
Always test boundary values and invalid data types to ensure data validation rules work correctly.

Practice

(1/5)
1. What is the main purpose of data validation rules in software testing?
easy
A. To check if input data is correct and useful
B. To improve the speed of the software
C. To change the data format automatically
D. To delete old data from the system

Solution

  1. Step 1: Understand the role of data validation

    Data validation rules are designed to check input data for correctness and usefulness before processing.
  2. Step 2: Compare options with the definition

    Only To check if input data is correct and useful correctly states this purpose; others describe unrelated tasks.
  3. Final Answer:

    To check if input data is correct and useful -> Option A
  4. Quick Check:

    Data validation = Check correctness [OK]
Hint: Validation means checking data correctness early [OK]
Common Mistakes:
  • Confusing validation with data transformation
  • Thinking validation improves software speed
  • Assuming validation deletes data
2. Which of the following is a correct example of a data validation rule for an email field?
easy
A. The field must contain only numbers
B. The field must not be empty and must contain '@' symbol
C. The field must be exactly 5 characters long
D. The field must be left blank

Solution

  1. Step 1: Identify common email validation rules

    Email fields require non-empty input and must include '@' to be valid.
  2. Step 2: Evaluate each option

    The field must not be empty and must contain '@' symbol matches these rules; A, B, and D do not fit email validation.
  3. Final Answer:

    The field must not be empty and must contain '@' symbol -> Option B
  4. Quick Check:

    Email validation = Non-empty + '@' [OK]
Hint: Emails always need '@' and something before/after [OK]
Common Mistakes:
  • Checking length without '@' for emails
  • Allowing empty email fields
  • Restricting emails to numbers only
3. Consider this validation rule in a test script:
assert age >= 18 and age <= 65

What will happen if age = 70 during test execution?
medium
A. Test will ignore the age value
B. Test will pass because 70 is a valid age
C. Test will raise a syntax error
D. Test will fail because 70 is outside the valid range

Solution

  1. Step 1: Understand the validation condition

    The rule requires age to be between 18 and 65 inclusive.
  2. Step 2: Check the given age value

    Age 70 is greater than 65, so the condition fails and assertion fails.
  3. Final Answer:

    Test will fail because 70 is outside the valid range -> Option D
  4. Quick Check:

    Age 70 > 65 = Fail [OK]
Hint: Check if value fits the range in assertion [OK]
Common Mistakes:
  • Assuming test passes if value is above max
  • Confusing syntax error with assertion failure
  • Ignoring assertion conditions
4. A tester wrote this validation rule:
assert len(username) > 0 and len(username) < 15

What is the problem with this rule if the username length is exactly 15?
medium
A. The test will fail because 15 is not less than 15
B. The test will pass because 15 is allowed
C. The test will cause a runtime error
D. The test will ignore the username length

Solution

  1. Step 1: Analyze the length condition

    The rule requires username length to be greater than 0 and less than 15.
  2. Step 2: Check the boundary value 15

    Length 15 is not less than 15, so assertion fails.
  3. Final Answer:

    The test will fail because 15 is not less than 15 -> Option A
  4. Quick Check:

    Length 15 < 15? No = Fail [OK]
Hint: Check if boundary values are included or excluded [OK]
Common Mistakes:
  • Assuming less than includes the number itself
  • Ignoring boundary conditions
  • Thinking test causes error instead of fail
5. You need to validate a form field that accepts only positive integers less than 1000 and not empty. Which combined validation rule is correct?
hard
A. assert value.isalpha() and int(value) > 0
B. assert value != '' and int(value) >= 1000
C. assert value.isdigit() and 0 < int(value) < 1000
D. assert value == '' or int(value) < 0

Solution

  1. Step 1: Understand the requirements

    Value must be non-empty, only digits, positive, and less than 1000.
  2. Step 2: Evaluate each option

    assert value.isdigit() and 0 < int(value) < 1000 checks digits only, converts to int, and tests range correctly. Others fail one or more conditions.
  3. Final Answer:

    assert value.isdigit() and 0 < int(value) < 1000 -> Option C
  4. Quick Check:

    Digits + positive + <1000 = assert value.isdigit() and 0 < int(value) < 1000 [OK]
Hint: Check digits, non-empty, and range in one assertion [OK]
Common Mistakes:
  • Using isalpha() instead of isdigit()
  • Allowing empty strings
  • Checking wrong numeric ranges
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