Skip to content

Midterm Exam - Lion Game (Backend)

This project provides an API that allows Lion Game communicate with Google Sheets-based backend for storing play session analytics. The source code is available here.

SQA Problem - Input Space Partitioning

Estimated time: 5 minutes

You are asked to design an input space model for the API by following a functionality-based approach. The minimal information required to develop the model can be derived by reading the API documentation available in README.md file.

Your tasks are as follows:

  1. Determine the characteristics and the partition for a function chosen by the proctor.

    Possible functions:

    • The request handler function for /api/logs/ endpoint.
    • The request handler function for /api/logs/batch endpoint.

    The body of both functions can be inspected in App.php.

  2. Based on the input space model that you have created, create the test requirement and the test cases based on certain coverage criteria chosen by the proctor.

Possible coverage criteria choices:

  • All Combinations Coverage (ACoC)
  • Each Choice Coverage (ECC)
  • Pair-Wise Coverage (PWC)
  • Base Choice Coverage (BCC)

Note: You do not have to write all test cases due to the time limit. However, make sure you can justify your subset of test cases match with the chosen coverage criteria!

Write your answer in a sheet of paper or Microsoft Word/Google Docs document. You may include illustrations in your answer. Please prepare to present your answer remotely via Zoom/Google Hangouts during discussion time.

SQA Problem - Graph Coverage

Estimated time: 5 minutes

You are asked to design a control flow graph (CFG), prepare the test requirement, and create the test cases.

Your tasks are as follows:

  1. Create the CFG for a function chosen by the proctor.

    Possible functions:

    • The request handler function for /api/logs/ endpoint.
    • The request handler function for /api/logs/batch endpoint.
    • isValidData() function.
    • appendValues() function.

    The definition of request handler functions and isValidData() can be inspected in App.php. The appendValues() function definition is available in SheeetsService.php.

  2. Based on the CFG that you have created, create the test requirement and the test paths based on certain coverage criteria chosen by the proctor.

Possible coverage criteria choices:

  • Node Coverage (NC)
  • Edge Coverage (EC)
  • Edge-Pair Coverage (EPC)

Note: You do not have to write all test paths due to the time limit. However, make sure you can justify your subset of test paths match with the chosen coverage criteria!

Write your answer in a sheet of paper or Microsoft Word/Google Docs document. You may include illustrations in your answer. Please prepare to present your answer remotely via Zoom/Google Hangouts during discussion time.

SQA Problem - Discussion

Estimated time: 10 minutes

You are asked to present your answers to the given problems and also to have one-on-one interview with the proctor during the discussion time.

The list of topics that might be discussed is as follows:

  • Code coverage (line coverage)
  • Test-Driven Development (TDD)
  • Test isolation
  • Writing test cases in Java (JUnit)/Python (unittest and Django)/PHP (PHPUnit)
  • Your experience in conducting SQA activities in academics and/or work environment
  • The ideas of mutation testing
  • And many more that may still related to SQA

Last update: 2021-11-10 11:48:10
Created: 2021-11-10 11:48:10