Test Plan

As of today, the application is expected to have a primary user, which is our client. This application requires additional software to capture the necessary images to be provided to the model to create the 3D output model. However, we expect that this application will allow additional users to use this technology. This application’s functionality, user interface, and capabilities are expected to be simple and intuitive. Our goal is to allow users to generate the expected 3D model in simple steps and rely on our automation.

  1. Testing if all the time we need is available:
    • Test the application’s scalability once it is deployed into a cloud provider so that multiple users can create models simultaneously.
    • Test for model creation optimization if the application is deployed into the cloud.
    • Ensure previous renders are stored in the database and can be accessed in real-time.
    • Test for users to be able to add additional information to their profiles, reset passwords, etc.
  2. What is being tested:
    • Ensure the user can create a new account to access the main dashboard.
    • Ensure that no user can access or create a model if it is not authenticated as a registered user.
    • Ensure that the email and password provided during account creation are valid and meet the specified requirements.
    • Ensure that the user can upload the input images and the configuration files for the model.
    • Ensure that the model services create the required folders with the input images. 
    • Ensure that errors are handled correctly, such as:
      1. NoAuthorizedError()
      2. InvalidCredentialError()
      3. BadRequestError()
      4. InternalServerError()
    • Ensure that the cleanup function is called in the model-creation service once it is done or in case it fails.
    • Ensure that tests are performed automatically and run when a pull request into the main branch is created using GitHub.

Tools that will be used for testing:

  • Jest: Javascript test runner that easily integrates automated unit and component resting.
  • PyTest: Pytest is a Python testing framework that can be used to write various types of software tests, including unit tests, integration tests, end-to-end tests, and functional tests. 
  • Postman: Postman is an API Platform for developers to design, build, test, and iterate their APIs.
  • NextJS continuous development to test front-end components as they are being built in real-time.