Post3

Why Migrate From HP QC to JIRA (Zephyr)?

Posted by Pooja Chandola

Many experts have pointed out that HP QC (Quality Center) – a comprehensive test management tool – isn’t a healthy option anymore. Popularly known as HP QC 10.0, it poses a reliability risk to the delivery teams. Not only is the tool out of support but it also doesn’t provide the scalability options that accommodate Quality Engineering vision. Also, HP QC does not have the capabilities to meet the needs of enterprise strategy for software delivery.

It is imperative for a Test Management tool to at least be browser/ OS agnostic, integrated with CI solutions, feature a user-friendly interface, and provide solid reporting solutions.

Out of the many Test Management tools available in the market, Zephyr for JIRA is the most cost-efficient alternative for organizations that are already using JIRA. The advantage of Zephyr for JIRA is the integration of testing into the project cycle, which allows teams to track software  quality and make informed decisions. Users can create, execute, track and report test issues just like any other JIRA issue. That said, there are a few challenges with JIRA, but on this scale, it serves more benefits than HP QC hence, it is a recommendable replacement.

Advantages of JIRA over HP ALM (Quality Center)

  1. Customization: JIRA comes with modern customization features and REST calls capabilities that allow teams to modify tools irrespective of development methodology. HP ALM, on the other hand, requires organizations to follow a rigid process owing to their tool architecture.
  2. Easy Expansion Platform: JIRA was primarily an issue and project management tool, but features innumerable add-ons that extend its functionality.
  3. SaaS model: Unlike HP ALM, JIRA users don’t need to buy, install, maintain, or update any hardware or software. This is because of the introduction of SaaS-based subscription model.
  4. Reduced Cost: JIRA, along with add-ons, is available at a fraction of a cost minus professional services.
  5. Browser Support: JIRA is compatible with most browsers and OS unlike HP ALM, which is restricted to IE.

Let’s see how we can leverage JIRA (Zephyr) to build an automation framework.

Building an Automation Framework using JIRA (Zephyr), Jenkins, GIT, ZAPI, and Python

Automation is the key attribute of DevOps, which increases the overall software efficiency and ensures robust software quality. Automated testing is invaluable, not only does it saves time but also delivers consistent and accurate results. The lines of code are reusable, which reduces the overall time and cost of testing.

Our framework will use Jenkins for CI and Zephyr for test management, due to the following reasons:

  1. Jenkins is an independent platform and easily configurable open-source tool with great community support. The extensive pool of plugins makes it flexible and allows building, deploying and automating processes across platforms.
  2. Zephyr gives us some real-time and collaborative ways to manage software quality across distributed teams and testing cycles.
    • It is native inside JIRA and provides complete testing capabilities
    • It enhances automation and increases efficiency, thanks to the integration with many popular CI tools
    • It promotes easy tracking of quality metrics using Zephyr dashboard, which provides metrics on testing activities across all projects

Infrastructure Requirements

  1. Jenkins

It requires a Random String Parameter plugin to prevent merging of simultaneous triggers into a single build and a Generic Webhook plugin to extract Webhook payload.

  1. JIRA

With add-ons such as Zephyr for test management, ZAPI for Zephyr REST API, and automation for JIRA.

  1. Python

Architecture

Program Description

  • Jenkins job will fetch Issue Keys and Project ID of a test case from JIRA and call the test-main module.
  • The test-main module will download attachments from JIRA using the Issue Key when
    • The attachment found in JIRA has the following filename: (param_issueKey.ini) continue; else, it will call jiratestlogger module and update the test case in JIRA and end the program.
    • The test-main module reads the parameter file and retrieves the database and test parameters. If the read is unsuccessful, it populates the errors and abends the program; else, it continues the program and validates the parameter details.
  • The test-main module checks parameter details provided in the parameter file
    • If one database connection parameter is provided, it connects to the database and checks the status
      • If the database connection is unsuccessful, it populates the error details and abends the program; else, continues.
    • If multiple database connection parameters are provided, then connects to each database using the connection details thus provided and checks their status
      • If the database connection is unsuccessful, it populates the error details and abends the program; else, continues.
    • Retrieve SQL queries using the parameters provided and call test script based on the name of test cases.
    • Execute SQL queries and populate result set and return test status to test-main module
      • Validate result-set for data validation as per the requirement.
  • The test script connects to ZAPI using the connection details and authenticates the request sent using the header
    • If the connection is unsuccessful, populate error and abend program
    • If the connection is successful, retrieve Version ID, Cycle ID and Execution ID using the Issue Key, Project Name, Cycle Name and Version Name
    • Update the test result in JIRA using the API details and Execution ID
    • Update Test Execution using the following details
      • Execution ID
      • Status
      • Comment
    • Check API return code
      • It will continue if the return code is successful; else, it will populate error details and abend the program
  • ZAPI script writes transaction details to log files using the logger module.

Features

  1. Automates test case execution using JIRA (Zephyr), Jenkins, GIT, ZAPI, Python
  2. Automates update of test case execution in JIRA using Zephyr API (ZAPI)
  3. Captures logs on the local server
  4. Attaches logs to JIRA test case after execution
  5. Executes multiple test cases in a single click
  6. Error handling
    • Handling errors in JIRA test case execution (invalid or missing Issue Key, Project ID, etc.)
    • Handling the test-case parameter issues
    • Handling errors in test script (data validation)
    • Handling DB connection issues
  7. Tracks test-plan quality metrics using dashboards

Closing Lines

An agile and high-quality toolset that supports DevOps is the need of the hour. The platform should cover automation and test management needs while providing greater quality analytics. HP ALM (Quality Control) falls short on these accounts, which calls for migration to JIRA. Have a well-defined and proven migration method and enjoy the added benefits of JIRA.

That is it from our side.

Until next time!

Related Posts

  • Control-M Automation API in a NutshellControl-M Automation API in a Nutshell

    Automation is taking over the world in a big way. Organizations across industry verticals are constantly exploring ways to improve business performance at lower operational cost. The idea is to…

  • An Overview of CA Workload Automation AEAn Overview of CA Workload Automation AE

    CA Workload Automation AE (Autosys Edition) is an industry-leading robust workload automation system, which provides enterprise-wide unparalleled reliability to support business-critical applications. It is designed to support distributed environments and…

  • Jenkins v/s Bamboo: Comparing the Two Most Commonly Used CI/CD ToolsJenkins v/s Bamboo: Comparing the Two Most Commonly Used CI/CD Tools

    Bamboo and Jenkins are two of the most popular continuous integration (CI) tools, with a similar philosophy of agile development. They help transform the otherwise tedious, textbook task of building,…

  • Securing Applications from Vulnerabilities Using NexusSecuring Applications from Vulnerabilities Using Nexus

    Developers need certain libraries/frameworks in their projects most of which can be downloaded from Maven Central. If, however, any file is absent from the central repository, developers have to fetch…

  • Continuous Deployment using Dockerized ApplicationContinuous Deployment using Dockerized Application

    Dockerized Applications Dockerized applications are applications that are packed into a Docker image and stored on a Docker repository. These Docker images are used to provision applications along with the…

  • DevOps is more than DEV + OPSDevOps is more than DEV + OPS

    Initially, when I heard about DevOps around 5 years back, I understood that we were trying to remove barriers between teams, which were created based on phases in traditional development…

Leave a Reply

Your email address will not be published. Required fields are marked *