Tuesday, July 9, 2024

High Severity Low Priority Bugs in E-Commerce Web Application

1. Payment Gateway Failure in Specific Currency
High Severity: Users cannot complete purchases using a particular currency.
Low Priority: This currency is rarely used by the customer base.
Technical: When users select a rarely used currency, the payment gateway integration fails due to incorrect API calls or missing currency configuration.
Simple: Users can't pay in a specific, rarely-used currency.

2. Crash When Filtering Products by a Rare Attribute
High Severity: The website crashes, disrupting user experience.
Low Priority: The attribute filter is rarely used by customers.
Technical: Filtering by an uncommon attribute triggers a crash, possibly due to a null reference or unhandled exception.
Simple: The site crashes when filtering by a rarely used feature.

3. Incorrect Discount Calculation for Bulk Orders
High Severity: Users are charged incorrect amounts.
Low Priority: Bulk orders are rare.
Technical: The discount logic has a bug when calculating bulk order discounts, leading to incorrect pricing.
Simple: Bulk orders get the wrong discounts.

4. Failure to Load Product Images on Secondary Pages
High Severity: Product images do not load, affecting user experience.
Low Priority: Occurs on less frequently visited pages.
Technical: Image URLs or CDN issues prevent images from loading on less-visited pages.
Simple: Product images don't show up on certain pages.

5. Inability to Apply Multiple Coupons on Checkout
High Severity: Users cannot avail of multiple discounts.
Low Priority: Only a few users use multiple coupons.
Technical: The checkout process doesn't handle multiple coupon codes due to a bug in the discount application logic.
Simple: Users can't use more than one coupon at a time.

6. Error in Wishlist Functionality for Out-of-Stock Items
High Severity: Users cannot add out-of-stock items to their wishlist.
Low Priority: Out-of-stock items are a small portion of the catalogue.
Technical: The wishlist feature crashes or misbehaves when adding out-of-stock items due to lack of proper handling.
Simple: Can't add out-of-stock items to a wishlist.

7. Mismatch in Product Specifications on Detailed View
High Severity: Detailed view shows incorrect specifications.
Low Priority: Rarely visited detailed specifications page.
Technical: The product detail page shows incorrect specs due to outdated or incorrect data fetching logic.
Simple: Wrong details are shown on the product page.

8. Search Function Fails for Long Strings
High Severity: Users can't search with long keywords.
Low Priority: Most users use short search queries.
Technical: Long search queries cause database or server errors, possibly due to input length limits or inefficient query handling.
Simple: Searching with long phrases doesn't work.

9. Incorrect Display of User Loyalty Points
High Severity: Users see the wrong loyalty points balance.
Low Priority: The loyalty points program has low participation.
Technical: The loyalty points calculation or display logic has errors, showing incorrect balances.
Simple: Users see the wrong loyalty points balance.

10. Failure to Load Reviews for Products with No Reviews
High Severity: Page crashes if a product has no reviews.
Low Priority: Most products have at least one review.
Technical: The review section crashes when there are no reviews, likely due to poor handling of empty datasets.
Simple: Page crashes if there are no reviews.

Tuesday, July 2, 2024

Bug Leakage in E-commerce Web Applications

1. Payment Gateway Issues:
  • A bug where the payment gateway fails to process transactions intermittently, causing users to be unable to complete purchases.
  
2. Product Display Errors:
  • Incorrect product images or descriptions are shown, leading to user confusion or incorrect orders.
  
3. Cart Issues:
  • Items added to the cart disappear or change quantity without user input.
  
4. Order Confirmation Emails:
  • Users not receiving order confirmation emails or receiving them with incorrect details.
  
5. Search Functionality:
  • Search results not displaying relevant products, or the search feature not working at all.
  
6. Discount Codes:
  • Discount codes not applying correctly or giving incorrect discounts.
  
7. User Account Problems:
  • Users are unable to log in, register, or reset passwords.
  
8. Slow Loading Pages:
  • Certain pages take too long to load, leading to a poor user experience.
  
9. Checkout Process Failures:
  • The checkout process freezes or fails, preventing users from completing their purchases.
  
10. Inventory Mismatches:
  • Showing products as in stock when they are out of stock, leading to order cancellations.

API Status Codes with Real Time Examples

HTTP 500 Series Status Codes:
  • HTTP status codes in the 500 series are server error responses.
1. 500 Internal Server Error
  • It occurs when a server meets with an unexpected condition. It indicates that the server encountered an unexpected condition that prevented it from fulfilling the request. The exact cause of the error is not specified in the response, making it a generic error message.
Example:
  • Imagine you are using an online banking application. You have logged in successfully and want to transfer money to a friend. You fill out the form with the necessary details and hit the 'Transfer' button. Instead of processing the transaction, the application shows a '500 Internal Server Error message.
Cause:
  • This could be due to several reasons, such as a bug in the application code, an issue with the server configuration, or a problem with the database connection. For instance, if the code that processes the transaction has a programming error or the database server is down, the web server might not be able to complete your request, resulting in this error.

2. 501 Not Implemented
  • It indicates that a server doesn’t recognize the requested method or is unable to process that type of request.
Example:
  • Suppose you are using a RESTful API to manage your online store inventory. You send a request using a new HTTP method called 'PATCH' to update part of the inventory data.
Cause:
  • If the server you are communicating with has not been programmed to handle the PATCH method, it will return a 501 Not Implemented error. The server might only support GET, POST, PUT, and DELETE methods, and hence does not understand or implement the PATCH method.
  
3. 502 Bad Gateway
  • It happens when a server receives an invalid response from the upstream server.
Example:
  • You are trying to access a news website. The website's server needs to fetch the latest news articles from another server (an upstream server).
Cause:
  • If the upstream server is down or returns a corrupted response, the main server cannot retrieve the necessary data and responds with a 502 Bad Gateway error. This typically happens in complex server architectures where one server relies on another to get the required information.
  
4. 503 Service Unavailable
  • It indicates that the server is temporarily down for maintenance or overloaded.
Example:
  • A popular e-commerce website announces a flash sale. As the sale goes live, thousands of users try to access the website simultaneously.
Cause:
  • The sudden surge in traffic overwhelms the server, which cannot handle the volume of requests, leading to a 503 Service Unavailable error. Alternatively, if the website administrators are performing maintenance, they might take the server offline temporarily, resulting in this error.
  
5. 504 Gateway Timeout
  • It occurs when a server doesn’t receive a response on time from the upstream server.
Example:
  • You are using an online travel booking site to book a flight. The site needs to check availability with the airline's server.
Cause:
  • If the airline's server takes too long to respond, the booking site's server might time out while waiting for the response, resulting in a 504 Gateway Timeout error. This usually occurs in distributed systems where one service depends on another for data.
 
6. 505 HTTP Version Not Supported
  • It indicates that the server doesn’t support the HTTP protocol version used in the request.
Example:
  • You are using an old web browser to access a modern web application.
Cause:
  • If your browser sends a request using HTTP/1.0, but the server only supports HTTP/1.1 or HTTP/2, it will respond with a 505 HTTP Version Not Supported error.
  

HTTP 400 Series Status Codes:
  • HTTP status codes in the 400 series are client error responses. These indicate that the request made by the client (e.g., a web browser) was incorrect or cannot be processed by the server. 
1. 400 Bad Request
  • The server cannot understand the request due to malformed syntax.
Example:
  • You try to search for a product on an e-commerce website, but you accidentally enter invalid characters in the search box. The server doesn't understand your request and returns a 400 Bad Request error.
  
2. 401 Unauthorized
  • The request requires user authentication. The client must authenticate itself to get the requested response.
Example:
  • You try to access your email account without logging in. The server responds with a 401 Unauthorized error, asking you to log in first.
  
3. 403 Forbidden
  • It is sent when a user doesn’t have permission to access the requested page.
Example:
  • You try to access a restricted page on a company's internal website without the necessary permissions. Even if you are logged in, you get a 403 Forbidden error because you don't have the right access level.
  
4. 404 Not Found
  • The server cannot find the requested resource. This is the most common error.
Example:
  • You click on a broken link or type in a URL that doesn't exist on a website. The server returns a 404 Not Found error because the page you're looking for cannot be found.
  
5. 405 Method Not Allowed
  • The request method is known by the server but is not supported by the target resource.
Example:
  • You try to submit data using a GET request instead of a POST request on a form submission page. The server responds with a 405 Method Not Allowed error.
  
6. 408 Request Timeout
  • The server did not receive a complete request message within the time that it was prepared to wait.
Example:
  • Your internet connection is slow, and it takes too long to send a request to a website. The server times out and returns a 408 Request Timeout error.
  
7. 429 Too Many Requests
  • The user has sent too many requests in a given amount of time ("rate limiting").
Example:
  • You try to log in to your account multiple times in quick succession, and the server temporarily blocks further requests, returning a 429 Too Many Requests error.

Friday, June 14, 2024

Important Things to Test Ecommerce Applications

  •  E-commerce applications have many users worldwide, dealing with finance, marketing, retail & wholesale, manufacturing, and auctions.
1. Testing E-commerce Application’s Functionality

An e-commerce web or mobile application has four important elements in its structure, and they are:
  • Main Pages – Homepage, Product page, Special Offers, About Us page, Sitemap pages, Privacy Policy page, Press Releases page, etc.
  • Category / Product Type Pages – The product page includes options such as product size, colour, and type. There is a sorting feature to filter out products based on price, model, size, etc. There is also the “Add to Cart” or “Add to Wishlist” feature present in the category pages.
  • Product Description Page – Consists of the product title, description, product images, related products, Add to Cart feature, Product comparison, additional product info, etc.
  • Shopping Cart – Products list view, removing the product from the list, cash on delivery option, Select delivery option, card payment, pay now option, etc.
2. Testing E-commerce Application Workflow
  • Login and Signup options
  • Search functionality
  • Product review posting feature
  • Sorting feature
  • Applying filters for choosing the desired product(s)
  • Add/remove functionality in the shopping cart
  • Check out process
  • Order number and invoice generation
  • Payment gateway and payment processing
3. Payment Gateway Functionality
  Another important functionality to test is the payment gateway and you have to conduct multiple tests to ensure it functions properly and provides security while doing online transactions. Here are the checkout and payment processes that you need to test:
  • You need to check the product price is correct, the shipping charge, VAT, and discount codes are applied and the price the customer has to pay is the right amount. You can test this payment process by making changes to the final list of products, applying different discount coupon codes, and choosing a different region to see the change in shipping charges.
  • You need to check whether the payment is processed correctly, by using all kinds of payment methods such as net banking, Credit/Debit card, PayPal, etc. You can check all these using dummy accounts and demo debit/credit card numbers. Also, you need to check whether the orders are cancelled, and the payment ID sent back.
  • Check whether the invoices and emails generated after the payment process are sent.
  • You need to also ensure the refund process, email, and refund receipt all are working properly.
4. Other Common Things to be Tested
  • There are other common things in your e-commerce application you need to test and they include website content, webpage format, website accessibility, cookies, social buttons, adding/deleting content, removing/adding links, web standards, analytics, and making changes to shipping settings.

5. Performing Security and Vulnerability Assessments

6. Checking Compatibility with Web Browsers

7. Testing for Mobile Responsiveness

8. Checking Performance and SEO-related Things

9. Social Media Integration