48
Software Quality Assurance - Foundations and Fundamentals! Tusha Pavuluri August 16, 2017

Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Software Quality Assurance - Foundations and Fundamentals!

Tusha PavuluriAugust 16, 2017

Page 2: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

About TushaTusha leads the QA department at HelloSign.com, one of the major key players in the field of electronic

signatures. Along with a Masters in Computer Science, I have several (12+) years of software industry

experience in the areas of both quality assurance and development. My career spans from being a Java

developer to a Management professional, during which I have been passionate about not only coding in

Java and C#, but also the many facets of quality assurance like UI/API/Automation. I also have been

playing a key role in advocating the importance of various Agile techniques in determining the ultimate

quality of the software product, thereby strengthening the Product/Development/QA teams!

Page 3: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Objectives

●The main purpose of this presentation is to focus on the end to end practical

knowledge of SQA - it’s role, deliverables and the processes involved in SDLC

(Software Development Life Cycle)

●Key takeaways include:

●Understanding how SDLC works in different methodologies.

●Fundamental knowledge of Different roles of QA in a product life cycle.

●Team collaboration between Dev/Product/QA.

●Software QA deliverables.

●Practical approach to deliver a high-quality product on time.

Page 4: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Software Development Life Cycle (SDLC)

- What is SDLC?

- Phases of SDLC

- Models of SDLC

- Waterfall

- Spiral

- V&V

- Iterative

- Big Bang

- Agile

Page 5: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Waterfall Model

Page 6: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Spiral Model example

Page 7: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Iterative Model

Page 8: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Agile Model

Page 9: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Agile - Process

Important Keywords and Concepts:

● User stories

● Scrum Boards

● Sprint Backlogs

● Burn down charts (and other charts)

Standard Sprint workflow:

User Stories -> Implementation/Functional Testing (QA env) -> Deployment to

Staging/Preprod -> Regression tests (manual/automated) on Staging -> Release to

Prod -> Sanity tests (manual/automated) on Prod.

Page 10: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

User Stories

● What is a user story?

● How is an user story useful in an Agile?

● Why is the user story the most “crucial” component for testing?

○ Acceptance Criteria

Page 11: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Acceptance Criteria - Deep DiveExample user story:

As an existing user of HelloSign, I want to be able to see the signed signature requests from signers, so

that I know that my signature requests have been signed.

Example acceptance criteria:

● The Documents page is displayed.

● The Documents page should have sections that indicate different statuses'.

● The Documents page should display a section with with Completed signature requests.

● The Completed signature request should have options to Preview/Download the signature request.

Page 12: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Agile Management Tools

Some of the common Agile Management tools:

● JIRA

● Rally

● Version One

● Pivotal Tracker

JIRA:

● Workflow Stages

Page 13: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

JIRA - Workflows/User Story

Practical example of using JIRA to create a user story (to be presented in the

session..)

Page 14: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira User Story

Page 15: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira User Story (cont’d)

Page 16: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira User Story (cont’d)

Page 17: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira User Story (cont’d)

Page 18: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira User Story (cont’d)

Page 19: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

JIRA Workflows

Practical example as to the workflow states that follow upon creating a user story

in a Sprint: (to be presented in the session..)

Note that these states can be customized further.

Page 20: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira States

Jira states..

Page 21: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 22: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 23: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 24: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 25: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 26: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 27: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 28: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 29: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 30: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow Screens

Page 31: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Jira Workflow States Diagram

Page 32: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Collaboration

● Role of QA in a software project.

○ Importance of QA/Test team.

● Collaboration with Dev team.ç

● Association between QA and Product teams

Page 33: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Automation

➢ The Whys

○ Why should we automate?

➢ The Whens

○ When should we automate?

➢ The Whats

○ What should be automated?

Page 34: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Web/UI Automation Tools

➔QTP

➔Selenium

➔TestComplete

➔Watir

➔CasperJS

➔Capybara

➔etc...

Page 35: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Selenium - Introduction & Basics➢ Open source

○ Originally developed at ThoughtWorks.

○ Free.

○ Download and install.

➢ Multiple language support

○ Java, Php, Ruby, C#, Python etc.

➢ Selenium IDE

○ UI Based tool. FireFox add-on. Record & Play. Generates code/script which can be modified.

➢ Selenium RC

○ Server written in Java.

○ Client drivers in different languages.

○ Deprecated now.

➢ Selenium WebDriver

○ Uses a Client API to send commands to browser via drivers (Firefox, Chrome, Edge, IE etc.,)

○ HtmlUnit browser or Headless browser.

➢ Selenium Grid

○ Server that enables web browser instances to run on remote machines.

○ Hub -> Servers -> WebDriver nodes (browser instances)

Page 36: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

WebDriver - Basics

An web element (UI element) can be located using:

1. By ID

2. By CSS

3. By xPath

4. By Tag Name

5. By Class Name

6. By Name

7. By Link Text

Page 37: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Selenium - Maven Dependency

Page 38: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

WebDriver - Example Class (Java)

Page 39: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Tools/Add-ons to locate UI elements

Page 40: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Webelement Lookup

Page 41: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Webelement Lookup (Cont’d)

Page 42: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

WebDriver - Page Object Model

Example - Folder Structure

➢Maven project (Java)○ Main/Java

■ Core

■ Utilities

■ Locators

■ Implementation

■ Page Objects

■ Test Data

○ JUnit/TestNG

■ Test classes

Page 43: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Page object model - contd..

➢ Core

➢ Utilities

➢ Locators

➢ Implementation Interfaces

➢ Page Objects

➢ Test Data

Page 44: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Page Object Model - Cont’d..

Page 45: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Page Object model - contd..

JUnit/TestNG Test Classes

Example - GoogleSearchTest.java

This will the test implementations of the page object methods. In this example, the

methods - searchForHelloSign() and selectHelloSign() will be run as tests.

A single test case can be created individually or test suite can be created.

Page 46: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Reports in Automation

While there are a few plugins available to report inbuilt reports in automation, below is one of the most

common plugin - SureFire, where the test results can be generated in HTML format.

Maven Surefire plugin and below is the screenshot as to how to integrate it as a dependency within the

Maven configuration (pom.xml).

Page 47: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Sample Test Report

Page 48: Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA - it’s role, deliverables and the processes involved in SDLC (Software Development

Q&A