D3. Test Plan

What would we do if we had all the time that we really needed?

  • Unit Testing
    • Make sure NoSQL database (Firebase) is being filled accurately
    • Authentication testing to make sure users are in system and can log in, log out, be authenticated, etc.
    • Each transaction item scanned is accurately categorized by OpenAI
  • Integration and System Testing (with UI)
    • Testing API calls to make sure that they are accurate in each step as they feed into each other (Taggun -> OpenAI -> Bend)
    • Test buttons that allows for transition to each page
    • Make sure camera is able to take photos that can be loaded into the API
      • Camera takes photos that can be seen by the user in the application 
      • The photo (receipt) is able to be passed into the API 
    • Test UI on different platforms to make sure that the format stays the same in each
    • Make sure user can login, be authenticated, and redirected to their dashboard upon login
    • From the dashboard, users are able to open the camera, scan a receipt, and receive a carbon score based on their purchases from the receipt
    • With each scan, the updated score bar on the dashboard will accurately update
  • Descriptions of tools
    • Jasmine: Behavior-driven development framework for testing JavaScript code. Provides utilities that can be used to run automated tests for both synchronous and asynchronous code
    • Appium: Open-source framework that facilitates UI automation testing for native mobile applications
  • Types of end users
    • General users: People who use the app because want to be more sustainable in their daily life
  • Performance & Reliability
    • Test application reliability when scanning other documents that are not receipts 
    • Ensure that the application basics are able to function even when API or firebase is down
    • Test the timing of each of the APIs to make sure they work within a reasonable timeframe
    • Transactional items are accurately categorized and its carbon score correctly calculated
  • Acceptance Testing
    • Walkthrough the application with the client and test out a sample receipt 
    • Ensure that users understand clearly how to use the application, how to scan receipts, and what the resulting data represents

What we are actually going to test

  • Unit Testing
    • Make sure that each of the buttons allows for transition to each page 
    • Make sure photos are saved
    • Make sure API calls return numeric carbon emission output as end result
  • Integration and System Testing (with UI)
    • Make sure user can login, be authenticated, and redirected to their dashboard upon login
    • Make sure that the camera is able to open and take photos 
    • The application performs similarly on both iOS and Android systems
  • Descriptions of tools
    • Jasmine: Behavior-driven development framework for testing JavaScript code. Provides utilities that can be used to run automated tests for both synchronous and asynchronous code
  • Types of end users
    • General users: People who use the app because want to be more sustainable in their daily life
  • Performance & Reliability
    • When a user scans their receipt, it does not take an exceptionally long amount of time to process and receive their carbon calculation from
    • Every time a user scans a receipt, they will receive a score (as in the API calls are successful)
  • Acceptance Testing
    • Walkthrough the application with the client and test out a sample receipt 
    • Ensure that users understand clearly how to use the application, how to scan receipts, and what the resulting data represents