Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA -...

Preview:

Citation preview

Software Quality Assurance - Foundations and Fundamentals!

Tusha PavuluriAugust 16, 2017

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!

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.

Software Development Life Cycle (SDLC)

- What is SDLC?

- Phases of SDLC

- Models of SDLC

- Waterfall

- Spiral

- V&V

- Iterative

- Big Bang

- Agile

Waterfall Model

Spiral Model example

Iterative Model

Agile Model

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.

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

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.

Agile Management Tools

Some of the common Agile Management tools:

● JIRA

● Rally

● Version One

● Pivotal Tracker

JIRA:

● Workflow Stages

JIRA - Workflows/User Story

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

session..)

Jira User Story

Jira User Story (cont’d)

Jira User Story (cont’d)

Jira User Story (cont’d)

Jira User Story (cont’d)

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.

Jira States

Jira states..

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow Screens

Jira Workflow States Diagram

Collaboration

● Role of QA in a software project.

○ Importance of QA/Test team.

● Collaboration with Dev team.ç

● Association between QA and Product teams

Automation

➢ The Whys

○ Why should we automate?

➢ The Whens

○ When should we automate?

➢ The Whats

○ What should be automated?

Web/UI Automation Tools

➔QTP

➔Selenium

➔TestComplete

➔Watir

➔CasperJS

➔Capybara

➔etc...

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)

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

Selenium - Maven Dependency

WebDriver - Example Class (Java)

Tools/Add-ons to locate UI elements

Webelement Lookup

Webelement Lookup (Cont’d)

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 object model - contd..

➢ Core

➢ Utilities

➢ Locators

➢ Implementation Interfaces

➢ Page Objects

➢ Test Data

Page Object Model - Cont’d..

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.

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

Sample Test Report

Q&A