Skip to content

Commit

Permalink
Add missing pages to glossary (#330)
Browse files Browse the repository at this point in the history
* Markdown lint fixes

* Added beta testing

* Linked to the beta testing landing page from the glossary

* Added blue/green deployment landing page and linked to it from the glossary

* Added cicd landing page and linked to it from the glossary

* add devops engineer landing page and linked to it from the glossary

* Added continuous integration landing page and linked to it from the glossary

* Added feature testing landing page and linked to it from the the glossary

* Added multi-armed bandit landing page and linked to it from the glossary

* Added product lifecycle manager landing page and linked to it from the glossary

* added newline

* Added release-manager landing page and linked to it from the glossary

* Add remote configuration landing page and linked to it from glossary

* Added smoke-testing landing page and linked to it from the glossary

* Added type I and type II errors landing page and linked it from the glossary

* Add version control landing page and linked to it from the glossary
  • Loading branch information
codedbychavez authored Nov 3, 2023
1 parent e400441 commit 70d5ac6
Show file tree
Hide file tree
Showing 16 changed files with 570 additions and 27 deletions.
26 changes: 13 additions & 13 deletions website/docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ Alpha testing examines a product's functionality and compliance with the busines

## B

#### Beta Testing
#### [Beta Testing](/glossary/beta-testing/)

Testing in the beta phase allows users to discover any issues or bugs before a general release by using a product in a real-world environment.

#### Blue/Green Deployment
#### [Blue/Green Deployment](/glossary/blue-green-deployment/)

Blue/Green deployments offer near-zero downtime and rollback capabilities. The concept of a blue/green deployment involves switching traffic between two identical environments running different versions of your application.

Expand All @@ -36,7 +36,7 @@ A Canary Release is a type of progressive delivery where a small percentage of u

Canary testing is a software deployment technique where updates or new features are rolled out to a small, carefully selected subset of users before being released to the entire user base, to test and ensure their effectiveness and safety.

#### CI/CD Pipeline
#### [CI/CD Pipeline](/glossary/ci-cd-pipeline)

A Continuous Integration and Continuous Deployment pipeline (CI/CD) is a set of steps that must be followed to deliver a new software version to customers.

Expand All @@ -48,7 +48,7 @@ A continuous delivery process enables changes - including new features, configur

Continuous Deployment is a process where any code changes brought to an application are released automatically into the production environment.

#### Continuous Integration
#### [Continuous Integration](/glossary/continuous-integration/)

Continuous Integration refers to the regular merging of code changes into a central repository, followed by automated builds and tests.

Expand All @@ -62,7 +62,7 @@ A Dark Launch is rolled out stealthily by first releasing a feature to a subset

A Developer Advocate is a person whose job is to help developers be successful with a platform or a technology and to speak (or write) on their behalf.

#### DevOps Engineer
#### [DevOps Engineer](/glossary/devops-engineer/)

The DevOps Engineer is responsible for the development and maintenance of the infrastructure and the deployment of the software. The DevOps Engineer is also responsible for the monitoring and maintenance of the software and the infrastructure.

Expand All @@ -82,7 +82,7 @@ A feature branch is a copy of the main codebase where an individual or team of s

A feature flag is a toggle used to activate or deactivate specific features you may have in your application without redeploying code.

#### Feature Testing
#### [Feature Testing](/glossary/feature-testing/)

An experiment to determine which version of a feature offers the best user experience is called a Feature Test.

Expand Down Expand Up @@ -127,7 +127,7 @@ A kill switch is a mechanism that can be used to quickly disable a feature or an

## M

#### Multi Armed Bandit
#### [Multi Armed Bandit](/glossary/multi-armed-bandit/)

The Multi-Armed Bandit (MAB) is a machine learning framework that involves an agent making selections, referred to as "arms," with the goal of maximizing its long-term cumulative reward

Expand All @@ -137,7 +137,7 @@ The Multi-Armed Bandit (MAB) is a machine learning framework that involves an ag

## P

#### Product Lifecycle Manager
#### [Product Lifecycle Manager](/glossary/product-lifecycle-manager/)

The role of a product lifecycle manager is to supervise the project team and ensure timely completion of each stage in the lifecycle of a project.

Expand All @@ -161,11 +161,11 @@ Rails feature flags are conditional coding elements used in Ruby on Rails applic

React feature flags are conditional codes used in React.js applications to enable or disable certain features dynamically, allowing for controlled release, testing, and customization of software functionalities.

#### Release Manager
#### [Release Manager](/glossary/release-manager/)

A release manager is an IT professional responsible for defining and executing the software release process within a company, ensuring smooth deployment and high quality releases.

#### Remote Configuration
#### [Remote Configuration](/glossary/remote-configuration/)

Remote configuration is a software development technique that allows you to modify certain features of an app remotely without having to deploy a new version of the app.

Expand All @@ -179,7 +179,7 @@ Ring deployment is a form of gradual rollout where new features are released gra

A site reliability engineer (SRE) is a professional in the field of information technology who uses automation tools to monitor the reliability of software in a live production environment.

#### Smoke Test
#### [Smoke Testing](/glossary/smoke-testing/)

Smoke testing is a type of testing done early in the software development process to confirm that the most critical features of an application are functioning correctly.

Expand All @@ -205,7 +205,7 @@ A staging environment is a dry run for your code under the closest possible para

Testing in production is the practice of evaluating software in its live environment, with real users and real-world conditions. Unlike traditional testing in controlled settings, this approach exposes the software to actual usage scenarios, uncovering issues that may be missed otherwise. However, it requires vigilant monitoring and quick problem resolution to minimize user impact.

#### Type I and Type II Errors
#### [Type I and Type II Errors](/glossary/type-i-and-type-ii-errors/)

A Type I error occurs when the null hypothesis is incorrectly rejected while it is actually true, while a Type II error occurs when the null hypothesis is wrongly not rejected while it is actually false.

Expand All @@ -221,7 +221,7 @@ User Acceptance Testing (UAT) is a stage in software development where the softw

## V

#### Version Control
#### [Version Control](/glossary/version-control/)

Version control, also referred to as source control or revision control, is a crucial software development practice that tracks and manages changes to code and other files, and is closely linked to source code management.

Expand Down
20 changes: 7 additions & 13 deletions website/docs/glossary/alpha-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,47 +5,41 @@ description: Let's delve into the nuances of alpha testing and understand its si
---

## Introduction
In the vast world of software development, testing plays a pivotal role in ensuring that products not only function as intended but also provide a seamless user experience. Among the various testing methodologies, alpha testing often stands out as a critical early-stage evaluation process. Let's delve into the nuances of alpha testing and understand its significance in the product development lifecycle.


In the vast world of software development, testing plays a pivotal role in ensuring that products not only function as intended but also provide a seamless user experience. Among the various testing methodologies, alpha testing often stands out as a critical early-stage evaluation process. Let's delve into the nuances of alpha testing and understand its significance in the product development lifecycle.

## What is Alpha Testing?
Alpha testing is an in-house testing methodology conducted to identify bugs and issues before a product is released to a select group of external users. Typically performed by developers or QA teams, this type of testing is done in a controlled environment and aims to mimic real-world scenarios to ensure the software's functionality and reliability.


Alpha testing is an in-house testing methodology conducted to identify bugs and issues before a product is released to a select group of external users. Typically performed by developers or QA teams, this type of testing is done in a controlled environment and aims to mimic real-world scenarios to ensure the software's functionality and reliability.

## The Objectives of Alpha Testing

- **Bug Identification**: Detecting and addressing glitches, errors, and other issues.
- **Functionality Verification**: Ensuring all features work as intended.
- **Usability Assessment**: Evaluating the product's user-friendliness and overall experience.
- **Performance Evaluation**: Checking the software's response times, load times, and overall efficiency.



## The Alpha Testing Process

- **Planning**: Setting the scope, objectives, and timelines for the test.
- **Environment Setup**: Creating a controlled environment that simulates real-world usage.
- **Test Execution**: Running a series of tests, both manual and automated, to evaluate different aspects of the software.
- **Feedback Collection**: Gathering insights and observations from the testing team.
- **Issue Resolution**: Addressing and rectifying identified problems before moving to the next testing phase.



## Why Alpha Testing is Crucial

- **Early Detection**: Catching issues early on can save time, effort, and resources in the later stages of development.
- **Internal Feedback**: Gaining valuable insights from the team members who are familiar with the product's objectives and design.
- **Risk Mitigation**: Reducing the chances of major issues appearing in subsequent testing phases or post-launch.
- **Enhanced User Experience**: Ensuring that the end-users get a product that is polished, functional, and user-friendly.



## Challenges in Alpha Testing and Solutions

- **Limited Perspective**: Being an internal process, alpha testing might miss issues that external users might encounter. Solution: Diverse testing teams and scenario simulations.
- **Environment Limitations**: The controlled environment might not perfectly mimic all real-world scenarios. Solution: Use of virtual machines and diverse testing tools.
- **Feedback Management**: Handling and prioritizing the feedback can be challenging. Solution: Use of feedback management tools and regular team sync-ups.



## Conclusion
Alpha testing, while often overshadowed by its successor, beta testing, holds immense value in the software development process. By ensuring that a product is rigorously tested in its early stages, developers can pave the way for smoother subsequent testing phases and, ultimately, a successful product launch. As the adage goes, "Well begun is half done," and alpha testing ensures that software development begins on the right foot.

Alpha testing, while often overshadowed by its successor, beta testing, holds immense value in the software development process. By ensuring that a product is rigorously tested in its early stages, developers can pave the way for smoother subsequent testing phases and, ultimately, a successful product launch. As the adage goes, "Well begun is half done," and alpha testing ensures that software development begins on the right foot.
45 changes: 45 additions & 0 deletions website/docs/glossary/beta-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
id: beta-testing
title: Beta Testing - Navigating the Road to Market Readiness
description: Explore the pivotal role of beta testing in software development and understand how it shapes software for better user experiences and market success.
---

## Introduction

Beta testing stands as a critical milestone before a software product meets its audience. This phase is the trial test, bridging the gap between internal development and user experience. Let's explore the role of beta testing in software development and its significance in refining software products.

## What is Beta Testing in Software Development?

Beta testing in software development involves releasing a near-complete version of the software to a selected group of external users. This phase follows alpha testing and is crucial for gathering feedback under real usage conditions to fine-tune the software before its official release.

## The Objectives of Beta Testing in Software Development

- **Gathering User Feedback**: Collecting insights about user experiences and preferences.
- **Assessing Market Response**: Evaluating how the software is perceived and received in the market.
- **Identifying Real-World Bugs**: Detecting issues that might have been missed during internal testing.
- **Refinement for Market Launch**: Adjusting and improving the software based on user feedback.

## The Beta Testing Process in Software Development

- **Selection of Beta Testers**: Recruiting a diverse and representative sample of the target user base.
- **Distribution of Beta Version**: Providing the beta software to the chosen testers.
- **Monitoring and Feedback Collection**: Observing user interactions and gathering structured feedback.
- **Analysis and Iteration**: Analyzing user feedback to identify areas for improvement and implementing changes.
- **Release Readiness Assessment**: Evaluating if the software is ready for public launch based on tester feedback.

## Why Beta Testing is Crucial in Software Development

- **Insights from Real Users**: Obtaining feedback from actual users in varied real-world scenarios.
- **Market Acceptance Evaluation**: Gauging the market's reaction and the software's readiness for launch.
- **Enhancement of Software Quality**: Identifying and fixing bugs, and polishing features to improve overall quality.
- **Building Early User Base**: Establishing an initial user community and fostering early adopter loyalty.

## Challenges in Beta Testing for Software and Solutions

- **Diverse User Scenarios**: Testers may have different usage patterns and environments. Solution: Carefully select a diverse group of beta testers.
- **Handling Feedback Effectively**: Managing a large volume of feedback can be challenging. Solution: Implement structured feedback collection tools and clear guidelines.
- **Maintaining Tester Engagement**: Keeping beta testers motivated and engaged throughout the process. Solution: Provide incentives for participation and maintain open, responsive communication channels.

## Conclusion

Beta testing in software development is more than just a phase; it's a strategic approach to ensuring that the software not only functions but also resonates with its intended audience. It’s a vital step in the journey towards launching a software product that is not just functional, but also aligned with user expectations and market demands. Through beta testing, software developers can pave the way for a successful product launch, grounded in quality, user satisfaction, and market readiness.
45 changes: 45 additions & 0 deletions website/docs/glossary/blue-green-deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
id: blue-green-deployment
title: Blue/Green Deployment - Streamlining Software Releases
description: Discover the essence of Blue/Green Deployment and its pivotal role in seamless software updates and rollbacks.
---

## Introduction

In the dynamic realm of software development, deploying updates without disrupting user experience is paramount. Blue/Green Deployment emerges as a strategic method that enables this seamless transition. Let's delve into its mechanics and recognize its significance in software deployment.

## What is Blue/Green Deployment?

Blue/Green Deployment is a strategy used to reduce downtime and risk by running two identical production environments. Simply put, the 'Blue' environment is the active one, while the 'Green' is a clone, ready to be switched over at any moment. This approach allows for testing in the production environment itself without affecting users.

## Objectives of Blue/Green Deployment

- **Minimal Downtime**: Achieve nearly zero downtime during deployments.
- **Risk Reduction**: Mitigate risks associated with the release of new features or updates.
- **Rapid Rollback**: Provide the ability to quickly revert to the previous version if issues arise post-deployment.
- **Continuous Delivery**: Facilitate a smoother continuous delivery pipeline.

## The Blue/Green Deployment Process

- **Preparation**: Setting up two identical environments — Blue (current) and Green (new).
- **Testing**: Validating the Green environment to ensure it's ready for live traffic.
- **Routing Traffic**: Shifting user traffic from Blue to Green seamlessly.
- **Monitoring**: Keeping a close watch on the Green environment for any issues.
- **Finalization or Rollback**: If successful, decommission the Blue environment, or if problems are detected, revert traffic back to Blue.

## Why Blue/Green Deployment is Essential

- **Enhanced Reliability**: Increases the reliability of the deployment process.
- **User Experience**: Ensures uninterrupted service to users during updates.
- **Simplified Troubleshooting**: Allows easy identification and resolution of issues.
- **Flexibility**: Offers flexibility in managing and scheduling deployments.

## Challenges in Blue/Green Deployment and Solutions

- **Resource Intensiveness**: Requires duplicating the production environment. Solution: Efficient resource management and cloud-based solutions.
- **Data Synchronization**: Keeping data in sync between Blue and Green environments. Solution: Robust data management strategies and tools.
- **Complex Configuration**: Managing complex configurations during the switch. Solution: Automation tools and thorough planning.

## Conclusion

Blue/Green Deployment serves as a cornerstone for modern software delivery, ensuring that updates and new features are rolled out smoothly, without disturbing the end-user experience. By integrating this strategy into deployment practices, organizations can enhance the reliability and efficiency of their software delivery process, ultimately leading to greater user satisfaction and business success.
Loading

0 comments on commit 70d5ac6

Please sign in to comment.