What is Jira?
Jira is a web-based Issue-Tracking Software application. Issue Tracking Software (ITS) is primarily used in software development to track the progress of issues related to the software's function. The issues tracked could be tasks to complete in order to establish a given function, requests to repair bugs in existing functions, requests from users to add new features, and a number of other development related tasks.
Jira is highly configurable, and can be customized to track a number of issue types in each installation. All of the above issue types are used in Kuali's Jira installation, as well as a number of others, largely tailored to the type of development process used by a given software project.
Jira is Not An Acronym
We've wondered, and been asked a few times, what Jira is actually short for, since it's often represented in all capitals like an acronym. According to the official Jira FAQ, Jira was actually the working title of the software, a shortened form of "Gojira," the original pronunciation of "Godzilla." The design team are apparently fans of the original series of monster movies, and decided to give the name their monster bug-tracking software.
Jira Projects
In a single installation, Jira can host a number of projects. Each project roughly represents a single software development effort, with a myriad of issues being tracked independently, divided by type. Each Kuali application has its own Jira project, and some applications have multiple Jira projects. Issues can be interrelated across Jira projects, which is helpful for a community like Kuali, where our software often depends on other Kuali components, like Rice (for document routing and workflow control) or Kuali Financial System (for purchasing and invoicing functionality).
OLE (Jira Project)
The OLE Jira project is the main project for tracking the tasks we've marked out that define how the OLE application should function. The core team uses the OLE project to track functional specifications, and the development team uses the project to track coding progress.
When a task, called an "issue" in general Jira terms, is ready for testing by functional users, it enters "Testing" status in OLE, and is linked to one or more issues in the OLE Testing Scenarios (OLETS) projects. Because there is a difference in workflow between development and testing, we track the progress of testing issues separately.
OLETS (Jira Project)
The OLE Test Scenarios (OLETS) Jira project is used for tracking issues from the main Jira project which have been designated as ready for testing. Software testing is tracked both for progress and posterity: we run reports on the completeness of overall software testing, and we keep testing materials in the OLETS project so that we can access them again later.
Common Jira Issue Types
This section provides a detailed introduction of the four most common types of Jira issues involved in QA Testing: the Story, the Task, the Bug/Defect, and the Test Case.
Story
The Story is the OLE Jira issue type that serves as the master task for a given piece of functionality. Th Kuali design philosophy means that any major function requested in our software, like the ability to create a purchase order, starts out as a story that a user has told us; for example, "I work in acquisitions, and I need the software to enable me to place an order with a vendor." The sum of the Story issues in the OLE Jira project describe the full functionality that we want to offer with OLE.
Task
The Task is an OLE Jira issue type that serves as a "to do" item in developing a piece of functionality. The development team reviews the Stories and the functional specifications attached to them, and then determines what Tasks need to be accomplished in order to establish the requested functionality. Breaking up Stories into Tasks allows for faster and more incremental development
Bug/Defect
Like the Task, the Bug/Defect issue type also serves as a "to do" for developers. In this case, the "to do" is to notify programmers that an already-established, previously tested piece of functionality is no longer working.
Test Case
The Test Case is the basic OLETS issue type. Test Cases tend to represent one item from the Acceptance Criteria of a Functional Specification document. Alternately, a Test Case can represent one Bug/Defect item which is ready for testing.
At the time of testing, a Test Case should include a descriptive statement of what is to be tested (purpose statement), as well as a set of general instructions (steps) for how the test should run. By the time the Test Case is ready for review by the QA team, it should also include a Selenium script recording all the steps undertaken during testing of the issue.
Test Cases will relate to the Story containing the relevant functional specifications, and to either a Task or a Bug/Defect establishing the functionality to be tested.
Review of Issue Types
The table above provides a brief summary of all the information provided in this section. See the article on Linking in Jira below for an expanded version of this table with a review of the above issue types and their relationship to Test Cases.