What is Software
Types of Software and SDLC
Spectacular Software Failures and Why software usually has faults?
Software Testing and BUG
Software Testing Types, Techniques, Classifications, Levels and STLC
Difference Between Manual & Automation
Automation Testing Tools
Software Testing Job Market
Role of Software Tester
Skills required to Become a Software Tester
10 reasons why you are not getting job in software testing ?
Specialization has come to stay in testing career
Why Testing in cegonsoft? How we Different form Others?
How Saturdays Classes will be helpful for Testers to get a Job?
Software Set of rules / programs that provides instructions to computer to
tell What to do, when to do, how to do
Software Engineering Study of applying engineering to build software
Types of Software
System Software System software is any computer software which
manages and controls computer hardware so that application software can
perform a task.
Application Software Application that we develop for others
•Project Based Companies
•TCS, CTS, Infosys, Wipro
•Product Based Companies
•IBM, HP, Temenos, First American
•2 shops – pillow shop, tailor shop
Software Development Life cycle
– The process of developing a software product formally&
logically. It describes stage of software development
process with different methodologies.
What is Software Testing
The process used to identify the correctness,
completeness and quality software application &
executing under positive and negative conditions
by manual or automated means.
It checks for the:
Generate high quality test cases, perform
effectivete tests, and issue correct and helpful
• The separation of debugging from testing was
initially introduced by Glenford J Myers in 1979. “a
successful test is one that finds a bug”
• Debugging Oriented (until 1956)
• Demonstration Oriented (1957-1978)
Testing done to check if software is satisfying
requirements- debugging and testing was
• Destruction oriented (1979-1982)
process of executing the Program with intent of finding errors
• Evaluation Oriented (1983-1987)
Detect faults -finding errors in requirement,
design and implementation
• Prevention Oriented From 1988
Prevent faults -finding errors in requirement,
design and implementation
Finding and Locating a defect
Fixing the defect
Done y testing team
Done by Development team
Intension behind it is to find as Intension is to remove those
many as defects as possible.
• Confirms the Functional and nonfunctional requirements
• providing the defect free products
• meeting the customer satisfaction.
There are 6 quality attributes:
The ability of the product to function (to work efficiently)
as per the user requirements.
Consider a bike, Verify the start functionality works as
The ability of the product to continue to function, over time and
over its full range of use, without failing or causing failure.
Verify the start functionality works how long like it worked in the
Simply define as User friendliness and Whether the application is fit
Verifying the application is able to access by the end users
Example: mobile phone
Processing Speed, Time Taken to execute the task.
How fast the web page is loading
How fast the data gets retrieved
The ability of the system to undergo changes easily.
Also includes the data manipulation
How easy the features can be added and updated in the application
The ability of the system to adapt in various operating systems.
C Programming can be executed in Microsoft windows OS and
Software quality is further divided into
Identifies weaknesses in
processes and improves
Identifies defects for the
primary purpose of
What Do We Test
We will perform testing first on major,
important, critical and popular features and
after we will test minor functionalities
• Functional Testing
• Non Functional Testing
• Black box testing
• White box testing
Black box testing
No knowledge of internal program design or code
Tests are based on requirements and functionality.
White box testing
White-box testing (also known as clear box testing,
glass box testing, transparent box testing, and
structural testing) is a method of testing software
that tests internal structures or workings of an
application which is testing the source code /
Performed to verify the Non Functional
requirements of the application
Functional Testing types
The identification of functions that the software
is expected to perform and verifying whether the
software is working as per the requirement
Functions are tested by feeding them input and
examining the output
It can be done both Manually or automated using
• Smoke Testing: smoke testing is to verify the major
functionalities of the application
Eg:login, inbox, compose mail
• Sanity Testing: sanity testing is to verify minor or each
functionality in the particular application
Eg: check box radio button etc in inbox .
• Compatablity Testing: It is done to verify how the system is
compatible in various operating system, platforms and
• Explora tory Testing: how the software works and
to ask questions about how it will handle easy
and difficult situations the tester should know
more about the product and he wants to explore
more number of test cases to find out how the
software is working
• AD HOC Testing: This is not structured testing
method and also it is a least formal method it is
used to do testing as soon as possible
• Performance testing allows testers to judge how
well an application or website performs under
specific circumstances. Measuring the time
taken, the scalability and reliability of an action is
key to performance testing.
• There are three objectives (three S) of
Performance testing to observe and evaluate;
Speed, Scalability and Stability
Load testing- Testing an application under heavy loads.
Example: If the capacity of the lift is 10 people testing it with
10 people is called load testing
Stress testing- Stress Testing help us to
observe the stability of the application.
Endurance Testing- Endurance testing reveals
about memory utilization when you load your
test for prolong executions.
Spike Testing- Spike Testing is performed by
sudden increase/decrease in load and observing
the behavior of the application.
Scalability Testing-is the testing of a software application for
measuring its capability to scale up/ out- in terms of any of its
non-functional capability - be its user load supported, the
number of transactions, the data volume etc.
Recovery testing-Testing how well a system recovers from
crashes, HW failures or other problems.
Install/uninstall testing-Testing the application is able to install
and un install in various operating system and platforms
Tests each module individually.
Follows a white box testing (Logic of the program).
Done by developers. Lowest level of testing
Once all the modules have been unit tested,
integration testing is performed.
It is systematic testing.
Produce tests to identify errors associated with
Component integration testing
• Ensures that the individually unit work together as whole and
the data flow across unit as per the requirement
• Done after two are more models are developed and
successfully unit tested
• Both black box and white box testing can be used
• Performed by both developers and testers
• Entry criteria is after completing the unit testing
• Exit criteria If the integration between the modules are
Approaches in component integration testing
• Top down approach
• Bottom approach
• Big bang approach
• Here the top level modules are tested first and lower level
modules are tested separately
• Here Stubs are used to stimulate if some lower level modules
are not available
• Stubs wont communicate
• In this approach bottom most modules are tested first
and then moving upward step by step
• Here Drivers are used to stimulate if some higher level
modules are not available
• Drivers will communicate
Big Bang Approach
• Here all the units are most of the unit are tested at one go
• Most of the defects can be uncovered early in the test
• Used when testing team receives entire software in a bundle
• In this level we are going to validate the entire system is
working as per the requirement after completing the
• This level involves testing the whole application
• This is done by testers
• Individual module may work as desired but it may fail as
• Some of the scenarios will be covered only in this level
In this level both Black Box and White Box technique can use
Performed by independent Testing team
Entry Criteria is after completing unit and integration testing
Exit Criteria is after the whole system is working as per the
• Consider yahoo mail website after completing unit and
integration testing here we are going to test the application in
whole whether all the modules are as per requirement like
verifying after completing login we are able to compose a
mail and we are able to access the inbox
SYSTEM INTEGRATION TESTING
• In this level we are going to verify the
interface of the application with other
systems is working
• Some of the external devices and system
Lan /van communications middleware
Intranet / Internet
In this level we are following two approaches
• Identifying the system integration points which are critical to
• Prioritize them and perform sequentially
Divide and Conquer
• Test the other applications first
• Test the connections
• Combine incrementally
USER ACCEPTANCE TESTING
Testing done by clients and end users
There are two types
• Alpha testing
In this process client will come to our place and validate the
application is working as per the brs (business requirement
• Beta testing
Here the application developed is tested in client location and
validate the application is working as per the brs (business
Validates Whether the application is fit for use
Performed after st , sit or in parallel
Done by customer, Business user and Independent testing
Manual &Automation testing
• It is the process of testing the application manually by
creating test case
• This process is done by executing the test case manually
• It is cost effective
• Mostly preferred for one time testing
This process is done using tools
Tools will create test script and it will execute the test
It is not cost effective &some special training is required
This process is useful when functionality is to be repeatedly
• Save lot of time
• Sometimes few defects may miss
….is a ”Bug”??
….is Fault, Failure ??
Bug, Fault & Failure..
A person makes an Error
That creates a fault in software
That can cause a failure in operation
• Error : An error is a human action that produces the
incorrect result that results in a fault.
: The presence of error at the time of execution of the
• Fault : State of software caused by an error.
• Failure : Deviation of the software from its expected result. It
is an event.
Bug Life Cycle
Tester finds the bug
and report it to Test Lead
Test Lead confirms
that it is a valid Bug
When to Stop testing
The Important factors to decide when to stop testing are
Critical and key Test cases are completed
Testing budget of the project
Functional coverage and Code coverage meeting the
Requirement as per the Benchmark
Defects rate level falls below the specified level
High priority bugs are solved
Role of a SoftwareTester.
• Find bugs as early as possible and make sure they get fixed.
• To understand the application well.
• Study the functionality in detail to find where the bugs are likely
• Study the code to ensure that each and every line of code is
• Create test cases in such a way that testing is done to uncover
the hidden bugs and also ensure that the software is usable and