Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA -...
Transcript of Software Quality Assurance - Foundations and Fundamentals! · 2017-09-03 · knowledge of SQA -...
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