Software Testing
Presented by: Chithra & Sureka
What is Software Types of Software and SDLC Spectacular Software Failures and Why software usually has faults? Quality Testing 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? Launch Plan
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 SoftwareSystem 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
•Example•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.
PlanOrganize DesignDevelop
Test
Car - manufactured and given to the customer
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:• Specification• Functionality• Performance
Generate high quality test cases, perform effectivete tests, and issue correct and helpful problem reports.
History• 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 distinguished separately
• 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 1988Prevent faults -finding errors in requirement,
design and implementationTesting Debugging
Finding and Locating a defect Fixing the defect
Done y testing team Done by Development team
Intension behind it is to find as many as defects as possible.
Intension is to remove those defects.
Software Testing Life Cycle (STLC)
Software Quality
• Confirms the Functional and nonfunctional requirements • providing the defect free products • meeting the customer satisfaction.
QUALITY ATTRIBUTES
There are 6 quality attributes: Functionality Reliability Usability Efficiency Maintainability Portability
• Functionality The ability of the product to function (to work efficiently)as per the user requirements.Example: bike Consider a bike, Verify the start functionality works as
expected.
• ReliabilityThe ability of the product to continue to function, over time and
over its full range of use, without failing or causing failure.Example Verify the start functionality works how long like it worked in the
beginning
• Usability Simply define as User friendliness and Whether the application is fit
for useVerifying the application is able to access by the end users
Example: mobile phone
• EfficiencyProcessing Speed, Time Taken to execute the task.
ExampleHow fast the web page is loadingHow fast the data gets retrieved
• MaintainabilityThe ability of the system to undergo changes easily.Also includes the data manipulation
ExampleHow easy the features can be added and updated in the application
• PortabilityThe ability of the system to adapt in various operating systems.ExampleC Programming can be executed in Microsoft windows OS and
Unix OS
Software quality is further divided into
Quality Assurance Quality control
Quality AssuranceQuality Assurance Quality ControlQuality Control
Defect Prevention.Defect Prevention. Defect Detection.Defect Detection.
Process OrientedProcess Oriented Product OrientedProduct Oriented
Identifies weaknesses in Identifies weaknesses in processes and improves processes and improves them.them.
Identifies defects for the Identifies defects for the primary purpose of primary purpose of correcting defects.correcting defects.
What Do We Test
We will perform testing first on major, important, critical and popular features and after we will test minor functionalities
TestingTesting MethodologiesMethodologies
• Functional TestingFunctional Testing• Non Functional TestingNon Functional Testing
• Black box testingBlack box testing• White box testingWhite box testing
Black box testing• No knowledge of internal program design or code
required.• 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 / program developed.
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 tools.
Smoke testing Sanity testing Exploratory testing Ad hoc testing Compatablity testing Stuctured functional testing
• 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 browsers
• 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
NON- FUNCTIONAL TYPES
PerformanceStressLoadScalabilityUsabilitySecurityPortabilityReliability
Performance testing
• 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
Testing Levels•Unit testing•Integration testing•System testing•Acceptance testing
UNIT TESTING• Tests each module individually.
• Follows a white box testing (Logic of the program).
• Done by developers. Lowest level of testing
INTEGRATION TESTING• Once all the modules have been unit tested,
integration testing is performed.
• It is systematic testing.
• Produce tests to identify errors associated with interfacing
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
working fine
Approaches in component integration testing
• Top down approach• Bottom approach • Big bang approach
Top-down 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
Bottom-Up Approach
• 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
process• Used when testing team receives entire software in a bundle
SYSTEM TESTING
• In this level we are going to validate the entire system is working as per the requirement after completing the Integration testing
• This level involves testing the whole application• This is done by testers• Individual module may work as desired but it may fail as
system• 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
requirement
Example • 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 systemLan /van communications middlewareIntranet / InternetPrinters
In this level we are following two approachesRisk based• Identifying the system integration points which are critical to
business• 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 Beta testing
• Alpha testingIn this process client will come to our place and validate the
application is working as per the brs (business requirement specification)
• Beta testing Here the application developed is tested in client location and
validate the application is working as per the brs (business requirement specification)
Validates Whether the application is fit for use Performed after st , sit or in parallel Done by customer, Business user and Independent testing
team
Manual &Automation testing
Manual 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
Automation• 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
tested• Save lot of time• Sometimes few defects may miss
What …????…is an ”ERROR”??
….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.
• Bug : The presence of error at the time of execution of the software.
• Fault : State of software caused by an error.• Failure : Deviation of the software from its expected result. It
is an event.
Bug Life Cycle
New
Assigned
Tester finds the bug and report it to Test Lead
Test Lead confirms that it is a valid BugBug
Resolved
Re-open Verified
Closed
Deferred
When to Stop testingThe 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 to occur.
• Study the code to ensure that each and every line of code is tested.
• 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 reliable