Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lab 8 Checklist #356

Merged
merged 1 commit into from
Dec 3, 2024
Merged

Lab 8 Checklist #356

merged 1 commit into from
Dec 3, 2024

Conversation

ounuvar
Copy link
Contributor

@ounuvar ounuvar commented Dec 3, 2024

We worked on this checklist simultaneously on HackMD. @ounuvar @sonerkuyar @ozankaymak @ahmetfirat23 @yusufaygun

1. Primary features:


  • Post Creation: Users can create posts. They can include text, images, FEN strings (chessboard images), and tags to posts.
  • Post Exploration: Users can view posts. They can like/unlike posts. They can leave comments under posts.
  • User Management: Users can enter their profile descriptions. They can view their own and others' profile pages.

2. Domain-specific features:


  • Playground: There is a playground feature with which users can interact to create a valid board position and copy its FEN string to the clipboard. This is specific to chess as the board is a chessboard and the FEN string is a chess notation.
  • Analysis: There is an analysis feature that can analyze any game in the archive. This is chess-specific because games are chess games. Analysis is made according to chess fundamentals.
  • Puzzles: There is a puzzles feature where users can get chess puzzles. This is chess-specific because the puzzles are chess puzzles.
  • Archive: There is an archive feature where users can search historical games. For any game in the archive, they can do analysis using the analysis feature. This is chess-specific because the games are chess games.

3. API and its documentation

  • Our API is documented through Swagger and is accessible at API link.

4. Standard(s) being followed

  • We chose WADM standard and documented here. We will modify our APIs according to this standard in the following weeks. There is no code yet to obey this standard. We will write it before Milestone 3.

5. Testing strategies

Our testing strategy involves the following phases across backend, frontend, and mobile components:

  1. Backend Testing
  • Unit test creations for backend #317
  • Unit Testing:
    • Each individual component of the backend (e.g., API endpoints, models) has been tested using Django's TestCase framework.
    • Tests include both positive scenarios (valid inputs) and edge cases (invalid inputs, unauthenticated access).
    • Examples:
      • Verifying the behavior of the like_post endpoint for authenticated and unauthenticated users.
      • Testing the add_game_comment endpoint for successful comment creation and error handling for missing or invalid data.
  • Integration Testing:
    • We plan to perform integration testing for the interaction between the frontend and backend, ensuring the APIs are correctly consumed and data flow aligns with expected behaviors.
    • Tools such as Postman or automated integration testing frameworks will be utilized in upcoming milestones.
  • Tools Used:
    • Django Test Framework: For writing and executing unit tests.
    • Swagger Documentation: To validate expected API behaviors with actual implementation.
    • Dockerized Testing Environment: Ensures consistency in database states during testing phases.
  1. Frontend Testing
  • Unit Testing:
    • React components were tested using Jest.
      Example tests:
      • Testing the behavior of the login form when invalid credentials are entered.
      • Testing the behavior of posting comment.
  • Integration Testing:
    • Planned for future milestones to validate proper communication between frontend components and backend APIs.
  • Tools Used:
    • Jest: For running unit tests on React components.
  1. Mobile Testing:
  • Unit Testing:
    • Mobile app components were tested using Jest with React Native Testing Library.
      Example tests:
      • Verifying navigation flow between the home screen and detailed game analysis screen.
      • Testing rendering of the comment section with mock game data.
  • Integration Testing:
    • Planned for future milestones to validate interactions between the mobile app and backend APIs.
  • Tools Used:
    • Jest: For testing React Native components.
    • React Native Testing Library: For user interaction and UI behavior testing.
  1. Overall Testing Process Future Plans
  • Extend integration testing to cover interactions between backend APIs and frontend/mobile components.
  • Expand testing to include load testing for high-volume requests.
  • Increase test coverage across edge cases and user scenarios.

@ounuvar ounuvar merged commit 2e98ea3 into main Dec 3, 2024
@ahmetfirat23 ahmetfirat23 deleted the lab8 branch December 30, 2024 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant