Workflows in Jira – How to create workflows in Jira Step by Step guide

What is Jira?

     Jira is a software application developed by the Australian software company Atlassian that allows teams to track issues,manage projects, and automate workflows. 

What is the JIRA workflow?

         In JIRA, workflow is used to track the lifecycle of an Issue. Workflow is a record of statuses and transitions of an issue during its lifecycle. A status represents the stage of an issue at a particular point. An issue can be in only one status at a given point of time like Opened, To Do, Done, Closed, Assigned, etc.

A transition is a link between two statuses when an issue moves from one status to another. For an issue to move between two statuses, a transition must exist. In a simple way, a transition is some kind of work done on the issue, while status is the impact of work on that issue.

JIRA workflow has the following stages to track as soon as an issue is created −

Open issue- After creation, the issue is open and can be assigned to the assignee to start working on it.

In Progress Issue − The assignee has actively started to work on the issue.

Resolved Issue − All sub-tasks and works of that Issue are completed. Now, the issue is waiting to be verified by the reporter. If verification is successful, it will be closed or re-opened, if any further changes are required.

Reopened Issue − This issue was resolved previously, but the resolution was either incorrect or missed a few things or some modifications are required. From the Reopened stage, issues are marked either as assigned or resolved.

Close Issue- The issue is considered as finished, resolution is correct as of now. Closed issues can be re-opened later based on the requirement

JIRA Workflow can be referred to as a Defect Lifecycle. It follows the same concepts; the only difference is that it is generic for all issues rather than limited to Defects only.

The following diagram shows a standard workflow −

How to Create a New Workflow in Jira

  1. Open Jira.
    Jira Workflow Left Pane

     
  2. Click Issues, and then click Workflows.
    Jira Workflow Workflow Button
  3. To create a new workflow, click the Add workflow button.
  1. Type in a name and add a workflow description. The new workflow opens and is ready to edit.

5. Repeat step 4 to add as many states as you would like to add as per your company process.

6. After adding all the states, draw transitions between states.

How to Configure a New or Existing Workflow

You can add states and transitions to new or existing workflows. Keep in mind that some restrictions are placed on the editing of active workflows. You edit Jira workflows in the Workflow Designer, using either the Diagram or Text view.

Use the diagram format for an overview of your workflow as you build it. The text version expedites adding labels and descriptions to steps and transitions. For the purposes of this tutorial, we’ll work in the Diagram view. For more information on planning and creating a new workflow, see The Essential Guide to Jira Workflow Best Practices.

  1. Click Add status button to add your first status. Name your new status. Important: You can reuse an existing status found in active workflows, but any changes you make to it will affect other workflows. Click Add.
    INSERT WORKFLOWS NEWFLOW IMAGE
  2. Repeat the previous step to add the next step in the workflow. You can create all the steps at once and then add the transitions, or you can add transitions as you create each step. You can click and drag the step boxes to arrange them in a pattern that shows the logic of the workflow. Keep in mind that you should publish the finished diagram to your team so they can understand the workflow.
  3. To add a transition, click Add transition.
  4. Specify where you want the transition to go. Name it and click Add.
  5. When using a workflow, you may want to return a work item to a previous status. To do this, you must add an extra transition between steps. After you add all the statuses and transitions forward and back (where appropriate), your workflow should look something like this:
    INSERT JIRA WORKFLOW IMAGE

    Your new workflow appears on the Workflows page at the bottom in the Inactive list.

Delete a Step

You can delete a step only if it has no transitions.

Jira Workflow Delete Step
  • Click the Delete Step link.

Add a Transition Screen

If you need user input during a transition, you can display a screen on transition. Jira calls this a View screen.

  1. In your workflow, click the Edit button.
  2. In the Diagram, select the transition you want to change. Click the Edit button.
  3. Select a screen from the Screen box. Default Screen and Resolve Issue Screens show the complete form for the issue with all available fields. The Workflow Screen allows you to assign the work item to a user and add a comment. Click the Save button.
  4. Click Update.

Add a Trigger

  1. In your workflow, select the transition where you want to add a trigger. Click Edit.
  2. In the Workflow Editor, select the transition again. In the properties panel, click Triggers.
  3. Click Add Trigger.

    Jira Workflow Triggers
  4. Select the trigger type, and then click Next.

Add Conditions

  1. In your workflow, select the transition to which you want to add a condition.

    Jira Workflow Select Transition
  2. In the properties panel, click Conditions.

    Jira Workflow Properties Menu
  3. Click Add Condition.

    Jira Workflow Add Condition
  4. Select the condition you want from the list.

    Jira Workflow Conditions
  5. Click Add.

Add a Validator

  1. In your workflow, select the transition to which you want to add a validator.
  2. In the properties panel, click Validators.
  3. Click Add validator.
  4. Select the validator and click Add.

    Jira Workflow Validators

Customize and Apply a Post Function

  1. In your workflow, select the transition you want to edit.
  2. Click Post Functions. Click Add Post Function.

    Jira Workflow Add Post Function
  3. Select the function you want. Click Add.
  4. On the Add Parameters page, specify any new settings. Click Add.

  5. Click Add.

How to Activate the New Workflow

  1. Create a new project or open an existing project.
  2. Click Project Settings. Click Workflows.
  3. Click Add Workflow.

  4. Click Add Existing. Select the new workflow. Click Next.
  5. Click the types of issues you want to associate with the workflow.

  6. Click the Finish button.
  7. Click the Publish button.

    Jira Workflow Publish Workflow
  8. On the Publish Workflows page, you’ll be asked to associate the current status of each item with the new status. It’s OK if you have more new statuses than are available to map.
  9. When you’re done making the matches, click Associate. The issues are migrated to the new workflows. Click Acknowledge.
  10. Click Board Settings.

  11. Arrange the unmapped statuses. Create and rename new columns as needed. Learn more about Jira Kanban boards.

Importance of JIRA workflow?

Jira workflow is a critical aspect of effectively managing projects and tasks in an organization. It provides a systematic and structured approach to track and control the progress of work items from initiation to completion. Here are some key reasons highlighting the importance of Jira workflow:

  1. Process standardization: Jira workflows enable organizations to define and enforce standardized processes for handling different types of work items. By creating consistent steps and transitions, teams can ensure that tasks are executed in a consistent and predictable manner, leading to improved efficiency and reduced errors.
  2. Transparency and visibility: Jira workflows provide clear visibility into the status of work items at any given time. Team members can easily understand where a task stands in the workflow, who is responsible for its completion, and what steps are required next. This transparency fosters collaboration, enables better communication, and helps stakeholders make informed decisions.
  3. Accountability and ownership: With Jira workflows, it becomes clear who is responsible for each step in the process. Assigning specific statuses and actions to individuals or teams promotes accountability and ownership of tasks. This accountability ensures that work progresses smoothly and bottlenecks or delays can be addressed promptly.
  4. Efficient collaboration: Jira workflows facilitate collaboration between different teams and individuals involved in a project. Work items can be easily assigned, reassigned, or transitioned between different team members, ensuring smooth handoffs and preventing tasks from falling through the cracks. Collaboration features like comments, attachments, and notifications further enhance communication and coordination.
  5. Customizability and adaptability: Jira workflows are highly customizable to suit the unique needs of different projects or organizations. Workflow configurations can be tailored to reflect specific processes, approvals, and business rules. This flexibility allows teams to adapt and evolve their workflows as requirements change over time.
  6. Metrics and analytics: Jira workflows provide valuable data and metrics that can be used for performance analysis, process improvement, and decision-making. By tracking key performance indicators (KPIs) like cycle time, lead time, or bottlenecks, teams can identify areas for optimization, streamline processes, and improve overall efficiency.
  7. Integration with other tools: Jira integrates with a wide range of other software tools, such as development repositories, testing tools, and deployment systems. This integration allows for seamless data flow between different tools and provides a comprehensive view of the entire software development lifecycle. Work items can be linked to related code changes, test cases, and documentation, enabling end-to-end traceability.

Overall, Jira workflows play a crucial role in enhancing productivity, collaboration, and project management within an organization. They bring structure, clarity, and control to the work process, leading to improved efficiency, better team coordination, and successful project outcomes.

Posted by

Akshay Baratagi

Test Engineer

Software Development Life Cycle (SDLC) – Testing

Software Development Life Cycle – SDLC

What is software development life cycle?

SDLC or the Software Development Life Cycle is a process that produces software with the highest quality and lowest cost in the shortest time possible. SDLC provides a well-structured flow of phases that help an organization to quickly produce high-quality software which is well-tested and ready for production use.

Stage of Software Development Life Cycle (SDLC)

  1. Requirement analysis 
  2. Planning 
  3. Architectural design
  4.  Software development
  5. Testing
  6. Software deployment

Purpose of SDLC model

  • Lead to good software 
  • Reduce risk
  • Enable visibility and measurement
  • Enable teaming
  1. Requirement analysis
    In software engineering,requirements analysis focuses on the tasks that determine the needs for conditions to meet the new or altered product or project,taking account of the possibly conflicting requirements of the various stakeholders,analyzing, documenting,validating and managing software or system requirements.

Requirement analysis is critical to the success or failure of a system or software project.The requirements should be documented,actionable,measurable,testable,traceable,related to identified business needs or opportunities,and defined to a level of detail sufficient for system design.

2. Planning
Software manager is responsible for planning and scheduling project development. They manage the work to ensure that it is completed to the required standard. They monitor the progress to check that the event is on time and within budget. The project planning must incorporate the major issues like size and cost estimation scheduling, project monitoring, personnel selection evaluation and risk management. To plan a successful software project, we must understand.

  1. Scope of work to be completed
    2. Risk analysis
    3. The resources mandatory
    4. The project to be accomplished
    5. Record of being followed

Software project planning starts before technical work start.The various steps of planning activities are

3. Architectural Designing

 The design phase starts after requirement analysis and planning of the product. The main purpose of this phase is to design a suitable structure based on the SRS (Software requirement specification) the software architecture is derived from the SRS document. The architecture engineers design the software based on the SRS documentation.

4) Software development

 This phase is the actual implementation phase. After the completion of designing then developers write the code as per the requirements. Developers must follow the coding guidelines of their organization. Different high level languages are there for coding like java, python, c, c++ etc. Selection of language depends on the type of the software.

5)Testing

 After successful completion of coding it is checked whether the software is working as per the requirements or not.It make sure that the product is working as per the requirements.The testers expect to find any bugs are present in software before delivery to the client.This phase goes through different levels of functional and non-functional testing. 

6) Maintenance

After the final handover of the software, some up-gradation or changes are required from time to time to make it work flawlessly. If users face any issues with the software, it is resolved by the maintenance team.

How the SDLC Works

SDLC works by lowering the cost of software development while simultaneously improving quality and shortening production time. SDLC achieves these apparently divergent goals by following a plan that removes the typical pitfalls of software development projects. That plan starts by evaluating existing systems for deficiencies.

Next, it defines the requirements of the new system. It then creates the software through the stages of analysis, planning, design, development, testing, and deployment. By anticipating costly mistakes like failing to ask the end-user or client for feedback, SLDC can eliminate redundant rework and after-the-fact fixes.

It’s also important to know that there is a strong focus on the testing phase. As the SDLC is a repetitive methodology, you have to ensure code quality at every cycle. Many organizations tend to spend little effort on testing while a stronger focus on testing can save them a lot of rework, time, and money. Be smart and write the right types of tests.

How can DevSecOps be integrated into SDLC?

By following some best practices, DevSecOps can be integrated into SDLC in various ways.

  • Planning and Requirement Analysis: Here, security requirements and appropriate security choices that can mitigate potential threats and vulnerabilities are identified in this stage. What security design principles and best practices to be used are also thought about here.
  • Architectural Design: The development team uses the security design principle and architecture to consider potential risks. This stage involves threat modeling, access control, encryption mechanism, and architecture risk analysis.
  • Software Development and Testing: The code reviews are done to ensure software follows code standards and security controls are implemented. Security vulnerability tests like penetration testing are also done to identify potential issues.
  • Deployment: Automated DevSecOps tools are used to improve application security. To ensure the software is deployed securely, firewalls, access controls, and security settings are configured.
  • Maintenance: Security continues after deployment. The team must continuously monitor the software for security vulnerabilities. The team would also update the software with security patches and updates as necessary.

Posted by

Akshay Baratagi

Test Engineer

MOBILE APPLICATION TESTING

Types of Mobile App Testing:

Usability testing : To make sure that the mobile app is easy to use and provides a satisfactory user experience to the customers.

Compatibility testing: Testing of the application in different mobiles devices, browsers, screen sizes and OS versions according to the requirements.

Interface testing: Testing of menu options, buttons, bookmarks, history, settings, and navigation flow of the application.

Services testing: Testing the services of the application online and offline.

Low level resource testing: Testing of memory usage, auto deletion of temporary files, local database growing issues known as low level resource testing.

Performance testing : Testing the performance of the application by changing the connection from 2G, 3G to WIFI, sharing the documents, battery consumption, etc.

Operational testing: Testing of backups and recovery plan if battery goes down, or data loss while upgrading the application from store.

Installation tests : Validation of the application by installing /uninstalling it on the devices.

Security Testing : Testing an application to validate if the information system protects data or not.

Things to consider while testing a mobile application

The basic roadmap to testing involves testing in the following order:
• Does your application install properly on all devices?
• Can your application be uninstalled without any error?

• How does your application behave when there is no network or poor network?

• Is your applications logo, name, splash screen, etc. properly displayed?

• Does your application start and restart quickly?

• Is your application affecting the performance of the device or other applications?

• Can your application be exited from exit modes such as End key or Exit options etc.?

• Can the user receive a call / SMS notification when the application is running?

• Does the application hang or crash after a phone call / SMS notification?

• Does your application notify about low battery?

• Is your graphical user interface (GUI) including color scheme, theme, menu, font color font style etc. as they should be on all devices/browsers?

• Is your application posing security risks?

• What is the data consumption? If the application consumes too much data, it may drain the data plan of the customer causing him/her to make more payments to their Service provider.

 

Posted by              

Vinayak Mudiyappanavar     

Test Engineer           

Jira Bug tracking tool tutorial : Atlassian Documentation

Jira Bug tracking tool tutorial : Atlassian Documentation

Before jumping to this tutorial : Go through our another article on Writing Efficient Test Cases

Jira : The basic use of jira tool is to track the issue and to track bugs related to software and mobile application. and  user for Project management. Jira is complete solution for project management provided by atlassianConfluence is the one place for all the team work, Create , Organize and discuss work with your team.

Jira work flow: Configuring Workflow

Jira provides a default workflow which looks like below

jira-defaultworkflow
jira-defaultworkflow

  1. JIRAOpen.
  2. Assign.
  3. Resolved.
  4. Reopen.
  5. Closed.
  1. Open: Test Engineer test the application according to the requirement, while testing if test engineer find any issues, test engineer can raise the issue and change the status as open.
  2. Assign: Test Engineer assign a issue to the developer present in the company to fix the issue and change the status as Assign.
  3. Resolved: Developer can check the issue and fix the issue occurred in the application or software and change the status as resolved.
  4. Reopen: Test Engineer retest the application to check whether the issue is really fixed by developer or not and if issue is not fixed test engineer can change the status as reopen.
  5. Closed: Test Engineer retest the software or application to check the issue was fixed by developer or not and if issue was fixed change the status as closed.

How to report bug in Jira tool

  1. Project: In project drop down select a project which we have to test.
  2. Issue type:

4

  • Task
  • Bug
  • Epic
  • Story
  • Task: Task that needs to be done.
  • Bug: A problem which impairs or prevents the functions of the product.
  • Epic: An Epic captures a large body of work. It is essentially a larger user story that can be broken down into a number of smaller stories.
  • Story: Story is user requirement.

5

  1. Summary: In summary field enter the brief description about the issue or bug.
  2. Reporter: Reporter is a test engineer or a person who is analyzing, finding and reporting a bug or issue.
  3. Components: Components are sub-sections of a project. They are used to group issues within a project into smaller parts. Application contains several components like for example take gmail application,which contain login component and compose component. if user mention particular component where the issue is occurred,its easy to find issue.
  4. Description: Description contains steps to reproduce an issue or bug. And steps of scenario.

 Example: steps to validate login button.

  1. Enter Username.
  2. Enter Password.
  3. Click on Login button
  4. Fix/Versions: 
  1. Priority levels in Jira:

7

  • Highest: This problem will block progress.
  • High: Serious problem that could block progress.
  • Medium: Has the potential to affect progress.
  • Low: Minor problem or easily worked around.
  • Lowest: Trivial problem with little or no impact on progress.

8

  1. Labels:
  2. Attachments:  An attachment is any file that is included with your page. Examples of attachments are screenshots, photographs, other images, Word documents, presentations, PDF documents.
  3. Linked Issues:
  4. Issue: Select issue type, issue is either functional or integration or UI issue (User Interface).
  5. Assignee: Assignee is a developer or person who is fixing a issue.
  6. Epic Link: 
  7. Sprint: Time taken to complete a project is called as sprint.

Posted By

Vinayak Mudiyappanavar,

Trainee Test Engineer

Writing Efficient Test Case: A Test Case Template Example

A Test Case Template Example

Test case template: A template is a structural document and a test case template contains all information required for a test case. Every test engineer will write test cases in test case template, there is nothing called standard test case template. It may vary from company to company and project to project.

It mainly contains the following XLS sheets

  1. HLS Revision History – For High Level Scenario
    HLS- Test Scenario Revision
     HLS- Test Scenario Revision
  2. HLS Scenarios
    HLS-High Level Test Scenario
      HLS-High Level Test Scenario
  3. HLS Review Comments
    HLS Review_Comments_Test_Case
     HLS Review_Comments_Test_Case
  4. LLS
    HLS-High Level Test Scenario_test_case
    HLS-High Level Test Scenario_test_case

 

Test case parameters

Header

Test case name:It is a unique name written by test engineer.For every individual test engineer individual  test case name should be written in the below mentioned format.

ProjectName_ModuleName_Scenario

Release name: It is mandatory to mention release name because it helps to identify in which build the issue has been raised.

Requirement number: When BA(Business Analyst) write the requirement number for every individual requirement and  unique number will be given to each requirement, so test engineer should copy the requirement number and should write the test case template.

Module name: When BA(Business Analyst) write the requirement, he will also write list of all the module names so test engineer should copy the module name from the requirement and should write the test cases.

Precondition: It is the settings or actions that should be done before executing test cases or step no 1.

Test dataIt is a data created by test engineer before executing test case or step no 1.

       Example for test data : It is required to create an user account before testing file upload feature.

Test data can be created manually or we can also create test data by executing automation scripts.

Post condition:It is an expected result that we get from the application or when we give the input to the application what ever output we get from the application that is called as post condition.

We mainly use post data when one of the test case is depending on the output of previous test case.

Severity:Test engineer should give severity for each and every individual test cases based on complexity of the feature and importance of feature and importance of feature to the customer business, based on severity test engineer will decide which test cases should be executed first and which test cases executed next.

3 types of severity

1)  Critical

2)  Major

3)  Minor

Test case type: Test engineer should mention which type of testing he is writing in the test case type.

Functional testing

Integration testing

System testing

Smoke testing

Brief description:This field describe the complete information about  the test case

Test execution hours:Test engineer should mention how much time he has taken to write and execute the test case ,the value for this field should be enter once of after test execution.

Body

Step no:This field is mainly use to identify each and every step uniquely.

Action or description:It consists of all the navigation steps.

Input:This field consist of the values entered by test engineer while testing the application (URL,Username,password and all  +ve  and  -ve value you entered for every field)

Expected Result:Test engineer will write Expected result by looking in to the requirement the value for this field is entered before test execution.

Actual Result:Test engineer will write actual result while executing the test cases execution. Test engineer will get the actual result from the application.

Status:Test engineer will enter the status of test case as pass or fail after test execution. if expected result is not matching with actual result than test case status  is fail else it is pass.

Comments:If the test case is fail then test engineer should enter the reason in the comments stating why the test case is failed.

Footer

Author:Test engineer one who write the test case is called as author.

Reviewer or reviewed by:Test engineer one who reviews the test case which is written by other test engineer is called as reviewer.

Approved by:Test engineer one who approves the test case is called as approved by or approver.

Approval date:The date on which test case is approved is called date.

Download Test Case Template XLS file

Important : Learn  to use JIRA bug tracking tool

Posted By

Vinayak Mudiyappanavar,

Trainee Test Engineer

                                                                                                                                                                       

What are test cases, test scenario and Advantages of writing test cases

What is test case:

Test case is a document which gives all possible scenarios for one particular requirement. Ideally a test case document contains set of test data like preconditions,post conditions, actual results and expected results.

Test Scenario : Is a any functionality or a test condition or a test possibility.

Software Testing Life cycle:

Software Testing Life Cycle

Why to write test case: 

Test Coverage : Test coverage is a measure of testing and to have better test coverage it is required to write all the tested cases for identified scenario. Ideally the following process will be in action.

  1. Customer will give requirement to developer.
  2. Test engineer has to spend enough time to understand the requirement 
  3. Test engineer has to identify all possible scenarios
  4. Test engineer has to write test cases for all identified scenarios.

What are benefits of writing test cases:

  1. Better Consistency :  When test cases are written for a test execution, the test engineer work will be organised better and simplified. Let us consider a scenario as an example.

When a release1.0 is being tested using existing test cases, the same test cases can be quickly executed for the next release 1.0.1, having test cases helps to identify issues which impacting the old release, this way we can achieve better consistency in test execution.

2. Avoid training : To avoid training every new test engineer on the product or requirement. Consider the following situation.

  • Test Engineer write test cases.
  • Test engineer quits the job
  • New test engineer joins

It takes lot of effort to explain every module and it takes lot of time for new tester to understand the complete requirement.

  • But if we write test cases in the beginning, then the newly joined test engineer can test application by looking in to test cases on his own.
  • Here its not necessary to train him on requirement because, if he execute test cases for couple of release on test cycles he can understand the product.

3. No dependency : To depend on process rather than person. Every company will set their own process

EX: when we get the requirement test engineer should do follow the process.

Understand requirement

identify all scenarios and document.

Prepare a test cases for each scenarios and document.

This process of documenting each and everything will remove the dependency on a person

4. Writing test cases will keep track of all the steps for a particular scenario, this is very important because complicated steps to test a scenario might be difficult to remember always.

    Let us consider an example :

          Assume that an UI distortion issue will be produced by following steps in a particular scenario

Step1 : Login into Chrome browser ( Hard to remember the platform some times, issue is only in Chrome)

Step 2: Navigate to Home page 

Step 3: Select profile from menu in the header

Step 4: Edit First name and Last Name details by giving big string

Step 5: Go back to Home page

Step 6: Navigate to Events page ( only navigating to events page will reproduce the issue)

Step 7: Go back to Home page, the header will shift 100px down leaving black pack at the top

Assuming these steps were not recorded in test cases, when build release 1.0 is given, it is hard to reproduce the same issue again quickly. 

If test cases have written, test engineer can easily follow the steps to reproduce and test the issue.

5. Test cases will ensure that complete functional and non functional testing will be done and hence test cases will give complete list of all scenarios to meet the software product quality expectations.

6. The main objective of test case is to exercise every flow in application.

7. To ensure that it satisfies the BRS that is Business Requirement Specification and SRS that is System Requirement Specifications.

8. Test cases will ensure that every functionality working as expected in every possible scenario.

9. Test cases will ensure that all the requirements have been met as per the customer requirement document.

Check an example for Test Case Template

IMPORTANT : LEARN  TO USE JIRA BUG TRACKING 

Posted By

Vinayak Mudiyappanavar,

Trainee Test Engineer