Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 57 Next »

General Introduction

This page is meant to provide a general overview of how the OLE and OLETS Jira Projects are used in the OLE QA Testing process. Wherever possible, this page will include links to both other pages in this wiki and external resources for more detailed information on a given subject.

Return to Top

What is Jira?

Issue Tracking Software

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 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).

Return to Top

Key Terms

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.

Return to Section
Return to Top

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.

Return to Section
Return to Top

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.

Return to Section
Return to Top

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

Return to Section
Return to Top

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.

Return to Section
Return to Top

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.

Return to Section
Return to Top

Review of Issue Types



The table above provides a brief summary of all the information provided in this section. See the Linking section below for an expanded version of this table with a review of the above issue types and their relationship to Test Cases.

Return to Section
Return to Top

Linking in Jira

Jira is able to link issues both within the same project and across different projects. The link referred to here is essentially a normal Internet hyperlink, with an added custom field, "link type," to explain the logical relationship between the linked issues. Any time a Jira issue ID is entered into a text field or a comment on a Jira issue, a link will automatically be generated.

Generally only two link types are used in the OLE testing process: the "Parent Jira" link and the "Tests/Tested By" link, explained below in more detail.

Parent Jira

The link used between Stories and Test Cases is the "Parent Jira" link. This is a one-way link declaring that the Story is the parent to the Test Case. The link will only be shown on the Test Case, not the Story. One Story may be the parent to many Test Cases, but a Test Case will not have more than one parent.

The Parent Jira link is declared when the OLE Test Case is written, or while it is open for editing. For more information on how to declare a Parent Jira link on an OLE Test Case, please refer to the wiki page "Creating Test Case Content."

Return to Section
Return to Top

Tests/Tested By

The link type used between Tasks (or Bug/Defects) and Test Cases is the "Tests/Tested By" link. This is a two-way link, declaring that the Test Case tests the Task. On the OLE Jira project, the Task will show a "Tested By" link to the Test Case, and on the OLETS Jira project, the Test Case will show a "Tests" link to the Task. This two-way link is automatically generated on both issues when it is created on one, so there is no need to duplicate the link on the Task if it has been declared on the Test Case. Generally, one Test Case will test one Task or Bug/Defect.

The "Tests/Tested By" link is usually declared after a Test Case has been written, and cannot be added while the Test Case is open for editing. For more on the relationship between Tasks and Test Cases, please refer to the wiki page "Creating Test Case Content." For specific instructions on how to create a link of this type, please refer to the "Linking Tasks" section of the "Creating Test Case Content" page.

Return to Section
Return to Top

Review of Jira Link Types



The table above provides a brief summary of all the information provided in this section: a brief review of Jira issue types and their respective projects, as well as their link relationship to Test Cases.

Return to Section
Return to Top

The Testing Process in Jira

Outlined below is a brief overview of the OLE testing process. The outline below is more of a summary than a detailed exploration, and is meant to help give a general picture of the OLE testing workflow, and how it fits into the larger scheme of the OLE development cycle.

Story Development

  • A Story issue is handed off for testing, with the Functional Specification document attached and complete Acceptance Criteria in place.
  • The Story is broken down into Tasks by the development team.
  • Code is written and submitted one Task at a time by the developers.
  • The code for each Task is checked individually by the development team.
  • Completed Tasks are moved to "Testing" status, and the related code is imported into the OLE Test Environment in bi-weekly updates.
  • The testers review the Release Documentation on the Kuali wiki to determine if a Task belonging to one of their Stories is ready for testing.
    • OLE Releases are divided first into Milestones. A Milestone Release is the release of a new numbered version of the OLE software package, and represents the implementation of a large bundle of new functions and features.
      • The Demo Environment and official download link are updated only on Milestone releases.
      • The current Milestone Release is OLE-0.8.0.
    • OLE Milestone Releases are subdivided into Iterations. Iterations are marked with a letter, and are bi-weekly, internal updates to the OLE application for testing purposes. Each Iteration marks the implementation of a large grouping of Tasks and newly resolved Bug/Defect issues.
      • The Test Environment is updated with each Iteration.
      • The current Iteration is OLE 0.8.0-I. (8/20/2012)
  • The testers revisit the OLETS Test Cases relevant to the promoted Tasks or Bug/Defects. The Test Case may need to be revised at this point, especially for Task testing.
    • If the functionality to be tested was not previously available, this is the best time for testers to review the process necessary to accomplish the main function described by the Test Case.
    • The Test Case must have the following information to be ready for testing:
      • A description stating the purpose of the Test Case
      • Steps describing the method for executing the test
    • A Selenium test script is recorded while the test is being executed.
  • Results are gathered from testing, and a determination is made as to whether the Test Case should pass or fail.
    • Pass
      • If the tester is able to successfully execute all testing steps necessary to fulfill the purpose of the Test Case, the test can be considered passed.
    • Fail
      • If the tester is unable to successfully execute all testing steps required by the Test Case, the test can be considered failed.
      • If the tester is able to execute all necessary steps, but the outcome does not satisfy the Acceptance Criteria statement on which the Test Case is based, then the test can be considered failed.
  • If the test passes, it is automatically assigned to the QA Analyst (Jain).
  • If the test fails, it is automatically assigned to the QA Manager (Rich).
    • In case of failure, the Task or Bug/Defect associated with the Test Case will be returned to an "in development" status.

Return to Section
Return to Top

Documenting Your Testing Results

This section covers how to document the results of the testing process in the OLETS Jira project. In some cases, the results you need to document will depend upon which of two testing methods you employ.

"User Testing" is the most common testing method, and refers to the process of testing an issue by hand, linking it to the appropriate OLE issues, and recording a Selenium script.

"Selenium Testing" is generally only used for Bug/Defect issues, and involves selecting a pre-populated OLETS Test Case and executing the pre-recorded Selenium script to determine success or failure.

User Testing

  • User Testing consists of the following steps:
    • Revising the Test Case
      • You will need to revisit the Test case and ensure that the steps, if they exist, adequately match the current functionality of the OLE system.
      • If testing steps do not yet exist, you will need to review the steps necessary to fulfill the purpose statement of the Test Case.
    • Executing the Steps
      • You will need to execute the testing steps by hand. Selenium will need to be running so that it can record your actions.
    • Recording Your Results
      • Once you have determined whether the test should pass or fail, you will need to advance the Test Case through the workflow, and comment with your results and any other feedback you would like to include.

Return to Section
Return to Top

Selenium Testing

  • Selenium Testing consists of the following steps:
    • Executing the Selenium Test Script
      • You will need to open the Test Case and find the Selenium test script in the "Attachments" section. It will be included as an HTML file, with a name like "OLETS-### - Title of Test Case," where ### is the OLETS Test Case ID.
    • Recording Your Results
      • In Selenium testing, your comments will largely focus on whether the script passed or failed. If the script failed, you will need to include additional documentation, such as a screenshot or a copy of the Selenium log.

Return to Section
Return to Top

Determining Success or Failure

User Testing

The main point on which success or failure hinges during user testing is the fulfillment of the Acceptance Criteria statement, written out as a statement of purpose on the Test Case. The AC statement is meant to give the QA Team and testers a clear, well-defined goal to meet in testing.

There may be some cases in which the function is fulfilled, but not in the exact way that was requested by the Functional Specification. The details are a secondary point, but it is sometimes necessary to fail a Test Case based on the finer details of functionality. If, for example, information needs to be displayed, but is not displayed in a way which is clear and useful to the users, a Test Case might fulfill its stated purpose yet fail on finer details.

Failure for such issues of nuance is a difficult thing to decide. The QA Team encourages you to think in terms of the big picture: does the software accomplish its task in a reasonably useful way? If so, the best course of action may be to pass the Test Case, but share your insight in a comment so that we can address the issue in a later release of the software.

Return to Section
Return to Top

Selenium Testing

In Selenium testing, success or failure depends upon the outcome of the test script. If the Selenium script finishes and reports 0 failures, the test was successful, and the Test Case should be passed. If the Selenium script reports a failure, the test has failed, and the Test Case should be failed.

There may be times at which a non-essential function causes a test script to fail. There may also be cases in which a test script fails simply because the OLE system was referring to a function in a slightly different way than previously. The QA Team will review all failures, and if a failure in Selenium testing was determined to be the result of a non-essential function or a faulty test script, the script will be revised and you will be asked to re-test the issue.

There are some commands that will suggest that a true failure has occurred during test script execution. If a command that begins with "assert" or "verify" fails, it will be highlighted in dark red in the command window, and an error message will be populated in the log window in a bold red font.

It is also worth noting that warnings may appear frequently in the Selenium log file, especially if you happen to be testing a function that involves pop-up windows or items opening in new tabs. These warnings will appear in red, but they will not be bolded, and they will be prefixed with "warn" rather than "error" in the log window. These are just informational messages, and do not signify an impending failure.

Return to Section
Return to Top

Recording Your Results

This section details a number of methods for providing feedback on the results of your test. The first and most important thing is to advance the Test Case through its workflow by selecting "Test Passed" or "Test Failed" from the menu bar at the top of the screen in OLETS. This will assign the Test Case to the QA Team, notifying us that you've finished testing the issue.

The second most important feedback method to emphasize is use of comments in OLETS. While the QA Team can determine if an issue has been passed or failed by reviewing its workflow, putting this information in a comment will allow you to make your reasons explicit, especially in the case of failure. We always need to know why a Test Case has failed, and in the case of Bug/Defect testing, we may also need to know why it passed.

Return to Section
Return to Top

Advance the Test Case in the Workflow

This should always be the first step you take in providing feedback on the outcome of your Test Case. You will click either "Test Passed" or "Test Failed" in the menu bar at the top of the Test Case (pictured below).

A dialog box will open, allowing you to enter more specific information. You'll need to select "Pass" or "Fail" from the "Test Results" selection on the dialog box (pictured below), enter the most recent date on which you ran the test, and then enter your feedback in the "Comment" section.

Note that there is an "Attachment" option. If you want to add an attachment, you can do so through this dialog box. The different kinds of attachments most used in OLE testing will be discussed in detail a bit later on in this document, with links to more specific instructions on how to create and attach them.

Return to Section
Return to Top

Document Your Findings with a Comment

There are two things to include when writing up a comment to document your test results. The first, and most important, is to be explicit about whether the test passed or failed. The reason for this is that once your comment has been attached, it will appear in a long list of comments on the issue, and will not be attached in any particular way to the results you selected from the Test Results Dialog box.

If you need to add further information or rectify a mistake you made in the comment, you can do so by scrolling down to your comment at the bottom of the screen, then clicking the pencil icon that appears when you hover your mouse over the comment. If you need to add an additional comment at any time – to reply to a discussion that develops on a particular Test Case, for example – you can use the "Comment" button at the bottom of the screen.

Comments are where you will want to document any feedback you have to give on a particular Test Case. If, for example, you feel that a Test Case should pass because it does accomplish exactly what the Acceptance Criteria specified, but you feel that it does not do so in a particularly satisfactory way, we really want to hear your insights on the matter. Kuali software is meant to be designed by the users, and we want to craft the application so that it can be used efficiently and effectively.

Return to Section
Return to Top

Attach a Screenshot of OLE

It may sometimes be the case that you will want to show a particular error message that you have received, or that you need to show where some element is missing from the layout of a particular screen. In this case, you will want to include a screenshot of the OLE application along with your test results.

Detailed instructions are available for taking screenshots and attaching files to Jira issues.

Return to Section
Return to Top

Attach a Screenshot of Selenium

Selenium screenshots are the easiest way of providing feedback during Selenium testing. If a Selenium script fails and only one error is reported, a screenshot of the Selenium window showing both the failed command and the error message it generates will help the QA Team to determine the cause of the failure.

Detailed instructions are available for taking screenshots, capturing the right information in a Selenium screenshot, and attaching files to Jira issues.

Return to Section
Return to Top

Attach a Selenium Log File

If you notice multiple failed commands during the course of Selenium testing, the most helpful feedback option will be a copy of the Selenium log. You can take multiple screenshots of the failures, but adding the log file is the more efficient choice.

Detailed instructions are available for copying the Selenium log and attaching files to Jira issues.

Return to Section
Return to Top

How to Contact the QA Team

Rich Slabach, QA Manager

Jain Waldrip, QA Analyst

Return to Top

  • No labels