Software Testing &
Introduction to Test
Automation
Prepared By: R K Singh
Agenda
Brief Introduction
Who am I?
7+ Years of IT
Experience
ISTQB Advanced and CSTE
My Roles
so farCertified
Software Developer, Development Tester,
Test Lead, Trainer-Teaching TDD and
Automation Testing
Advisor-Assesses projects and Tools for Test
Automation
INTRODUCTION OF TESTING
What is Testing: Software testing is the process of
evaluation of a software item to detect differences
between actual and expected output on given input.
Software Testing is the process of assuring that
product which is manufactured by developer is
meeting the user requirement. The motive to
perform testing is to find the bugs and make sure
that they get fixed.
The purposes of testing are:
Quality assurance, Verification and Validation,
To find the bugs before the product is released to
customer.
To improve the quality of the product
To evaluate that the product is according to
requirements.
TYPE OF TESTING
Manual testing: This type includes the testing of the Software
manually i.e. without using any automated tool or any script.
A manual tester would typically perform the following
steps for manual testing:
Understand the functionality of program
Prepare a test environment.
Execute test case(s) manually
Verify the actual result
Record the result as Pass or Fail
Make a report of the Pass and Fail test cases
Publish the report
WHO AND WHEN TO START TESTING
Who does testing: Following professionals are involved in
testing of a system within their respective capacities:
Software Tester
Software Developer
Project Lead/Manager
End User
When to Start Testing?
Testing is done in different forms at every phase of SDLC like
during Requirement gathering phase,
the analysis and
verifications of requirements are also considered testing.
Pros - Cons
Advantage: Manual testing can be use in both small and big project.
We can easily reduce and add our test case according to project movement.
Easy to learn for new people who enters in manual testing.
Manual testing is more reliable then automated (in many cases automated test
not cover all cases) .
Disadvantage: GUI object size difference and color combination etc is not easy to find out in
manual testing.
Actual load and performance is not possible to cover in manual testing for large
number of users.
Automation testing
Automation testing: Automation testing which is also known as
Test Automation. In this testing, the tester writes scripts and uses
another software to test the software. There are many Tools are
use in automation Testing.
Software testing tools:
HP Quick Test Professional
Selenium
Test stack.White
Testing Anywhere
WinRunner
LaodRunner
Pros - Cons
Advantages
Easy to cover up all cases in a limited time period.
You can perform different types of testings like load testing,
performance testing using tool.
Automated testing can be performed on different operating systems.
Disadvantages
Purchase a tools and Maintenance.
Automation testing is more expensive work as comparing with manual
testing.
Language wise there are many tools to test various type of software,
means all tools will not support to all software which are developed in
different languages.
SDLC AND STLC
Software Development
Life Cycle: There are six
type of SDLC.
Requirement phase
Design phase
Coding (programming)
Testing
Release (Production)
Maintenance (Support)
Software Testing Life
Cycle: There are seven type
of STLC.
Requirement Study
Test Planning
Writing Test Cases
Review the Test Cases
Executing the Test Cases
Bug logging
Close or Reopen bugs
BASIC TYPE OF TESTING
Black Box Testing: The technique of testing without having any
knowledge of the interior workings of the application is Black Box testing.
The tester is oblivious to the system architecture and does not have
access to the source code. It is also called behavioral, functional and
close box testing.
White Box Testing: White box testing is require understanding of
internal logic and structure of the code. White box testing is also called
glassbox testing or open box, structural,clearbox testing.
Different types of software testing:
Unit testing
Smoke testing
continue
Functional testing
Integration testing
Regression testing
System testing
Load testing
Stress testing
Performance testing
User acceptance testing
Black box testing
White box testing
Alpha testing
Beta testing
SAMPLE OF TEST CASE AND BUG LIFE
CYCLE
Sample of Test case:
Test
Case
ID
Test
Inpu Expec
Case
t
ted
Descrip Data Result
tion
Bug Life Cycle: There are six phases
of Bug Life cycle.
a. New
b. Assigned
c. Resolved
d. Verified
e. Closed
f. Reopen
Test Remar
Res
ks
ult
Sample of Bug :
Bug Name: Application crash on clicking the SAVE button.
Bug ID: (It will be automatically created by the BUG Tracking tool once you save this
bug)
Area Path: USERS menu > New Users
Severity: High (High/medium/Low)
Priority: High (High/medium/Low)
Assigned to: Developer-X
Reported By: Your Name
Reported On: Date
Reason : Defect
Environment: Windows 2003/SQL Server 2005
Bug detailscontinued
Severity: Describes the bug in terms of functionality.
Priority: Describes the bug in terms of customer.
Ex.
High Priority and Low Severity: Company logo is not properly displayed on
their website.
High Priority and High Severity: Suppose you are doing online shopping and
filled payment information, but After submitting the form, you get a message
like "Order has been cancelled."
Low Priority and High Severity: If we have a typical scenario in which the
application get crashed, but that scenario exists rarely.
Low Priority and Low Severity: There is a mistake like "You have registered
success" instead of successfully, success is written.
Windows Application Automation
using WHITE Framework
Need for Automation in any Windows
Application
Type of testing tasks that are routine while doing Verifications.
Repetitive and Multiple actions as a part of Functional
testing
Parallel verifications in third party applications
Post every deployment in the environment, smoke tests to
have health check.
Some light on WHITE
Framework
Framework for automating rich client applications based
O
E
IT EW
H
W AM
FR
RK
on Win32/Win Forms/WPF/ Silverlight, Java platforms
.NET based and does not require the use of any
proprietary scripting languages
Open Source
Custom Commands, Custom Controls and performs
complex actions of any windows application
Integration with SELENIUM is hassle free
Browse for more http://teststack.github.io/White/
Cont..
Time for a Demo!!!
Lets have a Demo!!
Some light on Selenium
Web testing framework
Runs in a browser
HTML & Java script
Open Source
Browse for more- http://openqa.org
Selenium is a robust set of tools that supports rapid development of test automation
for web-based applications.
Selenium operations are highly flexible, allowing many options for locating UI
elements and comparing expected test results against actual application behavior.
Some light on Selenium
(Continued)
Selenium Features
Supports Cross Browser Testing. The Selenium tests can be run on multiple browsers.
Allows scripting in several languages like Java, C#, PHP and Python.
Assertion statements provide an efficient way of comparing expected and actual
results.
Inbuilt reporting mechanism.
Selenium Flavors
Selenium IDE
Selenium Remote Control
Selenium Webdrivers
Seleniums Advantages over other
tools
Multiple browser support (supports almost all
browsers)
Ease in Custom Control Identification
Test playback is very fast.
Very easy to get your initial tests running.
Highly in-built interface and Good workflow since it
is
visible side-by-side with your browser.
Test script is easily readable/understandable
Tests can be exported in many different
programming languages
Few Common Challenges during
Automation
Custom Controls identification was difficult
Browser compatibility Issues.
Tool tips were not recognized.
Maintaining the single UI Map was a bit difficult.
Few controls were recognized on the basis of
coordinates on the browser which is not supporting our
scripts on different screen sizes.
Steps to start with Selenium!
Selenium Remote Control (RC)
Download and add ThoughtWorks.Selenium.Core dll to C# solution
Download Run Selenium server in your system
Create a test script in C# and run it.
Selenium Test Automation
Process
Once the Selenese script is
converted into your preferred
language you can run them using
Selenium Server.
For running the script you also
need the client driver for that
particular language.
Browsers
Versions
Selenium IDE
FF4.xFF10-x
Only
Record &
Playback
IE 7/8/9
Safari
2/3/4/5
Selenium
Remote
Control
Selenium
Core
Selenium
2/Web driver
API
Browsers
Versions
Selenium IDE
Selenium
Remote
Control
Selenium
Core
Selenium
2/Webdriver
API
Chrome
v 5- v 19
**
Selenium Core is written in Java script so it should work (in theory) on most browsers with
decent Java script support. Some operations are only possible via Selenium Remote Control
because of browser security settings
** Selenium Remote Control server can start any executable, but depending on browser security
settings, there may be technical limitations that would limit certain features.
Opera
8/9/10
And Some Limitations
No support for https on Google chrome in Selenium.
Selenium is only for Web Test Automation
Sometimes issues with object identification
Resources
You can checkout for more details of Selenium at :
http://www.openqa/org/selenium
Demo Time!!
Lets have a Demo!!
Queries/Suggestions- Lets discuss