Upgrade Testing Guidelines

This article provides guidelines for conducting upgrade testing, which is the process of testing software upgrades to ensure that they function correctly and do not introduce any new issues. The article outlines the typical steps involved in upgrade testing, including selecting testers, creating test cases, and prioritizing bugs. It also highlights common issues that may arise during upgrade testing, such as a lack of testing or a lack of time for testing and provides tips for addressing these issues.

The main steps involved in upgrade testing include:

  • Selecting testers and scheduling upgrade testing

  • Ensuring testers have dedicated time for testing

  • Creating test cases based on business cases and prioritizing them

  • Selecting data for testing, including positive, negative, and specific scenarios

  • Testing according to prepared test cases and logging bugs for resolution

  • Retesting fixes and conducting smoke testing before general release.

Upgrade Testing Overview

Let’s outline the 10 main steps involved in upgrade testing. Here's a clarification of the steps, Keep these in mind at all times as they will help you in making the best possible calls and assessments throughout the process.

  • Select testers and schedule Upgrade testing: Choose the individuals who will conduct the testing and set a schedule for the testing process.

  • Make sure all testers have time for Upgrade testing every day: Ensure that the testers have dedicated time each day to focus on upgrade testing.

  • Ensure all testers have access to all tested systems and inbound integrations are working correctly on QA partition: Confirm that the testers have access to all the systems being tested, and that inbound integrations are functioning properly in the QA (Quality Assurance) environment.

  • Create test cases based on E2E business cases and prioritize them based on use case importance: Develop test cases based on end-to-end (E2E) business scenarios and prioritize them based on the importance of the use case.

  • Select data for testing, make sure you select data for positive, negative and specific cases: Choose appropriate data for testing, including positive, negative, and specific scenarios.

  • Make sure test cases contain expected results and go-live criteria: Ensure that the test cases include the expected results and criteria for when the upgrade can go live.

  • Test according to prepared test cases, start from the highest priority and positive scenarios: Conduct testing according to the prepared test cases, beginning with the highest priority and positive scenarios.

  • Log bugs to Jira and retest after they are fixed: Record any issues found during testing in Jira (a popular issue-tracking tool) and retest after the issues have been resolved.

  • Promote core code from QA to Prod only when testing is complete: Transfer the core code from the QA environment to the production (Prod) environment only after testing is complete.

  • Conduct smoke testing in Prod prior to general release: Perform smoke testing (a preliminary testing to check basic functionality) in the production environment before the general release of the upgrade.

These steps provide a comprehensive overview of the upgrade testing process and help ensure that the upgrade is thoroughly tested before being released to users.

Typical Issues during Upgrade Testing

We should emphasize the importance of upgrade testing and the potential consequences of not conducting it. These issues highlight the risks associated with a lack of testing and provides recommendations for ensuring a seamless testing process.

No Upgrade Testing

In case of any issues or misunderstandings that may surface later, rest assured they will be promptly addressed under the COSA framework.

There might be a temporary interruption in the functionality of the Pricefx software after deployment to production, rendering its use temporarily unavailable leading to missing benefits during this period.

Missing Plan for Upgrade Testing

Testers are engaging in exploratory testing without prior preparation, resulting in disorganized upgrade testing. The lack of clarity on priorities for test cases further hampers efficiency, as the most crucial cases are not being addressed promptly or primarily.

Testers Lack Time for Testing

This situation is a very common occurrence. Testers are not testing because they are doing other work. The fact that this happens more that we would like does not change the fact that it can lead to delayed upgrade testing or no upgrade testing at all. Therefore it is recommended that testers only focus on testing at this time to ensure a seamless process.

Tips - Before Upgrade testing

This area emphasizes the key steps involved in preparing for the upgrade testing phase, including selecting a dedicated group of testers, creating comprehensive test cases, prioritizing data selection for testing, and appointing a dedicated test leader while choosing an appropriate test management tool.

image-20240111-141254.png

Select Group of Testers

As we prepare for the upgrade testing phase, our approach involves selecting a dedicated group of testers who are familiar with the Pricefx software before the upgrade. Ensuring their availability and access to necessary systems is paramount.

Create Test Cases for Upgrade Testing

The creation of comprehensive test cases, based on current business cases and covering end-to-end scenarios, is a key focus. These test cases are tailored to reflect how the Pricefx software is currently utilized before the upgrade, including checklists for thorough verification. Prioritizing data selection for testing, covering positive, negative, and specific scenarios, is another critical aspect.

Choose Test Leader and Test Management Tool

Appointing a dedicated test leader to collect results and inform managers is essential, along with choosing an appropriate test management tool, potentially utilizing X-Ray in Pricefx Jira or Excel for smaller test cases.

Tips - During Upgrade testing

During the Upgrade testing phase, testers equipped with Test execution, especially if X-Ray is used, prioritize test cases, focusing on critical functionalities at the beginning for a strategic testing sequence. Daily logging of test results, including attached screens and detailed descriptions, forms a comprehensive feedback loop. Reporting bugs in Jira under the designated Bug category is encouraged, with clear descriptions, expected results, and relevant files provided for efficient issue resolution.

Retesting all fixes, promptly closing bugs, and concluding testing for the respective test cases are integral steps. Daily progress checks, led by the Test Leader, further contribute to transparency and efficiency. This synchronized testing approach ensures a thorough evaluation during the Upgrade testing phase, enhancing the overall quality of our software.

Bug prioritization

Table categorizes bug priorities for a Pricefx solution into four levels: Critical, High, Medium, and Low. Each priority level is accompanied by an explanation of the type of issue it represents and an example to illustrate the impact on business operations or system functionality.

  • Critical: This is the highest priority level. It refers to situations where the user is unable to use the solution, causing a critical impact on business operations. The condition demands immediate resolution. An example given is when the system is down.

  • High: This priority level is assigned to defects that significantly affect the system's operation, such as incorrect price calculations where no workaround exists, and the issue is time sensitive. For instance, a defect that prevents pricing from being exported to ERP systems.

  • Medium: These are defects that require attention but do not completely halt operations. A workaround might be available, although it may not be the best solution. An example provided is a defect that necessitates manual calculations by the user.

  • Low: This priority is for minor functionality losses which do not significantly affect system operations. These could be related to monitoring, need for clarifications, documentation questions, or administrative tasks. An example mentioned is updating a column label or addressing other cosmetic defects.

This table is likely used by a software development or IT support team to prioritize bug fixes and manage their workflow efficiently, ensuring that the most critical issues are addressed first to minimize disruption to business processes.