Test Plan

Ideal Plan

  • Front End – React.js:
    • Unit Testing: Jest is a popular javascript testing library compatible with React. Jest has a number of useful built-in functions and features such as mock functions and advanced testing exceptions which allows for more time spent testing and debugging and less time writing complex testing functions. Jest also provides support for MongoDB, so any database testing will be done through Jest.
    • Integration Testing: Jest also supports integration testing. Since Jest will be used to test both React and MongoDB, creating integration tests that include the Front End and database will be much easier than if we were using separate tools.
    • Performance Testing: Google Lighthouse is a tool for generating performance audits and reports on load performance, accessibility, and more.
    • Acceptance Testing: Acceptance testing will be done manually with team members going through multiple scenarios of potential user actions and behavior and providing feedback as needed.
  • Back End – Springboot:
    • Unit Testing: Springboot provides multiple testing libraries using multiple modules, the most common being spring-boot-starter-test which includes JUnit, the most popular unit testing library for Java applications. Most popular IDEs such as Eclipse, IntelliJ, and more are integrated with JUnit, making it easier to create and manage tests.
    • Integration Testing: Another library included by spring-boot-starter-test is Spring Test, a dedicated integration testing library made specifically for springboot applications.
    • Performance Testing: Much of our performance data for both front and back end will come from Lighthouse. However if we need more detailed performance testing for our springboot server, we can use JMeter.
    • Acceptance Testing: Acceptance testing will be done manually with team members going through multiple scenarios of potential user actions and behavior and providing feedback as needed.

Realistic Plan

Our realistic plan does not differ much from our ideal plan in terms of tools and phases of testing. To deliver a complete feature or component no specific phase of testing can be left out. However, we realize that in a limited timeframe we may not be able to write the quantity of tests we would if we had more time. There also may be certain views or features that end up less tested than others. As such, we can indicate the priority of testing for different features.

  • Fully Tested / Core Components
    • Implementation of our 4 main components: Tasks, Projects, Goals, and Objectives.
    • Views of our daily dashboard (home page) and individual component views for tasks, projects, and goals/objectives.
  • Incompletely Tested / Additional Features
    • Attaching documents to a task or project.
    • Features related to sharing projects, tasks, etc.
    • User accounts

End Users

All users will be Junior Faculty or Graduate Students. Users will be able to

  • Create, edit, and complete tasks, projects, goals, and objectives with titles, descriptions, due dates, and categorize into parent projects or goals as needed.
  • Share and edit projects, documents, and tasks with other users.
  • View tasks for today or a custom date range
  • View all tasks, projects, and goals in individual view pages.
  • View project pages to see project details and all tasks related to that project.
  • View goal pages to see goal details and all objectives related to that goal.