3. Software Development Life Cycle
Software Development Life Cycle is a process of
development of Software.
A Frame work that describes the activities
performed at each stage of a Software Development
Life Cycle.
4. Different Phases in SDLC
REQUIREMENT
FEASIBILITY
STUDY
DESIGN
CODING
TESTING
MAINTENANCE
5. REQUIREMENTPHASE
Testing should begin in the requirements phase of the Software
Development Life Cycle.
Requirements will be collected from the clients.
Requirements definition is the process by which the needs of the
customer are translated into a clear, detailed specification of what
the system must do
6. FEASIBILITY STUDY
Feasibility study is used to determine if the
project should get the go-head.
In this phase, the development team visits
the customer and studies their system
7. DESIGN PHASE
During design phase, testers work with developers
in determining what aspects of a design are testable
and with what parameters those tests works.
Types of design
• High level design [HLD]
• Low level design [LLD]
8. CODINGPHASE
After design we do coding.
The design must be translated into machine readable form.
Different High level programming languages like c, c++, java
are used for coding.
With respect to the type of application, the right
programming language is chosen.
9. TESTING
Once code is generated , the software program testing
begins.
Testing is nothing but catching bugs or executing the
program.
10. MAINTENANCE
A good software product should effectively respond
to the changing requirement of the customer or
user.
11. Different Phases
Project Start-up
Requirement
System Analysis
System Design
Coding & UnitTesting
System Testing
Acceptance testing
Maintenance
SRS
SAS
HLD, STS
Programs,
Documentation, Test
Results, etc.Test Result ,Defect
Logs Etc
Test Reports
Installation,
UserTraining,
System Analysts and
Users
System Analysts
System Designers
Programmers, Testers QA
team, etc
Testers, QA
Team,Development
team,etc
Client, Testers
Technical Support Team
Project plan,
standards, etc.
Project Leader, designers
12. Different SDLC Models
The Waterfall Model
The Spiral Model
The V Model
The Prototype Model
The Hybrid Model
13. The Water fall Model
REQUIREMENT
FEASIBILITY
STUDY
DESIGN
CODING
TESTING
MAINTENANCE
14. The Water fall Model
It is orderly and simple to understand
It represents a process that is easy to manage and
measure
Each phase is completed before the next is
started.
There is no scope for jumping backward or
forward or performing two steps simultaneously
Not useful for complicated systems
This can often leads to waste of time and money
15. The Spiral Model
Regarded as one of the best models
It is used when requirements are collected in step
wise
Risk analysis
Planning
Specification and design
System complexity and size grows with increasing
radius, as do investment and risk
17. Proto type model
Prototype model is nothing but dummy model
This model is used when customer is new to the field.
Once the requirement analysis is done, a prototype is made
It is then given to the customer for evaluation. The customer
tests the package and gives his/her feed back
19. V Model
This model follows both a ‘top-down’ as well as a
‘bottom-up’ approach.
In this case, both the development and testing
activities go hand-in-hand. For ex: as the
development team goes about its requirement
analysis activities, the testing team simultaneously
begins with its acceptance testing activities.
20. Hybrid Model
Combination of prototype and other model is known
as Hybrid model
Prototype model + V model and
Prototype + Spiral model
21. Agile Methodology
The principles of Agile Methodology are:
Individuals and interactions over process and tools
Working software over comprehensive documentation
Customer Collaboration over contract negotiation
Responding to Changeover following a plan.
23. Agenda
Introduction to software testing
Characteristics of a test engineer
Advantage of software testing
Why software testing is difficult
Levels of testing
Types of testing
25. Characteristics of Test Engineer
Characteristics of Test Engineer
Understand the application
Learn about development environment
Learn how to use application
Study the source code
Study requirement specification document
Understand the application is developed as set of modules
26. Levels of Testing
A Practical approach is to divide the testing process into different
levels
Levels of Testing
Unit Testing ----------
Integration Testing ----------
System Testing ----------
Acceptance Testing ---------
CODE
Customer
needs
SRS
DESIGE
27. Unit Testing
Unit testing is also known as functional testing.
This testing is use to check each behavior of a each feature’s of an
application.
Unit is the smallest entity in the software
In unit testing both positive testing and negative testing is done.
Every unit has to be tested separately to check whether it is as per
the specification
28. Integration & System Testing
The integration testing has to be done to check
whether there is a data flow between 2 module.
System testing is nothing but N to N testing.
Entire system is tested as per the requirements.
29. Test plan and Test case
Test plan is a document which contain all the
activities of testing.
Test case is the smallest unit of testing. The test
case contains information such as requirements
testing, test steps, verification steps, outputs
and test environment etc.
32. Black Box Testing
Black box testing is also known as Skin box testing or
Closed box testing.
In black box testing we do testing on application by
looking into the requirements and by looking a test case
testing is done on application.
In Black Box Testing we just focus on inputs and output
of the Software system without bothering about
internal knowledge of the software program.
33. Types of Testing
Types of Testing
Functional Non-Functional Maintenance
Unit testing Performance Regression
Integration testing Load
Smoke/Sanity Stress
User Acceptance Volume
Globalization Smoke
Localization Accessibility
34. Different Phases in SDLC
Functional testing–This black box testing type is related to
functional requirements of a system; it is done by software
testers.
Non-functional testing –This type of black box testing is not
related to testing of a specific functionality , but non-functional
requirement such as performance, usability.
Regression testing –Regression testing is done after code fixes ,
upgrades or any other system maintenance to check the new code
has not affected the existing code.
35. TYPES OF BLACK BOX TESTING
Functional testing
Integration testing
System testing
36. FUNCTIONAL TESTING
Functional testing is also known as unit testing.
This testing is used to check each behavior of a each
feature’s of an application.
Types of functional testing
Positive testing
Negative testing
37. INTEGRATION TESTING
Integration testing is done to check whether there is a
data flow between each modules.
In this phase of testing, individual modules are
combined and tested as a group.
Data transfer between the modules are tested
thoroughly.
Integration testing is carried out by the testers.
38. SYSTEM TESTING
System testing is concerned with the behavior of the system as a
whole
Unlike Integration testing , which focuses on data transfer amongst
modules System testing checks complete end to end scenarios, as
the way a customer would use the system.
System testing is nothing but N to N testing. Or end to end testing.
i.e. entire system is tested as per the requirements.
39. White Box Testing
White box testing is also known as Clear box testing or Glass box
testing.
Testing is done by the developers.
White box testing is used for testing each and every line of the code.
40. GRAY BOX TESTING
Combination of White box testing and Black box testing is
known as Gray box testing.
41. ACCEPTANCE TESTING
Is usually done at client location by the client.
Once the defects found in system testing phase is fixed.
Focuses of Acceptance Testing is not to find the defects
but to check whether the system meets their
requirements
Testing is done to ensure that user/customer to
determine whether to accept the software product.
42. Alpha testing
In Alpha testing house virtual user environment can be created
for this type of testing. Testing is done at the end of the
development. Still minor deign changes may be made as a
result of such testing.
In Alpha testing a small set of employees of the client (in case
of the bank employees )will test the application.
Deletion, modification and addition of coding can be done.
43. Beta Testing
In Beta testing , testing is typically done by end-users or
others. Final testing before releasing application for
commercial purpose.
In Beta testing a small set of customer in the case the
bank account holders will test the application.
44. Smoke /Sanity Testing
If the critical defects bare present to check that we go for
Smoke/Sanity Testing.
To avoid that we do Sanity/Smoke testing to check the critical
functionality of the system before it is accepted for major
testing.
Goal is not to find the defects but to check System health.
45. USABILITY TESTING
Testing the user friendliness of an application is
known as usability testing.
Tested by the customer.
Look and feel.
90-95% is done by testing engineer now a days.
46. ACCESSIBILITY TESTING
Verifying a product is accessible to the people having
disabilities like Blind, deaf and mentally disable is known
as Accessibility testing
47. RANDOM TESTING
It is also known as Ad-hock or Monkey testing.
In this without any test case testing is done on
application randomly.
48. COMPATIBILITY TESTING
Testing how well software performs in a
particular hardware/software/operating
system/network environment and different
combinations.
50. GLOBALIZATION TESTING
Testing an application developed in many language is known as
globalization testing.
We do testing in
Internationalization testing
Localization testing
52. Non-Functional Testing
A part from functional testing, non-functional
requirements like Performance, Usability, Load Testing
is also important.
53. PERFORMANCE TESTING
Testing the stability and response time of an application by
applying a load is known as performance testing.
Performance testing checks the response time. The goal here is to
reduce the response time to an acceptance value.
Focuses on performance parameters such as Transaction response
time, throughput etc
54. LOAD TESTING
Testing the stability and response time of an
application by applying load which is less then or equal
to desired number of users and then test the response
time .
55. STRESS TESTING
Testing the stability and response time of an application by
applying stress by more number of users and then test the
response time.
56. RECOVERY TESTING
After crashing the application we test the application to
check how well it recovers from crash is called recovery
testing
57. Test cases
Test case can be defined as sets of input parameters for which the
software will be tested.
58. REGRESSION TESTING
Adding the new feature may effect the old one so to over
come that we go for regression testing and we do repeating
testing to make the application stable….
Developermakessomechangestothesoftwaretoremovethedefe
ctfound.Itislikelythatthechangesmadeinthecodemayleadtoanot
herdefectthatmaynotbevisibleimmediately.
59. RETESTING
After doing additional testing. We find a bugs and it is sent to
the developer and after fixing the bugs, it is sent back to the
test engineer and he will test the bugs whether it is fixed or not.
60. Difference between Verification and Validation
Verification typically involves reviews, plans, code, requirement
and specifications.
Verification: Are we building the product right..
Validation typically involves actual testing and takes place after
verifications are completed.
Validation: Are we building the right product..
61. SOFTWARE QUALITY ASSURANCE
Software quality assurance (SQA) involves the entire software
development process. i.e. monitoring and improving the process.