Milestone 2 plan - bounswe/bounswe2024group10 GitHub Wiki
What we will do
-
We need to complete backend end points until Thursday midnight. After that we will organize a meeting to be ensure that all the endpoints is clear and understandable by mobile and web teams.
-
In mobile part, nearly all the screens have been implemented on milestone 1. That's why, we only need to complete the connections between backend endpoints and mobile screens' related part.
-
In web part, web team will create some pages such as acount page, user page etc. Also, they revise ui components such as post, comment, feed etc. Web team also need to complete the connections between backend endpoints and web pages' related part.
Presenter
- Gülşen Sabak
- Mesut Melih Akpınar
- Hüseyin Karataş
Prioritization of Testing
Critical Areas for Testing
- Authentication and Account Management: Fundamental to system access.
- Post and Comment Interactions: Core feature of user engagement.
- Portfolio Privacy Settings: High sensitivity due to personal financial data.
- Financial Asset Integration: Essential for real-time relevance.
- Search and Navigation: Key for usability.
UNIT TEST PLAN
- Kutay hoca said that all of us should write at least one unit test. That's why we separate the unit tests. Unit testing is essential for software development because it ensures the quality, reliability, and maintainability of our codebase. We need to write unit tests for all sensitive areas in our code.
Unit Testing Topics
Unit testing ensures that individual components function correctly. The following areas are high-priority for unit testing:
1. Account Management
- Test account creation:
- Validate unique email, username, and password inputs (
1.1.1.1
).
- Validate unique email, username, and password inputs (
- Test login functionality:
- Ensure correct credentials grant access (
1.1.1.1.1.1
). - Ensure users can log back in if logged out (
1.1.1.3
).
- Ensure correct credentials grant access (
- Validate email and username uniqueness checks.
2. Posts
- Test post-creation logic:
- Ensure proper storage of photos, descriptions, and tags (
1.1.2.1
).
- Ensure proper storage of photos, descriptions, and tags (
- Test comment functionality:
- Validate association of comments with posts (
1.1.2.6
).
- Validate association of comments with posts (
- Test post interactions:
- Likes, dislikes, and counts (
1.1.2.2
,1.1.2.4
).
- Likes, dislikes, and counts (
3. Search
- Test basic search functionality:
- Search by forum name or tags (
1.1.3.1
,1.1.3.2
).
- Search by forum name or tags (
- Handle edge cases:
- Ensure proper behavior for no results or multiple matches.
4. Subforum Management
- Test admin-specific features:
- Subforum creation and deletion (
1.1.5.1
,1.1.5.2
). - Adding base tags to subforums (
1.1.5.4
).
- Subforum creation and deletion (
5. Privacy and Personalization
- Test privacy settings:
- Validate public, friends-only, and private portfolio visibility (
1.1.7.2
).
- Validate public, friends-only, and private portfolio visibility (
- Test personalized news feeds:
- Ensure filtering based on user-selected financial assets (
1.1.6.1
,1.1.6.3
).
- Ensure filtering based on user-selected financial assets (
6. Financial Asset Integration
- Test API integration:
- Validate retrieval of financial asset values (
1.2.1.1
,1.2.1.2
).
- Validate retrieval of financial asset values (
- Ensure periodic updates of financial data (
1.2.1.3
).
INTEGRATION TEST PLAN
- Integration testing is crucial because it verifies that different modules or components of an application work together as expected. While unit tests focus on individual components in isolation, integration tests ensure the harmony and functionality of interconnected parts. We also separate the integration tests since we want all of us to learn how to write integration tests.
Integration Testing Topics
Integration testing ensures that modules work together correctly. The following areas are critical for integration testing:
1. Account and Authentication
- Validate interactions between:
- Database, authentication system, and frontend (e.g., login, account creation).
- Test error handling for invalid login attempts.
2. Portfolio Sharing and Privacy
- Test portfolio creation and privacy settings:
- Validate visibility for public, friends-only, and private portfolios (
1.1.7.1
,1.1.7.2
).
- Validate visibility for public, friends-only, and private portfolios (
- Ensure correct access restrictions.
3. Posts and Comments
- Test relationships between posts, comments, and interactions:
- Validate likes, dislikes, and counts (
1.1.2.6.1
). - Test comment-threading and deletion.
- Validate likes, dislikes, and counts (
5. Financial Asset Integration
- Test API interactions:
- Ensure proper retrieval of financial data from third-party services (
1.2.1.2
). - Validate synchronization with forum topics.
- Ensure proper retrieval of financial data from third-party services (
6. Subforum Management
- Test admin-specific subforum features:
- Subforum creation/deletion and tag assignment (
1.1.5.1
,1.1.5.4
).
- Subforum creation/deletion and tag assignment (
- Ensure proper permission checks.
What we plan to present as a scenario
We have a main user
- What kind of user do we have? (will be determined)
- What are credentials of our main user? (will be determined)
The user opens the site, enters the relevant credentials in the login-register section, and logs into the application.
The user browses the feed for a while.
The user sees a post of interest in the feed, likes it, and comments on it. Then, our main user become curious about the account that posted it and visit User A's profile.
- Whose profile do they visit? (A = Makoto Ashinosa)
- What will the comment say? (will be determined)
The user examines other posts on User A's profile.
The user notices that User A has posted the most in Subforum B and decides to visit it.
- Which subforum will this be? (B = Cryptocurrencies)
The user reviews posts in Subforum B and checks which people are posting there.
In the subforum, the user notices a cryptocurrency that has been mentioned frequently recently.
- Which cryptocurrency will this be? (C = Etherium)
The user goes to their portfolio and realizes they don’t have C in their account.
The user adds a certain amount of C to its portfolio.
The user goes to the post creation section and creates a post about C under Subforum B. The user also adds a tag for C while writing the post
After posting, the user clicks on the tag related to C and browses posts tagged with C