Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

This is one of the oldest and most traditional methodologies.

It
follows a linear and sequential approach where each phase
(requirements, design, implementation, testing, deployment,
maintenance) is completed before moving on to the next. It's
rigid and doesn't accommodate changes well once a phase is
completed.
Pros
• Time savings
• good proj understanding
• every component is testable
• proactive defect tracking
• progress is tracked easily
cons
not good for big Object oriented projects
no feedback so hard to incorporate changes
no risk analysis

• Also Known as verification and Validation model


• extension of waterfall model
• testing is integrated in every phase
• verification phase (Requirement analysis, system
design,Architecture design and module design )
• validation phase (unit , integration, system ,
acceptance
Pros
• risk assessment
• risk handling
• radius of the spiral indicates the • large projects
cost • flexible
• customer satisfaction
• the angular dimension
Cons
indicates progress
• complex
• meta model
• expensive
• takes time
• needs skilled and proper team
• Agile means quick. Pros
• this mode is widely used in big tech • frequent delivery
now as it helps in harnessign market • face to face communication with
opportunities. clients
• large proj is broken into smaller • can take changes
modules (iterations) • low time
• feedback is taken into regard Cons
• low documentation
• hard to maintain
DevOps is more of a culture or philosophy rather than a
strict methodology. It emphasizes collaboration between
development and operations teams, automation of
processes, continuous integration, and continuous
delivery. DevOps aims to shorten the software
development lifecycle and improve the quality of software
releases.
Lean principles focus on maximizing customer
value while minimizing waste. It emphasizes
delivering value quickly, continuous
improvement, and eliminating activities that
don't contribute to customer value. Lean
development often overlaps with Agile
methodologies.
• Quick prototyping
• iterative development
• incremental releases
• user involvement
• time boxing
• parallel development
SOFTWARE QUALITY ASSURANCE

FACTORS AFFECTING INTENSITY OF QUALITY


ASSURANCE ACTIVITIES IN THE
DEVELOPMENT PROCESS

Presented by – Ram Rawat Presented to – Mr. Prateek Gupta


Rawat Gupta
TABLE OF CONTENT

1 Importance of quality assurance in development

2 Project Complexity

3 Team Experience and Expertise

4 Development Methodology and Organizational culture and prioritize

5 Types of application or system

6 Continuous integration and deployment practices


The Importance of Quality
Assurance in Development

Quality assurance is a critical component of the software development process, ensuring that products meet
specified requirements and standards. Robust QA practices help identify and address issues early, reducing
costly rework and enhancing the overall quality and reliability of the final application.
Project Complexity

1 Scope and Scale 2 Technical Challenges


The size and complexity of the project,
including the number of features, modules, The use of new or emerging technologies,
and integrations, can significantly impact the complex algorithms, or high-performance
intensity of quality assurance activities. requirements can increase the need for
rigorous testing and validation.

3 Interdependencies 4 User Interface Complexity


The degree of interdependence between
different components or systems can make it The complexity of the user interface, including
more challenging to isolate and test individual the number of interactive elements, the need
parts, requiring a more comprehensive for accessibility, and the variety of user
approach. scenarios, can necessitate more extensive user
testing.
Team Experience and Expertise

Varied Experience Technical Expertise Collaborative Mindset

A team with diverse experience The depth of the team's technical Effective teamwork and a
levels can bring different expertise in the specific tools, willingness to learn from each
perspectives and complementary frameworks, and programming other can enhance the quality
skills to the development process. languages is crucial. assurance efforts.
Development Methodology

1 Agile Methodology
Agile development emphasizes an iterative, flexible approach with frequent testing and
feedback. This results in more intensive quality assurance activities throughout the process.

2 Waterfall Methodology
The traditional waterfall model has a more linear development process, often with a separate
testing phase at the end. This can lead to less frequent quality assurance checkpoints.

3 Hybrid Approaches
Many organizations use a hybrid model, blending agile and waterfall elements. This can require
a balance of continuous testing and more formal quality gates.
Organizational Culture and
Priorities

A company's organizational culture and the priorities it sets can significantly


impact the intensity of quality assurance activities. An agile, innovative culture
that values continuous improvement is more likely to invest heavily in thorough
QA processes.

In contrast, organizations focused solely on speed-to-market or short-term


profitability may skimp on quality checks to meet deadlines, potentially
compromising the end product.
Type of Application or System

Safety-Critical Systems Mission-Critical Systems

Applications that directly impact human safety, Systems that are essential for the success of a
such as medical devices or transportation business or organization, like financial trading
systems, require rigorous quality assurance to platforms or enterprise resource planning (ERP)
minimize risks and ensure reliability. software, demand comprehensive QA to
prevent disruptions and maintain operational
continuity.

Regulatory Compliance
Certain industries, like healthcare or finance, have strict regulations that mandate extensive quality
assurance processes to ensure products and services meet legal and industry standards.
Continuous Integration and Deployment
Practices

Automated Continuous Continuous Monitoring and


Testing Integration Deployment Observability

Implementing robust
automated testing, Regularly merging Automatically Implementing
including unit, code changes into a deploying tested and comprehensive
integration, and end- shared repository and approved code monitoring and
to-end tests, ensures running automated changes to production observability
consistent quality and builds and tests helps environments reduces solutions provides
early detection of identify and resolve manual effort and visibility into the
issues throughout the integration problems human error, enabling health and
development quickly. faster delivery of new performance of the
lifecycle. features and bug application, enabling
fixes. proactive quality
assurance and rapid
issue resolution.
Verification, Validation, and
Qualification in Software Quality
Assurance
Ensuring Quality in Software Development
Group-25
Contributors: ANMOL YADAV (500083814), NISHA SINGH (500082858),
RISHIKA BHALLA (500083342), RAKSHIT AGARWAL (500086649)
Introduction
Software Quality Assurance (SQA) is crucial for ensuring
software products meet requirements and standards.
Verification, validation, and qualification are integral to SQA,
each playing a distinct role. This presentation provides an
overview of these components, exploring their definitions,
processes, and significance in the software development
lifecycle to ensure quality.
Defining the terms
• Verification: Verification is the process of evaluating software to determine
whether the products of a given development phase satisfy the conditions
imposed at the start of that phase. In simpler terms, it asks, "Are we building the
product right?"
• Validation: Validation is the process of evaluating software during or at the end
of the development process to determine whether it satisfies specified
requirements. It answers the question, "Are we building the right product?"
• Qualification: Qualification involves assessing whether a software product meets
predefined acceptance criteria or compliance standards. It verifies that the
software is suitable for its intended use and meets regulatory requirements.
Verification
Verification ensures software meets specifications
and fulfills its purpose, aiming to identify defects
early. It employs techniques like code reviews and
walkthroughs to maintain integrity and consistency
with requirements. Examples include code reviews
for adherence to standards and walkthroughs for
requirement understanding.
Validation

Validation ensures software meets user


requirements and expectations, confirming
its real-world usability. Techniques include
testing, simulation, and user feedback.
Examples involve functional testing to verify
behavior and gathering user feedback for
usability validation.
Verification Validation
• Focuses on checking whether the software • Focuses on ensuring that the right product
is being built correctly according to its is being built, meeting the user's needs
specifications and requirements. and expectations.
• Typically occurs during the development • Often occurs after the development
process, ensuring that each phase meets its process, testing the final product to ensure
predefined specifications. it meets user requirements.
• Involves methods such as code reviews, • Involves methods such as testing,
walkthroughs, inspections, and static simulation, prototyping, and user feedback
analysis to check documents, code, and to evaluate the actual software product.
plans. • Aims to confirm that the software satisfies
• Aims to mitigate the risk of defects by the user's requirements and functions
ensuring consistency with requirements correctly in the real-world environment.
and maintaining the integrity of the
software.
Qualification

Qualification assesses if software meets


acceptance criteria, regulations, and quality
standards for its intended use. Techniques include
compliance testing and documentation review.
Examples involve regulatory compliance testing
and documentation verification.
Verification, Validation,
and Qualification
Lifecycle

Verification, validation, and qualification ensure


software quality throughout the SDLC. They occur
iteratively in phases like requirements analysis,
design, development, testing, deployment, and
maintenance. Verification checks specifications,
validation meets user needs, and qualification
ensures compliance with standards and
regulations.
Best Practices
• Documentation and Traceability: Maintain
comprehensive documentation of verification,
validation, and qualification activities to ensure
traceability and accountability.
• Continuous Integration and Testing: Implement
continuous integration and testing processes to
detect defects early and ensure ongoing software
quality.
• Collaboration and Communication: Foster
collaboration and communication among
development teams, stakeholders, and end-users
to ensure alignment with requirements and
expectations.
• Feedback and Improvement: Gather feedback
from stakeholders and end-users to identify areas
for improvement and incorporate lessons learned
into future development cycles.
Conclusion
In summary, verification, validation, and
qualification serve as essential
foundations of software quality
assurance, with each fulfilling a critical
role in guaranteeing the quality,
reliability, and adherence to standards of
software products.
Through the establishment of robust
verification, validation, and qualification
procedures, organizations can effectively
manage risks, improve customer
satisfaction, and attain significant success
in delivering top-notch software
solutions.
Unveiling a Model for SQA: Defect
Removal , Effectiveness , and Cost

Group Number - 1
Members :Ridhima Agrawal- 500082715
N a m a n G a rg - 500083734
Prince Banger - 500083047
Introduction
In the ever-evolving landscape o f Attention is drawn to th e pioneerin g
efforts of I B M in th e 19 70 s , where
software development, the pursuit
meticulous analyses were conducted to
of quality remains a paramount
un derstand th e intricacies o f software
objective. As software system s quality. Today, as the intricacies of
have g rown in scale and Software Quality Assurance (SQA) are
complexity, the challeng e of explored, inspiration is drawn from I BM' s
effectively m anag ing defects h as pioneering legacy. The focus extends
become increasingly critical. beyond mere defect detection to explore
the effectiveness of defect removal
strategies and their associated costs.
Low Quality Defect Removal Efficiency
Defect Removal is mainly done on the basis of 4
M odel for Defect Removal c o m m o n forms of testing.

The correlation between the ● Unit Test


● Function Test
number of bugs found ● Regression Test
externally (by users) and the ● System Test

number of bugs found inside Before being released, this procedure typically
yields low defect efficiency. For h i gh levels of
(by testers and software defect removal efficiency, testing alone —
testing) is used to compute without preceding inspections or static
Defect Removal Efficiency. analysis—is typically insufficient .

A product that just has a small number of known


flaws eliminated should not come from any real
engineering field. Nonetheless, software
applications typically provide outcomes like
these.
High Quality Defect Removal Efficiency
In this method inspections are done prior to
M odel for Defect Removal testing phase. This provide the user with certain
advantages.
A popular software quality
statistic called Defect ● Fewer potential defects.
● Increase in defect removal efficiency.
Removal Efficiency (DRE) ● Fewer bad fix injections.
evaluates how well a testing
This approach not only increases the
procedure finds an d effectiveness of our inspections in identifying
removes errors or defects flaws, but it also raises the bar for each test
from software during the stage's efficiency when combined with the
official Team Software Process.
product 's developm ent
lifetime. Contracts for software outsourcing should most
likely include clauses requiring such levels of
bug eradication efficiency.
Metrics and Strategies
Effectiveness
In measuring effectiveness, Software Quality
In Software Quality Assurance Assurance (SQA) relies on various metrics such as
(SQA), effectiveness denotes the
capability of defect removal ● Defect Density
● Defect Removal Efficiency
strategies to successfully eliminate
● Defect Escape Rate
or mitigate software defects. This
effectiveness is pivotal as it directly These metrics provide quantitative insights into the
influences th e reliability, performance of defect removal strategies, enabling
functionality, and usability of teams to gauge their effectiveness accurately.
software products. By ensuring the
To achieve optimal results, SQA strategies
thorough removal of defects, encompass a multifaceted approach, including
organ izations can enh ance comprehensive testing protocols , proactive defect
customer satisfaction, minimize prevention measures, and streamlined defect triage
rework costs, and maintain a and resolution processes. These strategies
competitive edge in the market. collectively contribute to enhancing the overall
quality and reliability of software products.
Cost Considerations in SQA Cost management in Software Quality
Assurance (SQA) encompasses various
factors, including personnel, toolin g,
● Factors: Personnel, Tools,
infrastructure, and time investments.
Infrastructure, Time Effective cost ma nageme nt is crucial for
optimizing resources and maximizing return
● Importance: Optimization, ROI on investment (ROI) in SQA activities.
Through thorough cost-benefit analysis,
● Analysis: Cost-Benefit organizations can evaluate expenses against
benefits such as reduced maintenance costs
● Trade-offs: Quality vs. Cost and improved customer satisfaction.
● Continuous Improvement Balancing cost and quality involves
navigating trade-offs while continuously
refin in g strateg ies to adapt to evolvin g
project requirements and technological
advancements.
In conclusion, our exploration of Software
Conclusion Quality Assurance (SQA) has underscored
the pivotal role of effective defect
Key Points: m anagem ent and cost optim ization in
en surin g th e delivery of high -quality
● Defect Management software products. From IB M ' s
● Cost Optimization fo un dation al insights to contemporary
models, we've witnessed the evolution of
● Evolution of SQA
SQA and its enduring relevance in the
● Continuous Improvement
ever- ch an g in g landscape o f software
● Collaboration development. As we move forward, let's
● Innovation rem ain com m itted to continuous
improvement , fostering collaboration,
and driving innovation to m eet th e
evolving demands of the industry.
Review objectives, Formal design reviews (DRs), Peer
reviews, a comparison of the team review methods,
Expert opinions.

By – Group-14
WHAT ARE
REVIEWS?
• Reviews are a “filter” for the software
process. reviews are applied at various points
during software engineering and serve to
uncover errors and defects that can then be
removed.
• Helps to purify software engineering work
products. including requirements and
design models, code, and testing data.
Review Objectives
Being an integral part of the software
engineering process, the following are some
of the objectives to fulfil in by a software
review.
• Quality Assurance
• Validation of Requirements
• Improvement of Code and Design
• Continuous Improvement
Formal Design Reviews (DR’s):
Formal Design Reviews (DR's) are structured evaluations conducted
during the software development process to ensure that the design meets
specified requirements and quality standards.
Key Components of Formal Design Reviews:

• Preparation: Gather relevant documentation, including design


specifications, requirements, and standards, to be reviewed.
• Review Meeting: Conduct a structured meeting where
stakeholders, including designers, developers, testers, and project
managers, evaluate the design.
• Documentation: Document feedback, decisions, and action items
arising from the review for future reference and tracking.
Benefits of formal DR’s
• Improved Quality: Enhance the overall quality and reliability of the software by
identifying and rectifying design issues early in the development process.
• Cost Savings: Avoid costly rework and delays by addressing design defects before
implementation.
• Enhanced Communication: Promote collaboration and communication among team
members, fostering a shared understanding of the design and project objectives.
• Risk Management: Mitigate project risks by proactively addressing design-related
challenges and ensuring compliance with standards and regulations.

By following best practices and leveraging the benefits of formal reviews, organizations can enhance
their software development processes and deliver high-quality products that meet customer expectations.
Peer Reviews:
Peer reviews are a crucial component of the software development process, focusing on the
collaborative evaluation of work products by team members.

Why do Peer Reviews?


• Identify defects early
• Improve quality through feedback
• Share knowledge and ensure consistency

Types of peer reviews:


• Code Reviews
• Document Reviews
• Test Case Reviews
• Pair Programming
Comparison of different team
review methods:

Review Methods Description Advantages Disadvantages


Peer Reviews Collaborative evaluations of work products • Diverse perspectives improve • May be time-consuming
by team members, including code, quality • Relies on availability and expertise of
documents, and test cases. • Facilitates knowledge sharing and team members
skill development
• Enhances team collaboration
Pair Programming Collaborative programming technique • Real-time collaboration improves • Requires continuous coordination and
where two developers work together on the code quality communication
same code. • Immediate feedback on design • May not be suitable for all tasks or
decisions and implementation team dynamics
choices
Formal Inspections Structured, formalized reviews conducted • Thorough evaluation identifies • Requires dedicated time and resources
by a designated inspection team. defects early for preparation and execution
• Ensures adherence to standards and • May be perceived as bureaucratic or
regulations inflexible
Walkthroughs Informal reviews where a developer • Encourages open discussion and • May lack structure and consistency in
presents their work to other team members collaboration evaluation
for feedback. • Provides immediate feedback on • Feedback may be subjective and
design decisions and inconsistent
implementation approaches

You might also like