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.
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?
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
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.
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.
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? 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)
Top Related