CENG 408 Test Plan Document - CankayaUniversity/ceng-407-408-2023-2024-AGRICROWD-Tarimda-Kitlesel-Fonlama-Uygulamasi GitHub Wiki
INTRODUCTION
1.1. Version Control
| Version No | Description of Changes | Date |
|---|---|---|
| 1.0 | First Version | 28.03.2024 |
1.2. Overview
Agricrowd is a blockchain-based crowdfunding platform for agricultural projects. This test plan covers the fundamental functions of the platform, including user registration, login, project creation, investment, and the reward system.
1.3. Scope
This document includes the testing of essential functions of the Agricrowd platform, encompassing user transactions, project management, and financial operations.
1.4. Terminology
| Acronym | Definition |
|---|---|
| LG | Login |
| RG | Register |
| PC | Project Creation |
| INV | Investment |
| RS | Reward System |
| CP | Cancel The Project |
| VC | Verifying The Contract |
2. FEATURES TO BE TESTED
2.1. Login (LG)
The ability for users to log into the system.
2.2. Register (RG)
The ability for new users to register on the system.
2.3. Project Creation (PC)
Users being able to provide detailed descriptions, goals, funding amounts, and durations for projects. Users being able to add media files such as visuals and videos for projects. Managing the project approval process and publishing the project on the platform.
2.4. Investment (INV)
Investors being able to invest certain amounts in various projects. Ensuring and recording investment processes securely. Investors being able to view their investment history and current investments.
2.5. Reward System (RS)
Defining and managing the rules of the reward system. Allowing users to track their reward earnings and view their reward history.
2.6. Cancel The Project (CP)
System should be able to cancel the project and return the remaining funds to the funders if project fails/cancels.
2.7. Verifying The Contract (VC)
Smart contracts should be verified automatically.
3. FEATURES NOT BE TESTED
3.1. Blockchain Network Function
The decision not to test blockchain network functions is driven by the project's focus requirements and the need for more effective resource utilization. The complexity and external dependencies of the blockchain network can complicate the testing process and consume time. However, the primary motivation behind this decision is that in cases of potential network accessibility issues arising from external dependencies of the blockchain network, or instances where the network becomes temporarily inactive, it concerns the network itself rather than the project's functionality. Therefore, based on the project's main focus and requirements, the decision has been made not to test the blockchain network.
3.2. Digital Wallets
Among the reasons behind the decision not to test digital wallets are not only the main objectives of the project but also the diversity and external dependencies of digital wallets. Digital wallets may not be among the primary functions that need to be included in the testing process for units focused on the project. Additionally, there are various versions of digital wallets that can operate on different platforms and devices, complicating the testing process and consuming time. However, the decision made in line with the main objectives of the project is based on the premise that potential issues related to the reliability and accessibility of digital wallets concern wallet providers rather than the project's purpose.
4. ITEM PASS / FAIL CRITERIA
During the testing process of the Agricrowd platform, each test case will be evaluated according to the following specific criteria:
-
Functional Suitability: The outputs obtained from the test case should align with the predefined expected functional outcomes. For instance, in a user registration test case, it is expected that the user successfully registers and then can log into the system.
-
Data Accuracy: All data transactions related to the platform (e.g., project creation, investment) should be accurate and consistent. For example, when an investment transaction is made, the relevant project fund should be updated, and the investor's portfolio should be accurately reflected.
-
Security and Privacy: User information and transactions should be processed and stored securely. Any security vulnerability or privacy breach would result in the test being deemed unsuccessful. For example, user passwords should be securely encrypted and inaccessible to third parties.
-
User Experience and Interface Consistency: The user interface should be clear, user-friendly, and consistent. Users should not encounter any confusion or misleading information while navigating the platform and performing their transactions.
-
Performance and Response Time: The platform should provide quick responses to user interactions. Slow response times or performance issues could lead to test failure.
-
Each test case will be evaluated based on these criteria, and if it meets all the criteria, it will be marked as 'successful'; otherwise, it will be marked as 'failed' for the relevant issues to be addressed.
4.1. Exit Criteria
- 100% of the test cases are executed.
- 95% of the test cases passed.
5. REFERENCES
[1] Agricrowd_202305_Group5_SRS, December 16, 2023 ↗
[2] Agricrowd_202305_Group5_SDD, January 5, 2024 ↗
6. TEST DESIGN SPECIFICATIONS
6.1. Login (LG)
6.1.1. Sub features to be Tested
6.1.1.1. Admin Login (LG.AD)
Ensure that admin can successfully log in to the system.
6.1.1.2. User Login (LG.US)
Ensure that users can successfully log in to the system.
6.1.2. Test Cases
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| LG.AD | Admin should have the capability to log in to the system. | High | Ensure that admin can successfully log in to the system. |
| LG.US | Users should have the capability to log in to the system. | High | Ensure that users can successfully log in to the system. |
6.2. Register (RG)
6.2.1. User Register (RG.US)
Ensure that users can successfully register on the system.
6.2.2. Test Cases
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| RG.US | Users should have the capability to register and create an account on the system. | High | Ensure that users can successfully register on the system. |
6.3. Project Creation (PC.US)
Ensure that users can successfully create new agricultural projects on the system.
6.3.1. Test Cases
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| PC.US | Users should have the capability to create new agricultural projects on the system. | High | Ensure that users can successfully create new agricultural projects on the system. |
6.4. Investment (INV)
6.4.1. Sub features to be Tested
6.4.1.1. Fund Project (INV.FP)
Ensure that the investor can successfully fund a project.
6.4.1.2. Withdraw Funds from The Project (INV.WF)
Ensure that the investee can successfully withdraw funds from the contract.
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| INV.FP | The investor should be able to fund a project on the platform. | High | Ensure that the investor can successfully fund a project. |
| INV.WF | The investee should be able to withdraw the funds from the contract. | High | Ensure that the investee can successfully withdraw funds from the contract. |
6.5. Send Rewards (SR.US)
Ensure that investees can successfully send rewards to investors who have invested in their projects.
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| SR.US | Investees should have the capability to send rewards to investors who have invested in their projects. | High | Ensure that investees can successfully send rewards to investors who have invested in their projects. |
6.6. Cancel The Project (CP.AD)
Ensure that the system can cancel the project and return the remaining funds to the funders if the project fails or is canceled.
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| CP.AD | The system should be capable of canceling a project and returning the remaining funds to the funders in case of project failure or cancellation. | High | Ensure that the system can cancel the project and return the remaining funds to the funders if the project fails or is canceled. |
6.7. Verifying The Contract (VC.AD)
Ensure that smart contracts are automatically verified without manual intervention.
| TC ID | Requirements | Priority | Scenario Description |
|---|---|---|---|
| VC.AD | Smart contracts should undergo automatic verification without requiring manual intervention. | High | Ensure that smart contracts are automatically verified without the need for manual intervention. |
7.Detailed Test Cases
| TC_ID | LG.AD/LG.US |
|---|---|
| Purpose | Ensure that users can successfully log in to the system. |
| Requirements | Users should have the capability to log in to the system. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the login page of the system. |
| Procedure | - [A01] Navigate to the login page of the system. - [A02] Enter valid credentials (username and password) for an existing user. - [A03] Click on the login button. - [V01] Verify if the login process is successful. - [V02] Check if the user is redirected to the system dashboard or the designated landing page. - [V03] Confirm if the user's profile information is displayed correctly. |
| Cleanup | Log out from the system (if necessary). |
This test case ensures that users can efficiently log in to the system, providing access to the system's features and functionalities based on their user roles and permissions.
| TC_ID | RG.US |
|---|---|
| Purpose | Ensure that users can successfully register on the system. |
| Requirements | Users should have the capability to register and create an account on the system. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the registration page of the system. |
| Procedure |
- [A01] Navigate to the registration page of the system.
- [A02] Fill in the required registration fields (e.g., username, email, password).
- [A03] Provide valid information in all mandatory fields.
- [A04] Click on the register button.
- [V01] Verify if the registration process is successful.
- [V02] Check if the user is redirected to the login page after successful registration.
- [V03] Confirm if the registered user's information is stored correctly in the system database. | | Cleanup | Log out from the system (if necessary). |
This test case ensures that users can efficiently register and create accounts on the system, enabling them to access the system's features and functionalities.
| TC_ID | PC.US |
|---|---|
| Purpose | Ensure that users can successfully create new agricultural projects on the system. |
| Requirements | Users should have the capability to create new agricultural projects on the system. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the project creation section of the system. |
| Procedure | - [A01] Log in to the system as a registered user. - [A02] Navigate to the project creation section. - [A03] Fill in the required project details (e.g., project title, description, location, objectives). - [A04] Specify relevant agricultural details (e.g., crop type, land area, expected yield). - [A05] Upload necessary documents or images related to the project. - [A06] Review and confirm project details. - [A07] Click on the create project button. - [V01] Verify if the project creation process is successful. - [V02] Check if the newly created project is listed in the user's dashboard or project list. - [V03] Confirm if all provided project details are accurately stored in the system database. |
| Cleanup | Log out from the system (if necessary). |
This test case ensures that users can efficiently create new agricultural projects on the system, facilitating project management and collaboration within the agricultural community.
| TC_ID | INV.FP |
|---|---|
| Purpose | Ensure that the investor can successfully fund a project. |
| Requirements | The investor should be able to fund a project on the platform. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the investment platform with sufficient funds in the investor's account. |
| Procedure | - [A01] Log in to the investment platform as the investor. - [A02] Navigate to the project funding section. - [A03] Select the project to fund. - [A04] Specify the amount to be invested in the project. - [A05] Confirm the funding transaction. - [V01] Verify if the funding transaction is successfully processed. - [V02] Check if the invested amount reflects in the project's funding status. - [V03] Confirm if the invested amount is deducted from the investor's account balance. |
| Cleanup | Log out of the investment platform. |
This test case ensures that investors can efficiently fund projects on the platform, facilitating the investment process and supporting project development.
| TC_ID | INV.WF |
|---|---|
| Purpose | Ensure that the investee can successfully withdraw funds from the contract. |
| Requirements | The investee should be able to withdraw the funds from the contract. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the investment platform with a funded contract |
| Procedure | - [A01] Log in to the investment platform as the investee. - [A02] Navigate to the contracts section. - [A03] Select the contract from which funds need to be withdrawn. - [A04] Initiate the withdrawal process. - [V01] Verify if the funds are successfully withdrawn from the contract. - [V02] Confirm if the withdrawn funds reflect in the investee's account balance. |
| Cleanup | Log out of the investment platform. |
This test case ensures that the investee can efficiently withdraw funds from the contract, contributing to the functionality and usability of the investment platform.
| TC_ID | SR.US |
|---|---|
| Purpose | Ensure that the system can cancel the project and return the remaining funds to the funders if the project fails or is canceled. |
| Requirements | The system should be capable of canceling a project and returning the remaining funds to the funders in case of project failure or cancellation. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | A project funded by multiple investors which is either failed or canceled. |
| Procedure | - [A01] Access the administrative panel of the system. - [A02] Identify the project that has failed or has been canceled. - [A03] Initiate the project cancellation process. - [A04] Calculate the remaining funds to be returned to the funders. - [A05] Process the refund transactions to all funders involved in the project. - [V01] Verify if the project cancellation process is completed successfully. - [V02] Check if the remaining funds are returned to the funders' accounts. - [V03] Confirm if the refunded amount is deducted from the project's funding status. |
| Cleanup | Close the administrative panel. |
This test case ensures that the system can efficiently handle project cancellations and refund the remaining funds to the respective funders, maintaining transparency and trust within the platform.
| TC_ID | CP.AD |
|---|---|
| Purpose | Ensure that investees can successfully send rewards to investors who have invested in their projects. |
| Requirements | Investees should have the capability to send rewards to investors who have invested in their projects. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the platform as an investee with projects funded by investors. |
| Procedure | - [A01] Log in to the platform as the investee. - [A02] Navigate to the project management section. - [A03] Identify the project for which rewards need to be sent. - [A04] Select the investors who will receive rewards. - [A05] Specify the type and amount of rewards to be sent to each investor. - [A06] Confirm the reward distribution. - [V01] Verify if the rewards are successfully sent to the selected investors. - [V02] Check if the rewarded investors receive notifications about the rewards. - [V03] Confirm if the rewarded amount is deducted from the investee's project budget. |
| Cleanup | Log out of the platform. |
This test case ensures that investees can efficiently send rewards to investors who have supported their projects, fostering investor satisfaction and engagement on the platform.
| TC_ID | VC.AD |
|---|---|
| Purpose | Ensure that smart contracts are automatically verified without manual intervention. |
| Requirements | Smart contracts should undergo automatic verification without requiring manual intervention. |
| Priority | High |
| Estimated Time Needed | Under 10 seconds |
| Setup | Access to the smart contract verification system. |
| Procedure | - [A01] Upload the smart contract to the verification system. - [A02] Initiate the verification process. - [V01] Verify if the verification process completes automatically without requiring manual input. - [V02] Check if the smart contract is successfully verified. - [V03] Confirm if the verification status is updated accordingly in the system. |
| Cleanup | Close the smart contract verification system. |
This test case ensures that smart contracts are automatically verified, streamlining the verification process and ensuring accuracy and efficiency in contract handling.