Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Security testing basics in Testing Fundamentals - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if a password input is not empty before testing security.

Testing Fundamentals
if [1]:
Drag options to blanks, or click blank then click option'
Apassword is None
Bpassword
Cnot password
Dpassword == ''
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'password == ''' which checks if password is empty, not if it exists.
Using 'not password' which is the opposite of what we want here.
2fill in blank
medium

Complete the code to test if user input contains SQL injection risk by checking for a single quote character.

Testing Fundamentals
if '[1]' in user_input:
Drag options to blanks, or click blank then click option'
A;
B"
C--
D'
Attempts:
3 left
💡 Hint
Common Mistakes
Checking for double quotes instead of single quotes.
Checking for semicolon which is less common in simple injection.
3fill in blank
hard

Fix the error in the code that tries to assert user role is 'admin' for security check.

Testing Fundamentals
assert user_role [1] 'admin', "User is not admin"
Drag options to blanks, or click blank then click option'
A!=
B=
C==
Dis
Attempts:
3 left
💡 Hint
Common Mistakes
Using single equals = instead of double equals ==.
Using is which checks identity, not equality.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps usernames to their hashed passwords only if password length is greater than 8.

Testing Fundamentals
secure_users = {user: [1] for user, password in users.items() if len(password) [2] 8}
Drag options to blanks, or click blank then click option'
Ahash(password)
B>
C<
Dpassword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the raw password instead of hashing it.
Using less than < instead of greater than >.
5fill in blank
hard

Fill all three blanks to create a test that asserts the login function raises a ValueError when given an empty username.

Testing Fundamentals
with pytest.raises([1]):
    login([2]=[3])
Drag options to blanks, or click blank then click option'
AValueError
Busername
C""
DTypeError
Attempts:
3 left
💡 Hint
Common Mistakes
Using TypeError instead of ValueError.
Passing a non-empty username.
Using wrong argument name.

Practice

(1/5)
1. What is the main goal of security testing in software development?
easy
A. To test if the software looks good on all devices
B. To check if the software works fast enough
C. To verify the software's spelling and grammar
D. To find and fix weaknesses that could let attackers harm the software

Solution

  1. Step 1: Understand the purpose of security testing

    Security testing aims to find weak points that attackers could exploit.
  2. Step 2: Compare options to the goal

    Only To find and fix weaknesses that could let attackers harm the software talks about finding and fixing weaknesses to protect software.
  3. Final Answer:

    To find and fix weaknesses that could let attackers harm the software -> Option D
  4. Quick Check:

    Security testing = find weaknesses [OK]
Hint: Security testing finds weak spots to protect software [OK]
Common Mistakes:
  • Confusing security testing with performance testing
  • Thinking security testing checks UI design
  • Mixing security testing with spell checking
2. Which of the following is the correct way to describe a security test case?
easy
A. Check if the login page accepts only valid usernames and passwords
B. Check if the page loads within 2 seconds
C. Check if the font size is consistent across pages
D. Check if the software supports multiple languages

Solution

  1. Step 1: Identify what a security test case checks

    Security test cases verify protection against unauthorized access or attacks.
  2. Step 2: Match options to security focus

    Check if the login page accepts only valid usernames and passwords tests login validation, which is a security check; others test performance, UI, or localization.
  3. Final Answer:

    Check if the login page accepts only valid usernames and passwords -> Option A
  4. Quick Check:

    Security test case = validate access control [OK]
Hint: Security tests check access and data protection [OK]
Common Mistakes:
  • Choosing performance or UI tests as security tests
  • Ignoring the focus on unauthorized access
  • Confusing localization with security
3. Consider this simple security test code snippet in Python:
def test_password_length(password):
    return len(password) >= 8

result = test_password_length('pass123')
print(result)

What will be the output when this code runs?
medium
A. True
B. False
C. Error
D. None

Solution

  1. Step 1: Understand the function logic

    The function returns True if password length is 8 or more, else False.
  2. Step 2: Check the input password length

    'pass123' has 7 characters, which is less than 8, so function returns False.
  3. Final Answer:

    False -> Option B
  4. Quick Check:

    Password length 7 < 8 = False [OK]
Hint: Count characters to check length condition [OK]
Common Mistakes:
  • Assuming 'pass123' length is 8
  • Confusing True/False return values
  • Expecting an error due to missing input validation
4. You have this test code to check if a user input is safe:
def is_safe_input(user_input):
    if ''))

What is the problem with this test?
medium
A. It does not print anything
B. It will cause a syntax error because of quotes
C. It only checks for exact '<script>' but misses other attack forms
D. It always returns True regardless of input

Solution

  1. Step 1: Analyze the input check logic

    The function looks only for the exact string '<script>' in input.
  2. Step 2: Consider other attack variations

    Attackers can use variations like uppercase, spaces, or encoded forms that this check misses.
  3. Final Answer:

    It only checks for exact '<script>' but misses other attack forms -> Option C
  4. Quick Check:

    Exact string check misses variants [OK]
Hint: Check for all attack patterns, not just exact strings [OK]
Common Mistakes:
  • Thinking the code has syntax errors
  • Assuming it blocks all script attacks
  • Believing it never returns False
5. You want to test a web app for SQL injection vulnerabilities. Which approach best combines manual and automated security testing?
hard
A. Use an automated scanner to find injection points, then manually try custom payloads to confirm and explore
B. Only run automated scanners and trust their results
C. Manually type random SQL commands without tools
D. Ignore SQL injection and focus on UI bugs

Solution

  1. Step 1: Understand the strengths of automated and manual testing

    Automated tools quickly find many injection points; manual tests explore complex cases.
  2. Step 2: Evaluate options for best practice

    Use an automated scanner to find injection points, then manually try custom payloads to confirm and explore combines both methods effectively; others ignore manual checks or focus on unrelated issues.
  3. Final Answer:

    Use an automated scanner to find injection points, then manually try custom payloads to confirm and explore -> Option A
  4. Quick Check:

    Combine tools + manual tests for best security [OK]
Hint: Combine tools and manual tests for thorough security [OK]
Common Mistakes:
  • Relying only on automated tools
  • Skipping manual testing
  • Ignoring SQL injection risks
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