Testing and Quality Assurance (QA) at Alliance Business Suite 🚀🔍🛡️
Hello, revered artisans of the Alliance Business Suite! In this kingdom of code, quality reigns supreme. This guide aims to arm you with the techniques and tools necessary for a gallant quest in testing and Quality Assurance (QA).
From fledgling junior developers to the wise, old senior devs, this page is your enchanted scroll of wisdom. Found a hidden gem of knowledge or see room for improvement? Contribute away! We're all ears (and eyes 👀) for your insights.
Table of Contents
- Introduction
- Our Testing Arsenal
- Functional Testing
- Exploratory Testing
- Performance Testing
- Quality Assurance
- Best Practices
- Contribution
Introduction 🌟
Quality is not an act; it's a habit! In the Alliance Business Suite, we're in the business of crafting legendary software, and our testing game is strong. 🛡️🗡️
Our Testing Arsenal 🛠️
- Unit Testing: MSTest
- Behavior-Driven Development (BDD): ABS.SnapBind, SpecFlow
- Functional Testing: SpecFlow
- Exploratory Testing: Manual methods
- Performance Testing: Siege
Functional Testing 🎯
For functional testing, we trust SpecFlow. SpecFlow allows us to write human-readable descriptions of software behaviors without detailing how that functionality is implemented.
How to Use SpecFlow
- Installation: Install the SpecFlow extension from the Visual Studio marketplace.
- Writing Tests: Create a new SpecFlow feature file and define your test cases using Gherkin language.
Feature: Login Feature Scenario: Successful Login Given the login page is open When the user enters correct credentials Then the dashboard page should be shown - Running Tests: Tests will appear in your Test Explorer, ready to be executed.
Exploratory Testing 🔍
Exploratory testing is our secret sauce. It's an ad-hoc approach, where we let our test engineers loose on the application, like knights on a treasure hunt. The goal is to discover uncharted territories in our application that might need a closer look.
Tips for Effective Exploratory Testing
- Touring: Familiarize yourself with the application's landscape.
- Take Notes: Document your findings for detailed bug reporting.
- Use Tools: Browser developer tools are your best friends for client-side debugging.
Performance Testing ⚙️
To test the mettle of our application under stress, we use Siege. Siege is a powerful tool that allows us to measure code execution time, simulate multiple users, and analyze memory usage.
How to Use Siege
- Installation: Download and install Siege from the official website.
- Configuration: Edit the
siegercfile to match your testing environment. - Running Tests: Use the command line to run your Siege tests. For example,
siege -c 25 -r 10 https://absuite.net.
Quality Assurance 🛡️
QA is not just about finding bugs; it's about creating a culture of excellence.
QA Techniques
- Peer Reviews: Each piece of code is reviewed by at least one other developer.
- Automated Testing: Our CI/CD pipeline automatically runs a suite of tests before deployment.
- Manual Testing: The QA team performs manual checks to catch any elusive bugs.
Best Practices 🏆
- Write Tests Early: Early in the development cycle is the best time to write tests.
- Be Comprehensive: Cover as many edge cases as you can.
- Keep It Simple: Tests should be easy to read and understand.
- DRY (Don't Repeat Yourself): Reuse test code whenever possible.
Filing Bugs Using Azure DevOps 🐞🛠️
Ah, the infamous bug! 🐜 A foe we've all crossed swords with at some point. But worry not, champions of the Alliance Business Suite. Azure DevOps is our trusty sidekick in bug tracking and management.
Why Azure DevOps?
Azure DevOps offers an end-to-end solution that aligns perfectly with our Cloud-First, DevOps-First mantra. With its Work Item Tracking system, we can easily manage, track, and prioritize bugs, linking them directly to code changes and deployments.
How to File a Bug 📝
Step 1: Accessing the Work Items Tab
- Open the Azure DevOps Project for the Alliance Business Suite.
- Navigate to the "Boards" tab and select "Work Items".
Step 2: Creating a New Bug Item
- Click on the "New Work Item" button, usually located at the top right corner.
- From the dropdown, select "Bug".
Step 3: Filling in the Details 🕵️♀️
-
Title: Create a descriptive but succinct title.
- Bad Example: "It doesn't work"
- Good Example: "Login fails when password contains special characters"
-
Description: Describe the bug in detail, including what you expected to happen and what actually happened. Attach screenshots or logs if possible.
-
Repro Steps: Enumerate the steps to reproduce the bug. Be as detailed as possible.
1. Navigate to login page 2. Enter username 'JohnDoe' 3. Enter password 'Pa$$w0rd!' 4. Click on 'Login' button -
Severity: Indicate how harmful this bug is to the project.
- Options usually range from "Critical" to "Low".
-
Area and Iteration Path: If applicable, specify the area of the software where the bug occurs and the iteration path for when this bug should be addressed.
-
Assigned To: Assign the bug to a team member for fixing or leave it unassigned for triaging.
Step 4: Save and Share 📤
- Click the "Save" or "Save & Close" button to log the bug.
- Once saved, a unique ID is generated for the bug. Share this ID with your team for easy tracking.
Pro Tips 🌟
- Link Related Work Items: If this bug is related to any user story, task, or other bug, make sure to link them.
- Tag It: Use tags like "UI", "backend", "urgent", etc., to easily filter and categorize bugs.
- Use Templates: For common types of bugs, create a template to save time.
Filing bugs is a team sport, people! 🏆 Let's make sure to log them clearly and concisely, setting the stage for quicker resolutions and a stronger, more reliable Alliance Business Suite. 🛡️🗡️
Feel free to contribute any tips or tools you use for bug tracking in Azure DevOps. Together, we can compile the ultimate bug-slaying guide. 😎🚀
Contribution 💡
Contributions are the lifeblood of this guide. Feel empowered to add your two cents, and make sure to check our Engineering Handbook's contribution guidelines.
Saddle up, brave devs! The journey to code excellence awaits. 🚀🌈🏆🛡️