Skip to content

Commit a5c6373

Browse files
authored
feat: add redis docs & glossary terms && pr template (#448)
* fix: installation in docker with linux/wsl Signed-off-by: Animesh Pathak <[email protected]> * feat: add redis Signed-off-by: Animesh Pathak <[email protected]> * feat: add redis Signed-off-by: Animesh Pathak <[email protected]> --------- Signed-off-by: Animesh Pathak <[email protected]>
1 parent cce86d8 commit a5c6373

File tree

10 files changed

+150
-64
lines changed

10 files changed

+150
-64
lines changed

.github/ISSUE_TEMPLATE/documentation-request.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
---
22
name: Documentation request
33
about: Use this to propose information improvements and additions
4-
title: "[ Documentation request ] "
5-
labels: ''
6-
assignees: ''
7-
4+
title: "[Docs]"
5+
labels: '[Documentation]'
86
---
97

108
# Brief description

.github/pull_request_template.md

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
# Pull Request Template
1+
## What has changed?
22

3-
## Description
3+
Please include a summary of the change.
44

5-
Please include a summary of the change. Please also include relevant motivation and context. List any dependencies that are required for this change.
6-
7-
Fixes # (issue)
5+
This PR Resolves #(issue)
86

97
## Type of change
108

@@ -13,22 +11,16 @@ Please delete options that are not relevant.
1311
- [ ] Bug fix (non-breaking change which fixes an issue).
1412
- [ ] New feature (non-breaking change which adds functionality).
1513
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
16-
- [ ] This change requires a documentation update.
14+
- [ ] Documentation update (if none of the other choices apply).
1715

1816
## How Has This Been Tested?
1917

20-
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
21-
22-
## Additional Context (Please include any Screenshots/gifs if relevant)
18+
Please run npm run build and npm run serve to check if the changes are working as expected. Please include screenshots of the output of both the commands. Add screenshots/gif of the changes if possible.
2319

24-
...
2520

2621
## Checklist:
2722

2823
- [ ] My code follows the style guidelines of this project.
2924
- [ ] I have performed a self-review of my own code.
30-
- [ ] I have made corresponding changes to the documentation.
31-
- [ ] I have added corresponding tests.
32-
- [ ] Any dependent changes have been merged and published in downstream modules.
3325

34-
<!--- Thanks for opening this pull request! If the tests fail, please feel free to reach out to us by leaving a comment down below and we will be happy to take a look --->
26+
<!--- Thanks for opening this pull request! If the tests fail, please feel free to reach out to us by leaving a comment down below and we will be happy to take a look --->

src/components/Intro.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,10 @@ function Frameworks() {
176176
</Link>
177177
</li>
178178
<li className="mt-5 flex flex-col space-y-3 text-lg">
179-
<Link className="flex flex-col items-center justify-center space-y-1 p-6 text-center ">
179+
<Link
180+
to={useBaseUrl("/dependencies/redis")}
181+
className="flex flex-col items-center justify-center space-y-1 p-6 text-center "
182+
>
180183
<img
181184
className="h-8 w-8"
182185
src="/docs/img/redis-logo.svg"
Lines changed: 75 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,92 @@
11
---
22
id: acceptance-testing
3-
title: Acceptance Testing
3+
title: Comprehensive Guide to Software Acceptance Testing
44
sidebar_label: Acceptance Testing
5-
description: This glossary has an explanation of all the terminologies that beginners find difficult to understand at first glance.
5+
description: Learn about Software Acceptance Testing, its types, benefits, and best practices. Discover how this final phase in the testing lifecycle ensures your software meets all user requirements before release.
66
tags:
77
- explanation
88
- glossary
99
keywords:
1010
- API
11+
- software testing
12+
- UAT
13+
- user acceptance testing
14+
- software acceptance testing
1115
---
1216

13-
### What is Acceptance Testing?
17+
## What is Acceptance Testing?
1418

15-
Acceptance testing (AT) is a formal testing process that is conducted to determine whether a software system meets the
16-
requirements of the customer or end user. AT is the last phase of software testing, and it is conducted after all other
17-
levels of testing have been completed.
19+
Acceptance testing (AT) is the final phase in the software testing life cycle, where the software is tested in a real-world environment by the customer or end user. The main objective is to ensure that the system meets all specified requirements and is ready for deployment. This stage is critical as it validates that the software is not only functional but also aligns with the user's needs and expectations.
1820

19-
The purpose of AT is to ensure that the software system is acceptable to the customer or end user. This means that the
20-
system must meet the customer's or end user's needs and expectations. AT also helps to identify any defects or problems
21-
with the software system that may have been missed during earlier phases of testing.
21+
## Why is it important?
2222

23-
### Acceptance Testing Types:
23+
Acceptance testing serves as a safety net before the software reaches the end users, minimizing the risk of post-release defects that could lead to costly fixes and user dissatisfaction.
2424

25-
- **User acceptance testing (UAT)**: This is the most common type of AT. It involves the customer or end user using the
26-
software system in a way that simulates how they will use it in the real world.
27-
- **Systematic testing**: This involves using a set of predetermined test cases to test the software system.
28-
- **Acceptance test-driven development (ATDD)**: This is a technique that combines AT with test-driven development (TDD)
29-
. TDD is a software development process that involves writing unit tests before the code is written. ATDD extends TDD
30-
by adding acceptance tests to the mix.
25+
## What Types of Acceptance Testing are there ?
3126

32-
### Benefits of Acceptance Testing:
27+
There are several types of acceptance testing, each serving a unique purpose:
3328

34-
- It helps to ensure that the software system meets the needs and expectations of the customer or end user.
35-
- It helps to identify any defects or problems with the software system that may have been missed during earlier phases of testing.
36-
- It helps to improve the overall quality of the software system.
37-
- It helps to reduce the risk of defects and problems with the software system.
38-
- It helps to ensure that the software system is ready for release.
29+
### User Acceptance Testing (UAT):
3930

40-
Acceptance testing is vital in ensuring software meets stakeholder demands and quality standards.
31+
UAT is the most common form of acceptance testing, where real users test the software in an environment that mimics the production environment. The goal is to validate the software's functionality and usability from the end user's perspective.
32+
33+
Example: A financial institution might perform UAT on a new online banking system to ensure it meets user expectations before going live.
34+
35+
### Systematic Acceptance Testing:
36+
37+
This type involves using predefined test cases that cover all aspects of the system. It ensures that the software behaves as expected under various conditions.
38+
39+
Example: Systematic testing might involve running a series of transactions through an e-commerce platform to ensure it can handle different payment methods.
40+
41+
### Acceptance Test-Driven Development (ATDD):
42+
43+
ATDD combines acceptance testing with test-driven development (TDD). It involves writing acceptance tests before the actual development begins, ensuring that the final product meets the predefined acceptance criteria.
44+
45+
Example: A team developing a new feature for a mobile app might write acceptance tests first to ensure the feature will function correctly when completed.
46+
47+
## What are the Benefits of Acceptance Testing?
48+
49+
Acceptance testing offers numerous benefits that contribute to the overall success of a software project:
50+
51+
- Validates Requirements: Ensures that the software meets the agreed-upon requirements and expectations.
52+
- Identifies Issues Early: Helps uncover defects that may have been missed during earlier testing phases, reducing the risk of post-release problems.
53+
- Enhances Quality: Improves the overall quality of the software by ensuring it functions as intended.
54+
- Reduces Risks: Minimizes the risk of releasing a flawed product, which can save time, money, and resources.
55+
- Ensures Readiness: Confirms that the software is ready for deployment and will perform well in a production environment.
56+
- Real-World Example: A major retailer might perform acceptance testing on its new inventory management system to ensure it can handle peak shopping seasons without issues.
57+
58+
## What are the Best Practices for Effective Testing ?
59+
60+
To ensure the effectiveness of acceptance testing, consider the following best practices:
61+
62+
- Involve Stakeholders Early: Engage key stakeholders early in the process to ensure their requirements are clearly understood and documented.
63+
- Define Clear Acceptance Criteria: Establish clear and measurable acceptance criteria before testing begins to avoid ambiguity.
64+
- Use Realistic Test Data: Use data that closely resembles real-world scenarios to better assess the software's performance.
65+
- Automate Where Possible: While manual testing is crucial, automating repetitive tasks can save time and reduce human error.
66+
- Iterate and Refine: Continuously refine the acceptance testing process based on feedback and testing outcomes.
67+
68+
## Conclusion
69+
70+
Acceptance testing is a critical step in the software development process, ensuring that the product is ready for deployment and meets the user's needs. By following best practices and involving key stakeholders, organizations can deliver high-quality software that satisfies customer expectations.
71+
72+
## FAQs
73+
74+
### What is the difference between UAT and Systematic Testing?
75+
76+
UAT focuses on testing the software from the end user's perspective, while systematic testing involves using predefined test cases to validate the software's functionality.
77+
78+
### Can acceptance testing be automated?
79+
80+
Yes, certain aspects of acceptance testing, such as repetitive test cases, can be automated to improve efficiency. However, manual testing is often necessary for user-centric tests.
81+
82+
### How does ATDD differ from traditional testing methods?
83+
84+
ATDD involves writing acceptance tests before development begins, ensuring that the software is built to meet specific acceptance criteria from the start.
85+
86+
### What role do stakeholders play in acceptance testing?
87+
88+
Stakeholders are involved in defining acceptance criteria and often participate in UAT to validate that the software meets their needs.
89+
90+
### How does acceptance testing fit into the overall testing process?
91+
92+
Acceptance testing is the final phase in the testing process, occurring after unit, integration, and system testing have been completed.

versioned_docs/version-2.0.0/concepts/reference/glossary/idempotency.md

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
id: idempotency
3-
title: Idempotent REST API
3+
title: How Idempotent REST APIs Boost Reliability and Error Handling
44
sidebar_label: Idempotency
5-
description: Optimize user experience with idempotent APIs. Ensure smooth interactions & error handling for satisfied users.
5+
description: Discover how idempotent APIs enhance user experience, reliability, and error handling. Learn best practices for implementing and testing idempotent methods.
66
tags:
77
- explanation
88
- glossary
@@ -16,9 +16,11 @@ keywords:
1616

1717
## What is idempotency in the context of REST APIs?
1818

19-
Idempotency refers to the property of certain operations where applying them multiple times has the same effect as applying them once. In the realm of RESTful APIs, idempotency ensures that performing a request multiple times will not lead to different outcomes beyond the initial request. This property is crucial for ensuring reliability, consistency, and fault tolerance in distributed systems.
19+
Idempotency means making multiple identical requests has the same effect as making a single request. In REST APIs, this ensures consistent and reliable interactions even with repeated requests.
2020

21-
### Examples of idempotent HTTP methods in RESTful APIs
21+
Idempotent operations are essential for maintaining data integrity, error recovery, and fault tolerance in distributed systems.
22+
23+
### Examples of Idempotent HTTP Methods
2224

2325
Idempotency is often associated with specific HTTP methods in RESTful APIs:
2426

@@ -28,14 +30,14 @@ Idempotency is often associated with specific HTTP methods in RESTful APIs:
2830

2931
![Methods](https://www.hubspot.com/hs-fs/hubfs/Google%20Drive%20Integration/Idempotent%20Api%20Draft-1.png?width=650&name=Idempotent%20Api%20Draft-1.png)
3032

31-
## How does idempotency ensure reliability in distributed systems?
33+
## How Idempotency Ensures Reliability ?
3234

3335
In distributed systems, where network failures and message duplication can occur, idempotent operations ensure reliability by:
3436

3537
- **Preventing Duplicate Effects:** Even if a request is duplicated due to network issues or client retries, idempotent operations ensure that the system's state remains unchanged after the initial request.
3638
- **Simplifying Error Recovery:** Idempotent APIs simplify error recovery mechanisms by allowing clients to retry requests without causing additional modifications or inconsistencies in the system.
3739

38-
### Best practices for implementing idempotent APIs
40+
### Best Practices for Idempotent APIs
3941

4042
Implementing idempotent APIs involves adopting best practices such as:
4143

@@ -44,19 +46,19 @@ Implementing idempotent APIs involves adopting best practices such as:
4446
- **Request Idempotency Tokens:** Use request headers or tokens (e.g., UUIDs) to uniquely identify and handle idempotent requests to prevent duplication or unintended re-execution.
4547
- **Idempotent Database Operations:** Implement database transactions and queries in a way that ensures data modifications are idempotent, even under concurrent or distributed execution scenarios.
4648

47-
### Challenges in implementing and testing idempotent APIs
49+
### Challenges in Idempotent API Implementation
4850

4951
Implementing and testing idempotent APIs can pose challenges such as:
5052

5153
- **Ensuring Correctness Across Systems:** Guaranteeing idempotency in distributed systems with multiple interacting components requires careful design and coordination.
5254
- **Handling Edge Cases:** Identifying and addressing edge cases where idempotency might be violated due to specific system behaviors or failure scenarios.
5355
- **Testing for Idempotency:** Developing comprehensive test cases to verify that operations remain idempotent under various conditions, including network failures, concurrency, and system failures.
5456

55-
## Importance in Distributed Systems
57+
## Why Idempotency is Important ?
5658

5759
Idempotency becomes particularly critical in distributed systems where network failures, message duplication, and out-of-order message delivery can occur. In such environments, ensuring that operations are idempotent helps prevent unintended side effects and ensures that the system can recover gracefully from failures without compromising data integrity.
5860

59-
### Why is idempotency important in RESTful APIs?
61+
### Idempotency important in RESTful APIs
6062

6163
Idempotent APIs offer several benefits that contribute to the reliability, scalability, and consistency of systems. Here are some key advantages:
6264

@@ -87,11 +89,9 @@ Idempotent APIs offer several benefits that contribute to the reliability, scala
8789
9. **Cross-System Integration:**
8890
Idempotent APIs facilitate integration with other systems and services. They provide a reliable and predictable way for different components to communicate, reducing the likelihood of synchronization issues and making it easier to design robust, interoperable systems.
8991

90-
## Idempotent vs Safe
91-
92-
The concepts of ‘idempotent methods’ and ‘safe methods’ are often confused. An operation is considered idempotent if applying it multiple times has the same effect as applying it once. In other words, subsequent executions of an idempotent operation do not produce different outcomes. This property is essential for ensuring consistency, fault tolerance, and reliable behavior in distributed systems.
92+
## Idempotent vs Safe Methods
9393

94-
On the other hand, safe operations are those that do not modify the state of the system. Safe operations are read-only and do not have any side effects on the server. They can be repeated multiple times without changing the state of the resource. Therefore, all safe methods are idempotent, but not all idempotent methods are safe.
94+
Idempotent operations yield the same result regardless of repetitions. Safe methods do not change the system state. All safe methods are idempotent, but not all idempotent methods are safe.
9595

9696
![Idempotent vs Safe](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSNpJRr8DjkwYCknq1yp0PNVbGQ9Gy0rcBwtg&s)
9797

@@ -103,36 +103,34 @@ Certainly! Here are 6 FAQs about idempotent REST APIs:
103103

104104
## Frequently Asked Questions
105105

106-
### 1. What does it mean for an HTTP method to be idempotent?
106+
### What does it mean for an HTTP method to be idempotent?
107107

108108
An HTTP method is considered idempotent if making multiple identical requests with that method yields the same result as making a single request. This property ensures that repeating the operation does not have additional side effects beyond the initial request.
109109

110-
### 2. Why is idempotency important in RESTful API design?
110+
### Why is idempotency important in RESTful API design?
111111

112112
Idempotency is crucial in RESTful API design for reliability and consistency. It allows clients to safely retry requests without causing unintended modifications or inconsistencies in the server's state. This property is essential for handling network issues, retries, and ensuring data integrity across distributed systems.
113113

114-
### 3. What are some examples of idempotent HTTP methods?
114+
### What are some examples of idempotent HTTP methods?
115115

116116
Examples of idempotent HTTP methods include:
117117

118118
- **GET:** Retrieving a resource using GET multiple times returns the same resource state.
119119
- **PUT:** Updating a resource with PUT results in the same state regardless of how many times it's applied.
120120
- **DELETE:** Deleting a resource using DELETE remains unchanged if the resource is already deleted or does not exist.
121121

122-
### 4. How does idempotency contribute to error handling and fault tolerance?
122+
### How does idempotency contribute to error handling and fault tolerance?
123123

124124
Idempotent APIs simplify error handling and fault tolerance by allowing clients to retry requests safely. If a request fails due to network issues or timeouts, clients can resend the request without worrying about introducing inconsistencies or unintended modifications in the server's state.
125125

126-
### 5. What practices should developers follow to ensure idempotency in API implementations?
126+
### What practices should developers follow to ensure idempotency in API implementations?
127127

128128
To ensure idempotency in API implementations, developers should:
129129

130130
- Use appropriate HTTP methods like PUT and DELETE for operations that modify resources.
131131
- Implement operations in a way that does not change the server's state if the request is repeated.
132132
- Use request headers or tokens to uniquely identify and handle idempotent requests to prevent duplicate execution.
133133

134-
### 6. How can developers test for idempotency in REST APIs?
134+
### How can developers test for idempotency in REST APIs?
135135

136136
Testing for idempotency involves creating test cases that simulate scenarios where requests may be duplicated or retried due to network failures or client retries. Developers should verify that repeating the same request does not result in different outcomes or unintended side effects in the system's state.
137-
138-
These FAQs provide insights into the concept of idempotency in RESTful APIs, its importance, implementation best practices, and testing considerations. Understanding idempotency is key to designing robust and reliable API systems that ensure consistent behavior and data integrity.

versioned_docs/version-2.0.0/concepts/reference/glossary/white-box-testing.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ Ensuring every code path is tested, especially in large systems, demands meticul
7878

7979
As code evolves, test cases must be updated, requiring ongoing coordination with development teams.
8080

81+
As code evolves, test cases must be updated, requiring ongoing coordination with development teams.
82+
8183
## Best Practices for Effective White Box Testing
8284

8385
1. **Collaboration with Developers**:

versioned_docs/version-2.0.0/dependencies/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ sidebar_label: Supported Dependencies
77
- [MongoDB](/dependencies/mongo/)
88
- [PostgresSQL](/dependencies/postgres)
99
- [HTTP](/dependencies/http)
10+
- [Redis](/dependencies/redis)

0 commit comments

Comments
 (0)