Software Testing - Day 4
Software Testing - Day 4
1
Syllabus
Day 1 Day 2 Day 3 Day 4
• Introduction to testing • Testing as a career • Types of applications • QA vs QC
• Why software testing • Qualities of a tester • Verification vs Validation • SDLC
• Importance of software testing • Principles of testing • Advantages & disadvantages of SDLC
2
Agenda | Day 4
• Software Quality
• QA vs QC
• Software Development Life Cycle (SDLC)
• Software Development Life Cycle Models
• Waterfall Model
• Waterfall Model (Advantages & Disadvantages)
• V - Model
• V - Model (Advantages & Disadvantages)
• Spiral Model
• Spiral Model (Advantages & Disadvantages)
3
Software Quality
There exist several definitions of software quality. Also, one quality attribute might be more
important to a user than another. In any case, software quality is a multidimensional quantity and is
measurable.
4
QA vs QC
Quality Assurance:
• Quality assurance activities are work process oriented.
• They measure the process, identify deficiencies, and suggest improvements.
• The direct results of these activities are changes to the process.
• These changes can range from better compliance with the process to entirely new processes.
• The output of quality control activities is often the input to quality assurance activities.
• Audits are an example of a QA activity which looks at whether and how the process is being
followed. The end result may be suggested improvements or better compliance with the process.
Quality Control:
• Quality control activities are work product oriented.
• They measure the product, identify deficiencies, and suggest improvements.
• The direct results of these activities are changes to the product.
• These can range from single-line code changes to completely reworking a product from design.
• They evaluate the product, identify weaknesses and suggest improvements.
• Testing and reviews are examples of QC activities since they usually result in changes to the
product, not the process.
• QC activities are often the starting point for quality
5
assurance (QA) activities
Software Development Life Cycle (SDLC)
Software Development Life Cycle (or SDLC) is the process which is followed to develop a software
product. It is a structured way of building software applications. Most organizations have a process in
place for developing software; this process may, at times, be customized based on the organizations
requirement and framework followed by organization.
SDLC Phases
• The software development life cycle (SDLC) is a framework defining tasks performed at each step in
the software development process.
• It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance
specific software.
• The life cycle defines a methodology for improving the quality of software and the overall
development process.
• The picture on next slide depicts the phases that are
6
part of a software development cycle.
Software Development Life Cycle (SDLC)
Requirement
Design Development Testing Deployment Maintenance
Gathering
7
Software Development Life Cycle (In detail)
Requirement Gathering In this phase the main priority is given for collecting requirement. A
Software Requirement Specification or SRS is a document which records expected behavior of the
system or software which needs to be developed. Collect detailed requirements from the data you
have such as target end-users' needs, stakeholders' demands, etc., you’ll identify both functional and
non-functional requirements to create a comprehensive Product Requirement Document.
Design Software design is the blueprint of the system, which once completed can be provided to
developers for code development. Based on the components in design, they are translated into
software modules/functions/libraries, etc. and these pieces together form a software system.
Development During this phase, the blueprint of the software is turned to reality by developing the
source code of the entire application. Time taken to complete the development depends on the size
of the application and number of programmers involved.
Testing In this phase testing activity is carried out to validate the actual result compared to expected
result. This is a very critical phase which ensures the overall quality of the application.
Deployment After the product is successfully made and testing is completed then the product/
application is deployed to live environment for end users. Ensure all necessary hardware, software,
and configurations are in place.
Maintenance This is a post deployment phase which ensures Patch and Update Releases for
continuous enhancements and new features and solving the user concerns.
8
Software Development Life Cycle Models
9
Waterfall Model
In the Waterfall model, the different phases of the
software development life cycle are explicitly
recognized as mentioned in picture.
In this model, the project takes a straight-line path. Since
different phases are explicitly recognized, the finalization of
the Contract is seen with reference to delivery and payment
schedules of different phases.
The waterfall model is the oldest and most widely used in software
development life cycle. It is also known as sequential model. Each phase
must be completed before the next phase begins. At the end of each review
takes place to determine if the project is on the right track or not.
Since requirement validation is not done in an explicit manner, it may result in design and
development of large quantities of unusable code. It may also result in extensive rework
later, as document-driven standards, force elaborate specifications of poorly understood
user interfaces and decision- support functions.
10
Waterfall Model (Advantages & Disadvantages)
Advantages
Below are some of the advantages of the Waterfall Model,
• Simple and easy to use.
• Easy to manage due to the rigidity of the model – each phase has specific deliverable and a
review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well understood.
Disadvantages
• Adjusting scope during the life cycle can kill a project.
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Poor model for complex and object-oriented projects.
• Poor model where requirements are at a moderate to high risk of changing.
11
V - Model
V - model is a sequential path of
execution of processes. Each
phase must be completed
before the next phase begins.
Testing is emphasized in this
model more so than the
waterfall model though. The
testing procedures are
developed early in the life cycle
before any coding is done,
during each of the phases
preceding implementation.
Testing of the product is planned
in parallel with a corresponding
phase of development.
12
V - Model (Advantages & Disadvantages)
Advantages
• Simple and easy to use.
• Each phase has specific deliverable.
• Higher chance of success over the waterfall model due to the development of test plans early
on during the life cycle.
• Works well for where requirements are easily understood.
Disadvantages
• Very inflexible, like the waterfall model.
• Little flexibility and adjusting scope is difficult and expensive.
• Software is developed during the implementation phase, so no early prototypes of the
software are produced.
• Model does not provide a clear path for problems found during testing phases.
13
Spiral Model
In Spiral model the project moves in iterative
way starts with the analysis phase, then
proceeds towards design, moves back to
analysis and then design, followed by coding
(version 1.0) and back to design and so forth.
The basic idea behind this model is that one can
start on a small scale, in the middle of the core
functionality, explore the risks (such as poorly
understood requirements, performance
problems, problems in underlying technology
etc.) and then make a plan to handle the risks.
This should be followed by a commitment to
approach, for the next iteration. Each iteration
moves your project to a larger scale. One layer
of the project is rolled first, to check what was
actually wanted, and then, work on the next
layer is started.
14
Spiral Model (Advantages & Disadvantages)
Advantages
• Good for large projects and also for medium to high-risk projects.
• High amount of risk analysis hence avoidance of risk is enhanced.
• String approval and documentation control.
• Additional functionality can be added at a later date.
• Software is produced early in the software life cycle.
Disadvantages
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk analysis phase.
• Doesn’t work well for smaller projects.
15
Thank You!
16