28,14 €
Learn best practices for testing with Jira and model industry workflows that can be used during the software development lifecycle
Key Features
Book Description
Hands-On Test Management with Jira begins by introducing you to the basic concepts of Jira and takes you through real-world software testing processes followed by various organizations. As you progress through the chapters, the book explores and compares the three most popular Jira plugins—Zephyr, Test Management, and synapseRT.
With this book, you'll gain a practical understanding of test management processes using Jira. You'll learn how to create and manage projects, create Jira tickets to manage customer requirements, and track Jira tickets. You'll also understand how to develop test plans, test cases, and test suites, and create defects and requirement traceability matrices, as well as generating reports in Jira.
Toward the end, you'll understand how Jira can help the SQA teams to use the DevOps pipeline for automating execution and managing test cases. You'll get to grips with configuring Jira with Jenkins to execute automated test cases in Selenium.
By the end of this book, you'll have gained a clear understanding of how to model and implement test management processes using Jira.
What you will learn
Who this book is for
If you're a quality assurance professional, software project manager, or test manager interested in learning test management best practices in your team or organization, this book is for you. Prior knowledge of test management and Jenkins will be beneficial in understanding the concepts covered in this book.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 235
Veröffentlichungsjahr: 2019
Copyright © 2019 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Kunal ChaudhariAcquisition Editor:Denim PintoContent Development Editor:Ruvika RaoTechnical Editor:Sabaah NavlekarCopy Editor: Safis EditingProject Coordinator:Vaidehi SawantProofreader: Safis EditingIndexer: Manju ArasanGraphics:Alishon MendonsaProduction Coordinator:Tom Scaria
First published: February 2019
Production reference: 1150219
Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.
ISBN 978-1-78995-452-4
www.packtpub.com
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.packt.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Afsana Atar is an accomplished test engineer with a decade’s experience in software testing. She extends her thought leadership to teams in various domains, from digital advertising, education, and healthcare, to the financial sector, insurance, and trading. Previously, she worked with Google, IBM, the Principal Financial Group, and the Children's Hospital of Philadelphia, and is presently working for Susquehanna International Group. She is a Certified Scrum Master, an Agile Scrum practitioner, and is also part of the Scrum Alliance community. She has managed and worked on projects worth over $1M as a QA engineer to a QA manager. She believes in sharing her experiences with the testing community to help foster learning and innovation.
Varun Pillai is an accomplished technical manager, a seasoned software engineer, and a data scientist with over 10 years' experience in managing multicultural project teams making end-to-end deliveries in SDLC and the Agile-Scrum process for advertising, banking, and insurance companies. He has worked with various MNCs, such as HSBC and the Principal Financial Group. He is currently working with the advertising unit at AlticeUSA.
He is an avid technologist and is always looking to experiment with the next big technology stack for data science. In addition to his work, he also contributes to open source projects and offers consultancy services to start-ups in relation to their technology stacks and business processes.
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Title Page
Copyright and Credits
Hands-On Test Management with Jira
Dedication
About Packt
Why subscribe?
Packt.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the color images
Conventions used
Get in touch
Reviews
Section 1: Introduction to Software Quality Assurance
An Overview of Software Quality Assurance
What is quality?
Why should you care about quality?
Who is responsible for quality?
How do we ensure quality?
Software testing thought process
Quality Management Systems
ISO 9000 series
CMMI
Maturity levels
Software Development Life Cycle versus Software Testing Life Cycle
SDLC
STLC
Types of testing
Preparing test data and managing test artifacts
Managing test artifacts
Summary
Section 2: Jira Environment - An Overview
Getting Started with Jira
What is Jira?
Organizing projects with Jira
Agile project management using Jira
What is Scrum?
Understanding Scrum in detail
Scrum meetings
What is Kanban?
Project initiation and management
How to initiate projects in Jira
Role-based permissions in Jira
Scrum using Jira
Kanban using Jira
Exploring test management plugins for Jira
synapseRT
Zephyr
Test Management
Summary
Understanding Components of Testing with Jira
Requirements
What are requirements?
Issue types
Test suites
What is a test suite?
The test suite in synapseRT
The test suite in Zephyr
The test suite in Test Management
Advantages of test suites
Test plans
What is a test plan?
The test plan in synapseRT
The test plan in Zephyr
The test plan in Test Management
Traceability
What is a traceability matrix?
Types of traceability matrices
Benefits of the traceability matrix
Traceability in synapseRT
Traceability in Zephyr
Traceability in Test Management
Reports
Types of reports
Summary
Section 3: Test Management - Manage and Plan
Test Management Approach
Execution strategy for structured testing with TMap
Ad hoc test runs
synapseRT
Zephyr
Test Management
Execution in test cycles for selected releases
synapseRT
Zephyr
Test management
Best practices for test management
Summary
Test Planning
Creating and organizing a test plan using Jira plugins
synapseRT
Zephyr
The Test Management tool
Defining and implementing the test strategy
Establishing relations between requirements and the test plan
synapseRT
Zephyr
The Test Management tool
Summary
Section 4: Test Management - Design and Execute
Test Design Phase
Creating test cases
Prioritizing test cases
Test case status
Managing test artifacts and their formats
synapseRT
Zephyr
Test Management
Reusing test cases across different projects
synapseRT
Zephyr
Test Management
Organizing test cases in main and subtest suites
synapseRT
Zephyr
Test Management
Summary
Test Execution Phase
Defining test cycles
Adding test cases to the test cycle from the same project
Initializing test cycles
synapseRT
Zephyr
Test Management
Test execution status
Organizing test cycles
Completing test cycles
Adding test cases to the test cycle from a different project
synapseRT
Zephyr
Test Management
Summary
Defect Management Phase
Understanding the importance of logging defects
Creating new defects
How to create defects using Jira plugins
Designing and managing defect workflows in Jira
synapseRT
Linking existing defects to test cases
Changing a test case status with regard to defects
synapseRT
Zephyr
Test Management
Summary
Section 5: Test Management - Monitor and Control
Requirement Management
Creating the Jira issue type as requirement
Creating requirements
Prioritizing requirements
Requirement status
Managing requirement artifacts
Establishing relations between requirements and test cases
synapseRT
Zephyr
Test Management
Summary
Test Execution Status Reporting
Test plan execution reports
synapseRT
Zephyr
Test Management
Ad hoc test run reports
synapseRT
Zephyr
Test Management
Requirement-based reports
synapseRT
Zephyr
Test Management
Defect matrix reports
synapseRT
Zephyr
Test Management
Test suite report
synapseRT
Zephyr
Test Management
Burndown chart
synapseRT
Zephyr
Test Management
Summary
Section 6: Continuous Integration with Jira and Jenkins
Jira Integration with Automated Testing Tools
Understanding the DevOps pipeline
Configuring Jira plugins to connect to Jenkins
synapseRT
Zephyr
Test Management
Example workflow to integrate and execute automated scripts
synapseRT
Zephyr
Test Management
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
This book will provide a practical understanding of the test management process with Jira. The book presupposes no qualifications on the part of readers trying to streamline their test management processes and will guide you through a step-by-step approach to implementing test management effectively. It focuses on the basic concepts, covering details of the software testing process followed by the organization of test artifacts in Jira. It then explores and contrasts between the three most popular Jira plugins—Zephyr, Test Management, and synapseRT—that are widely used for test management.
Topics covered include creating and managing projects in Jira, creating Jira tickets to manage customer requirements, tracking Jira tickets, creating test plans, test cases, test suites, defects, requirement traceability matrices, and generating reports in Jira. It also covers the best practices for establishing a scalable and effective test management suite in Jira. The book primarily focuses on the following:
Familiarizing users with concepts
:
The reader starts with learning about software quality assurance thought processes, as well as quality management standards used in the industry, thereby familiarizing themselves with the software development process and phases with the deliverable management generated at each stage of the software development life cycle.
Familiarizing users with
tools
:
The reader will then progress to learn how Jira can be used to organize and manage their Agile projects in Scrum and Kanban. They will also learn about Jira plugins from the Atlassian Marketplace
that will help in test management.
Understanding the test management approach
:
The reader will then learn how to plan and manage workflow as per their project requirements.
Learn to implement
:
The reader will then learn in detail the best approaches in terms of selecting various project execution workflows based on the needs of the project, as well as learn different aspects of test planning, test strategy, and test execution.
Monitoring and controlling project activities
:
The reader will then learn
how Jira can help in defining strategy, as well as monitoring and controlling projects using different type reports.
Continuous integration with Jira and Jenkins
:
The reader will then learn how
to configure Jira plugins to create, manage, and execute automated test scripts in Jira using Jenkins.
This book is for any quality assurance professional, software project manager, or test manager interested in learning to implement test management best practices in their team or organization.
Chapter 1, An Overview of Software Quality Assurance, explains quality assurance thought processes and quality management standards. It also describes the software life cycle, and familiarizes the reader with the deliverables at each stage of the life cycle.
Chapter 2, Getting Started with Jira, covers how Jira can be used to organize and manage our Agile projects in Scrum and Kanban. It also discusses Jira plugins from the Atlassian Marketplace that will help in test management.
Chapter 3, Understanding Components of Testing with Jira, covers in detail how each phase of test management can be performed using the test management plugins in Jira. It also compares the features provided by each plugin.
Chapter 4, Test Management Approach, covers in detail the best approaches to selecting various project execution workflows based on the needs of the project.
Chapter 5, Test Planning, discusses different aspects of test planning and test strategy while understanding the relationship between requirements and the test plan. It also explains how Jira can help us in defining and comparing strategies for our testing needs using the synapseRT, Zephyr, and Test Management tools.
Chapter 6, Test Design Phase, explains the process of test case design and creation. It also explains how to organize test cases and hone our skills in reusing test cases and test data.
Chapter 7, Test Execution Phase, describes the process of test execution and how it will be managed using Jira.
Chapter 8, Defect Management Phase, discusses the importance of defect management and explains how Jira helps us in tracking and managing defects effectively.
Chapter 9, Requirement Management, discusses how Jira issues can be used to track project requirements. It also explains ways in which Jira can be used to link requirements with test cases as requirement coverage.
Chapter 10, Test Execution Status Reporting, explores how Jira can help monitor and control projects using reports. It details various reports offered by Jira.
Chapter 11, Jira Integration with Automated Testing Tools, explores how third-party automated testing tools can be integrated with Jira to manage automated test cases.
We expect readers to understand the basics of the software development process and have some familiarity with Jira. Readers do not need to have any prior knowledge of test management tools, as the book will cover these concepts from the basics through to an advanced level.
To complete this book successfully, readers will require computer systems with at least an Intel Core i3 processor or equivalent, 8 GB RAM, and 4 GB of available storage space. In addition, you will require the following software:
Windows or iOS operating system.
Google Chrome / Firefox Mozilla / Internet Explorer (latest version) browsers
Jira (version 7 onward) with the synaseRT, Zephyr, and Test Management
plugins. The version used in this book is 7.
Jenkins (version 2.150 onward).
Eclipse IDE.
Java 8 for Jenkins.
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/9781789954524_ColorImages.pdf
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Testers may also have to use different types of files, such as .doc, .docx, .txt, .pdf, .xls, .xlsx, .csv, .png, or .jpeg to import the data in order to make sure that it works or doesn't work as defined in the test case."
A block of code is set as follows:
package JenkinsDemoPkg;import org.testng.annotations.Test;public class demoJenkins { @Test public void testJenkins(){ System.out.println("Hello World"); }}
Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Let's click on the Create new project button."
Feedback from our readers is always welcome.
General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packt.com.
We are going to learn about the thought process behind software quality assurance and the quality management standards used in the industry. Then, we will familiarize ourselves with the software development process and its phases. We will also learn about managing the deliverables that are generated at each stage of the software development life cycle.
This section will include the following chapter:
Chapter 1
,
An Overview of Software Quality Assurance
Do we, as human beings, make mistakes? The answer to that is an overwhelming yes. There are examples of failures in quality control and decision-making that have shaken the world and resulted in huge losses to the companies involved. For example, we all remember the tragic accident with the Challenger space shuttle that exploded on launch. Was this a case of simple oversight or was it possible to have adequately tested the systems to control the threat of failure and avoid the explosion?
To get to the bottom of such incidents, we need to learn from the very people who are involved in the design and production of such systems. Mistakes are generally unavoidable and can happen at any stage of production, due to reasons such as weak or unclear requirements, hurrying to meet deadlines, or insufficient knowledge about a system. What we can do, however, is follow a process that can help reduce making or introducing any new errors, while preventing known errors from being repeated. This calls for a change in thought processes and a reliance on crafting standard practices in order to produce more successful products. Let's first understand what quality means before we embark on our journey to rewire ourselves to create sustainable and repeatable best practices for delivering defect-free software.
In this chapter, we'll be covering the following topics:
What is quality?
How do we ensure quality?
Software testing thought process
Quality Management
Systems
Software Development Life Cycle versus Software Testing Life Cycle
Types of testing
Preparing test data
and managing test artifacts
Quality, just like any other measure, requires a frame of reference or standards for us to compare against customer needs. These standards can help us to maintain and promote the consistency of the products developed, minimize the amount of rework required, and produce a customer-oriented product.
Quality can be defined in different ways. According to the International Organization for Standardization (ISO) 13628-2:2006, quality can be defined as conformance to specified requirements.
There are seven main ISO principles (by ISO 9000) that revolve around making a good quality product:
Customer focus
Leadership
Engagement of people
Process approach
Improvement
Evidence-based decision-making
Relationship management
The quality model presented by ISO (ISO/IEC 25010:2011) is useful to assess the quality of products. Adoption of this model can guide organizations on how to improve the quality of software. This model describes the quality characteristics and sub-characteristics that software should possess to qualify as production-ready before it can be released to end users. Let's take a closer look at these characteristics and sub-characteristics.
The product quality model relates to the static properties of software and the dynamic properties of a computer system:
As you can see in the preceding diagram, there are eight product quality characteristics, which I will explain to you:
FUNCTIONAL SUITABILITY
:
Characterizes the functional potential and abilities of the software by sub-categorizing it into three different categories:
Completeness
: The measurement of the set of functions implemented and covered for all the specified requirements to satisfy user goals
Correctness
: The measurement of deviation from the specified requirements and the measurement of the precision of the generation of end results
Appropriateness
: The measurement of the generation of suitable and relevant results that can facilitate achieving specified tasks and objectives
PERFORMANCE EFFICIENCY
: Takes three main factors into consideration:
Time-behavior
: Measures the response times, processing times, and tolerance of the throughput of an application against the specified load
Resource utilization
: A measurement of the utilization of the amount and types of resources while performing specified tasks
Capacity
: Checks maximum tolerance and limitations to meeting the required goal
COMPATIBILITY
: This checks whether the system can work efficiently in different environments by examining the following two factors:
Co-existence:
Verifies that software or a product can perform its tasks effectively by sharing common resources and environments with other software/hardware
Interoperability
: Ensures the exchange of information between two separate products or components is smooth and has no impact on the intended results
USABILITY:
Examines the ease of use of software by considering the following aspects:
Appropriateness recognizability
: The verification of the product or service against the user's needs
Learnability
: The extent to which a product or service facilitates users' learning of its usage effectively and efficiently
Operability:
Deals with knowing how easy it is to operate, control, and use the system product or service effectively
User error protection
: Measures the degree to which the system can prevent users from making errors
User interface aesthetics
: Checks how the user interface of the system can yield user satisfaction and a pleasing experience
Accessibility
: Makes sure that users can use the system hassle-free, so that users can use it effectively, without compromising its ability to perform a specified set of goals or the purpose that has been set for the system or products
RELIABILITY:
The extent to which end users can rely on the system or products to perform specific tasks or activities. It consists of four sub-categories:
Maturity:
The extent to which the system or its components meets customers' needs in terms of reliability when functioning normally
Availability:
The measurement of the availability and accessibility of the software or product whenever users want to use it
Fault-tolerance:
The measurement of the deviation of the expected results despite being under undesirable conditions
Recoverability:
Checks how quickly the system can recover from interruptions or failures without losing information
SECURITY:
Everyone wants their data to be secure when it comes to using software products or services. Security is needed to control the unauthorized use of data. In order to meet security needs, it has been sub-categorized into the following categories:
Confidentiality
: Ensures the authorized use of data
Integrity
: Capability to prevent unauthorized and unofficial access to data by invalid users, products, or other services that could potentially cause harm by modifying data
Non-repudiation
: Refers to the degree to which the actions and/or events can be ascertained to have occurred so that it cannot be disputed or repudiated late
Accountability
: Ensures that activities or actions performed by an actor in the system can be traced back uniquely to having been performed by the same actor
Authenticity:
Ensures that the actor or person is uniquely identifiable in the system, which can be proven to match the identity as claimed
MAINTAINABILITY:
Deals with the maintenance of the software product or service to fulfill customer needs and to continue to perform efficiently. It has been sub-categorized into the following:
Modularity
: Measures the effect on the other parts or components of the system when one part undergoes a change. High cohesion and low coupling are what we strive to achieve. Thus, the code for a particular module should be closely related within the module but each module should function independently from other modules.
Reusability
: Refers to the degree to which specific parts or components of software can be reused.
Analyzability
: Deals with checking the ease of analyzing the software or product in order to detect failures, deficiencies, and/or the impact of modifications.
Modifiability
: A measurement of the extent to which the software product or service is modifiable without affecting its current efficiency and functionality.
Testability
: Defines the baseline for the test that confirms whether the software product or service meets the specified requirements.
PORTABILITY
:
Defines the resilience of the system to perform efficiently with the changes in software, hardware, or the environment.
Adaptability
: A measurement of the extent to which the software system or product can be adopted without affecting its efficiency
Installability
: A measurement of the capacity of a product or software to be installed or uninstalled in a stipulated environment
Replaceability
: The ability of software to be replaced with other software to perform the same set of tasks in the same environment
The QUALITY IN USE model is applicable to the complete human-computer interaction and has the following five characteristics:
Let's look at these characteristics in detail:
EFFECTIVENESS:
A measure of the accuracy and completeness of results generated by the component or functions of the software product or service.
EFFICIENCY:
A measurement of the utilization of resources needed to produce complete and accurate results.
SATISFACTION
: These are four ways to test user satisfaction with software:
Usefulness:
Makes sure that the software satisfies customer needs and functions as expected
Trust
: Ensures software fulfills customer expectations
Pleasure
: A measurement of how much the software product or service helps customers meet their needs
Comfort
: The degree to which the user is satisfied with the software product and feels comfortable using it
FREEDOM FROM RISK
: There are three main ways to analyze the level to which a system can reduce potential risks, as follows:
Economic Risk Mitigation
: Analyzes how much the system can mitigate potential risks that could have a severe impact on various levels, such as financial, commercial, reputation, and disrupt the efficiency of the software product or service
Health and Safety Risk Mitigation
: Identifies the level to which software can mitigate potential risks to end users
Environmental Risk Mitigation
: Identifies how much software can mitigate the potential risk to property or the environment
CONTEXT COVERAGE:
The level to which the system meets the specified context can be measured by the following:
Context Completeness
: Verifies that software meets specified objectives and can be used efficiently without any risk in all
specified
contexts of use
Flexibility
: A measurement of the degree to which the software can be used beyond the specified requirements
These characteristics can help us to assess a software product's quality.
