Bird
Raised Fist0
Testing Fundamentalstesting~20 mins

Continuous Delivery testing in Testing Fundamentals - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Continuous Delivery Testing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Key Benefit of Continuous Delivery Testing

Which of the following is the primary benefit of implementing Continuous Delivery testing in a software project?

AIt ensures that every code change is automatically tested and ready for release at any time.
BIt eliminates the need for manual testing completely.
CIt guarantees zero bugs in the software after deployment.
DIt allows developers to skip writing unit tests.
Attempts:
2 left
💡 Hint

Think about what Continuous Delivery aims to achieve regarding code readiness.

❓ Predict Output
intermediate
2:00remaining
Test Execution Result in Continuous Delivery Pipeline

Given the following simplified test script snippet in Python used in a Continuous Delivery pipeline, what will be the output after running it?

Testing Fundamentals
def test_feature():
    assert 2 + 2 == 4

def test_failure():
    assert 'a' * 3 == 'aaa'

if __name__ == '__main__':
    try:
        test_feature()
        test_failure()
        print('All tests passed')
    except AssertionError:
        print('Test failed')
AAll tests passed
BTest failed
CSyntaxError
DNo output
Attempts:
2 left
💡 Hint

Check if the assertions are true or false.

❓ assertion
advanced
2:00remaining
Correct Assertion for Deployment Readiness Check

In a Continuous Delivery test script, which assertion correctly verifies that the deployment status is 'success' before proceeding?

Testing Fundamentals
deployment_status = get_deployment_status()  # returns a string like 'success' or 'failure'
Aassert deployment_status is 'success'
Bassert deployment_status = 'success'
Cassert deployment_status != 'success'
Dassert deployment_status == 'success'
Attempts:
2 left
💡 Hint

Remember the correct syntax for equality comparison in assertions.

🔧 Debug
advanced
2:00remaining
Identify the Bug in Continuous Delivery Test Script

Review the following test code snippet used in a Continuous Delivery pipeline. What is the cause of the failure?

Testing Fundamentals
def test_api_response():
    response = call_api()
    assert response.status_code == 200
    assert 'success' in response.body
ANo error, test passes
BSyntaxError due to incorrect assignment operator in assertion
CAssertionError because status_code is not 200
DTypeError because response is null
Attempts:
2 left
💡 Hint

Check the assertion syntax carefully.

❓ framework
expert
2:00remaining
Choosing the Best Test Type for Continuous Delivery

In a Continuous Delivery pipeline, which test type is most critical to run automatically to ensure fast feedback on code changes?

APerformance tests because they measure system speed.
BManual exploratory tests because they find unexpected bugs.
CUnit tests because they run quickly and catch issues early.
DSecurity audits because they check for vulnerabilities.
Attempts:
2 left
💡 Hint

Consider which tests are fastest and easiest to automate for immediate feedback.

Practice

(1/5)
1. What is the main goal of Continuous Delivery testing in software development?
easy
A. To delay testing until after deployment
B. To write manual test cases for every feature
C. To ensure the software is always in a releasable state
D. To test only the user interface manually

Solution

  1. Step 1: Understand Continuous Delivery testing purpose

    Continuous Delivery testing aims to keep software ready to release at any time by running automated tests frequently.
  2. Step 2: Compare options with the goal

    Only To ensure the software is always in a releasable state matches this goal. Other options describe manual or delayed testing, which contradict Continuous Delivery principles.
  3. Final Answer:

    To ensure the software is always in a releasable state -> Option C
  4. Quick Check:

    Continuous Delivery = Always releasable software [OK]
Hint: Continuous Delivery means software is always ready to release [OK]
Common Mistakes:
  • Thinking manual testing is the main focus
  • Believing testing happens only after deployment
  • Confusing Continuous Delivery with manual UI testing
2. Which of the following is the correct syntax to define a simple automated test step in a Continuous Delivery pipeline script?
easy
A. run_tests script pytest tests/
B. run_tests: script: pytest tests/
C. run_tests: pytest tests/
D. run_tests = pytest tests/

Solution

  1. Step 1: Identify correct YAML syntax for pipeline steps

    Pipeline scripts often use YAML format where keys have colons and nested keys are indented, e.g., 'run_tests: script: pytest tests/'.
  2. Step 2: Check each option's syntax

    run_tests: script: pytest tests/ uses correct YAML with colon and nested script key. Options A, C, and D miss colons or use invalid assignment.
  3. Final Answer:

    run_tests: script: pytest tests/ -> Option B
  4. Quick Check:

    YAML step syntax = run_tests: script: command [OK]
Hint: YAML keys need colons and proper indentation [OK]
Common Mistakes:
  • Omitting colons in YAML keys
  • Using equal signs instead of colons
  • Not indenting nested keys properly
3. Consider this simplified test pipeline code snippet:
tests = ['unit', 'integration', 'e2e']
results = []
for test in tests:
    if test == 'integration':
        results.append('fail')
    else:
        results.append('pass')
print(results)

What will be the output after running this code?
medium
A. ['pass', 'fail', 'pass']
B. ['fail', 'fail', 'fail']
C. ['pass', 'pass', 'fail']
D. ['fail', 'pass', 'fail']

Solution

  1. Step 1: Analyze the loop and conditions

    The list 'tests' has three items: 'unit', 'integration', 'e2e'. The loop checks if the test is 'integration' to append 'fail', else 'pass'.
  2. Step 2: Determine results for each test

    'unit' -> not 'integration' -> 'pass'
    'integration' -> equals 'integration' -> 'fail'
    'e2e' -> not 'integration' -> 'pass'
  3. Final Answer:

    ['pass', 'fail', 'pass'] -> Option A
  4. Quick Check:

    Only 'integration' test fails [OK]
Hint: Only 'integration' test appends 'fail' [OK]
Common Mistakes:
  • Assuming all tests pass
  • Confusing the condition logic
  • Mixing order of results
4. A Continuous Delivery pipeline script has this step:
test_step:
  script:
    - pytest --maxfail=1 --disable-warnings
    - echo "Tests completed"

However, the pipeline does not stop on the first test failure as expected. What is the likely cause?
medium
A. pytest does not support the --maxfail option
B. The --maxfail=1 option is invalid and ignored
C. The echo command causes the pipeline to stop early
D. The pipeline runs all script commands regardless of failure by default

Solution

  1. Step 1: Understand pipeline script behavior

    In many CI/CD tools, all commands under 'script' run sequentially even if one fails, unless configured to stop on failure.
  2. Step 2: Analyze the options and commands

    --maxfail=1 is a valid pytest option to stop pytest early, but the pipeline still runs the next command 'echo'. So the pipeline itself does not stop on failure automatically.
  3. Final Answer:

    The pipeline runs all script commands regardless of failure by default -> Option D
  4. Quick Check:

    Pipeline runs all script lines unless configured to stop [OK]
Hint: Pipeline runs all script commands unless told to stop [OK]
Common Mistakes:
  • Thinking pytest controls pipeline flow
  • Believing echo causes failure
  • Assuming invalid option causes issue
5. In a Continuous Delivery pipeline, you want to run tests only on changed files to speed up feedback. Which approach best achieves this?
hard
A. Use a script to detect changed files and run tests related to those files
B. Run all tests every time regardless of changes
C. Manually select tests to run after each commit
D. Disable automated tests and rely on manual testing

Solution

  1. Step 1: Understand test optimization in Continuous Delivery

    Running all tests every time can be slow. Detecting changed files and running only related tests speeds feedback.
  2. Step 2: Evaluate options for automation and speed

    Use a script to detect changed files and run tests related to those files automates detection and selective testing, fitting Continuous Delivery goals. Options B, C, and D are inefficient or manual.
  3. Final Answer:

    Use a script to detect changed files and run tests related to those files -> Option A
  4. Quick Check:

    Selective testing on changes = faster feedback [OK]
Hint: Run tests only for changed files to save time [OK]
Common Mistakes:
  • Running all tests every time without optimization
  • Relying on manual test selection
  • Skipping automated tests entirely
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