introduction to qa - bvrit hyderabad

33
Introduction to QA 10-March-2020

Upload: others

Post on 09-Dec-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Introduction to QA

10-March-2020

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

SPEAKER

Srikala Gudavalli

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

AGENDA

What is Software Testing1

Why Software testing is Important2

Test Pyramid3

22

Type of Testing4

Introduction to Automation Testing -Selenium Webdriver5

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

Software Testing

• Process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified

requirements or not.

• Executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual

requirements

• Who are involved:

• Software Tester

• Software Developer

• Project Lead/Manager

• End User

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

Why Software Testing

• Saves Money

• In May of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million USdollars.

• Suncorp Bank – In February 2017, a malfunction during a routine upgrade caused the disappearance of money from customers’ bank accounts. Additional customer complaints included overdrawn and locked out accounts.

• Security

• The user gets a trustworthy product;

• Keeps user’s personal information and data safe;

• Vulnerability free products;

• Problems and risks are eliminated beforehand;

• Saves a lot of troubles later on;

• Ex: China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264 innocent lives.

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

Why Software Testing

• Product Quality

• Development of an app, for example, has many processes included and testing gets a glimpse of every bit – it checks if the apps graphics are aligned properly, tests the main functionality, checks if menus are intuitive, etc.

• After developers fix issues, sometimes another issue may appear unexpectedly somewhere else, that’s just how testing goes sometimes, so it’s great to find those issues to be resolved and be a part of quality product being delivered to marketplace

• Device compatibility is also checked for the product, for example, an app’s compatibility on many devices and operating systems.

• Customer Satisfaction

• Customer trust is not easy to earn, especially if your product is glitching and functioning only 60% of the time.

• Ex: British Airways – For the sixth time last year – a major IT software failure led to massive cancellations on local flights and significant delays on international flights. According to NPR.org – it took over three days of cancellation chaos to resolve theproblems that plagued BA during this outage.

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

Test Pyramid

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

TESTING TYPES

• Unit Testing - Testing of an individual software component or module .Type of White box testing.

• System Testing - System Under Test- the entire system is tested as per the requirements. Type of Black box testing.

• Interface testing - verify if all the interactions between these modules are working properly

and errors are handled properly.

• Integration Testing - Testing of all integrated modules to verify the combined functionality after integration

• Sanity Testing- It is done to determine if a new software version is performing well enough to accept it for a major testing effort or not.

• Smoke Testing - Whenever a new build is provided by the development team then the Software Testing team validates the build and ensures that no major issue exists.

• Regression Testing - Testing an application as a whole for the modification in any module or functionality - Test Automation is recommended.

• Acceptance Testing - verifies whether the end to end the flow of the system is as per the business requirements or not and if it is as per the needs of the end-user. Typically done by client.

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

•Know the below

• What is test case?

• Test case goals

• Test case (TC), Test scenario (TS), Check List (CL)

• Test case organization and styles

TEST DESIGN TECHNIQUES

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS TEST CASE?

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS TEST CASE?

A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.

IEEE Standard 610:

A test case is a documentation which specifies input values, expected output and the preconditions for executing the test.

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

GOALS

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

GOALS

Plan, only then run -> Structured approach, more bugs found

Test the Requirements documentation before application is available

Pass information to new testers

Satisfy Customer\EPAM process requirements

Store information

Accelerate regression testing

Track testing progress X% of tests executed, Y% requirements covered

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

MAIN QUESTION TO ANSWER

How many user scenarios have been passed/failed?

How many features are stable?

Does the application conform to the specification?

Is software ready for delivery or not?

Which features need to reworked?

What is the quality of the application?

The goals of test cases is provide information about:

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

TEST CASE,

TEST SCENARIO,

CHECK LIST

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

2

1

3

TC & TS & CL

Test caseTest cases are the set of valid and invalid steps of

a test scenario.

Test scenario

Test scenarios are the high level classification of test

requirements grouped by module functionality. A test

scenario may have one or more test cases associated

with it.

Check listThis is a list of statements that we need to test. In

short it`s "What to test"

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

ORGANIZATION AND STYLES

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

ORGANIZATIONHow it looks in JIRA:

Priority

Test steps

Expected result

Summary

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

ORGANIZATIONHow it looks in TFS:

Name of test case

Priority

Module to be tested

Test steps Expected result

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

ORGANIZATION

Following fields need to be included in test case:

Title/Summary

Module to be tested

Description

Test steps

Priority

Expected result(s)

Preconditions

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

2

1

3

STYLES

SPECIFIC,

GENERAL

• Detailed and high-specific test cases consume a lot of time to create and support

• Too general test cases with lack of details can be not informative enough,

especially for a newcomer

POSITIVE,

NEGATIVE,

BOUNDARY

• Positive tests verify that the application works as it should

• Negative tests verify that application does not work as it shouldn’t and provides

proper error messages.

• Boundary tests cover the border between positive and negative cases and are

extremely useful.

INDEPENDENT,

TIED TOGETHER

• Independent tests allow to continue testing when some of the tests fail

• Independent tests can be run in any order and in any subset

• Tied together tests simulate typical user behavior

• Tied together tests can be used for integration testing

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

STYLES EXAMPLES

Test case:

1.In the field A type 2

2.In the field B type 3

3.Click [Add] button

4.Check value of the

field C

SPECIFIC

Expected Result:

The value is 5

GENERAL POSITIVE NEGATIVE

Test case:

1.Verify that the

application sums “A”

and “B” correctly

Expected Result:

It is so

Test case:

1. Navigate to login

form

2. In the “Login” field

type “test”

3. In the “Pass” field

type “pass”

4.Click “Login” button

Test case:

1. Navigate to login

form

2. In the “Login” field

type invalid login

3. In the “Pass” field

type invalid pass

4.Click “Login” button

Expected Result:

The user logged on

Expected Result:

The user cannot login

and notification should

be appeared

BOUNDARY

Designed to check a

program's response to

extreme input values:

- Maximum values;

- Minimum values;

- Typical values;

- Error values;

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

INDEPENDENT

• Test can be executed quickly and easily

• Testing can continue when some of the tests fail

• Tests can be run in any order, any subset

• Variation is possible (after test case #1, created item was modified (new idea). This does not ruin tests #2-10)

TIED TOGETHER

• Simulate typical user behavior

•Can be used for integration testing

•Are helpful in case if one test includes a lot of steps (>10)

•Allows to re-use the test data created on previous steps

STYLES

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? WHAT IS SELENIUM?

Selenium is a project name, within which a series of software products is developed:

• Selenium IDE (Firefox plugin, that records and reproduces user actions)

• Selenium RC (the previous version of the library for browser management = Selenium )

• Selenium Server standalone (lets you control the browser from a remote machine over the

network)

• Selenium WebDriver (library for browser management)

• Selenium Grid (cluster consisting of several Selenium Servers)

Open source project (Apache 2.0 license)

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? SELENIUM HISTORY

• Developed by Jason Huggins in 2004 at ThoughtWorks company

• Why the name is ‘Selenium’?

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? Easier way of Understanding

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? Easy way of Understanding

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? WORKFLOW

1) An automation developer creates a

scenario in any high level language

(using a corresponding library)

2) The scenario is accepted by

WebDriver and transformed into the

language, that a particular browser

(depends on WebDriver type)

understands

3) Browser performs the

manipulations, that were described

in the first step

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

WHAT IS WEBDRIVER? Technical Way of Understanding

Selenium WebDriver, or Selenium 2.0 (widespread abbreviation - WebDriver) is a software library for browser

management.

Responsibility was shifted to browser developer

teams starting from

WebDriver 3.0

The browser driver is the same regardless of the language used for automation.So, in order to use the browser driver from any language, a language binding was created for each language

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

SUPPORTED BROWSERS

Wide variety of browsers supported:

• Firefox (all the version, where

Selenium IDE is available)

• IE (7-10, 11 – additional

configuration required)

• Edge (not all major features yet

implemented)

• Safari (5.1+)

• Opera (Opera Software)

• Chrome (Chromium)

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

SUPPORTED PROGRAMMING LANGUAGES

Programming languages (+ frameworks)

- Java (JUnit, TestNG)

- JavaScript (WebdriverJS, WebdriverIO,

NightwatchJS)

- C# (NUnit)

- Objective-C

- Perl

- PHP (Behat + Mink)

- Python (unittest, pyunit, py.test, robot framework)

- Ruby (RSpec, Test::Unit)

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

Demo

CONFIDENTIAL | © 2019 EPAM Systems, Inc.

QUESTIONS