THESOFTWAREDEVELOPMENT LIFE
CYCLE(SDLC)
It isa structured process that enables the production
of high-quality, low-cost software, in the shortest
possible production time.
The goal of the SDLC is to produce superior software
that meets
2
3
SOFTWAREDEVELOPMENT LIFECYCLE
DEFECT/BUGLIFECYCLEINSOFTWARETESTING
It is the specific set of states that defect or bug goes
through in its entire life.
The purpose is to easily coordinate and communicate
current status of defect which changes to various
assignees and make the defect fixing process
systematic and efficient.
Defect Statusor Bug Status is the present state from
which the defect or a bug is currently undergoing.
The goal is to precisely convey the current state or
progress of a defect or bug in order to better track and
understand the actual progress of the defect life cycle.
4
5
DEFECTSTATESWORKFLOW
The number of states that a defect goes through varies from project
to project
New:When a new defect is logged and posted for the first time. It
is assigned a status as NEW.
Assigned:Once the bug is posted by the tester, the lead of the
tester approves the bug and assigns the bug to the developer team
Open: The developer starts analyzing and works on the defect fix
Fixed: When a developer makes a necessary code change and
verifies the change, he or she can make bug status as “Fixed.”
Pending retest: Once the defect is fixed the developer gives a
particular code for retesting the code to the tester. Since the
software testing remains pending from the testers end, the status
assigned is “pending retest.”
Retest: Tester does the retesting of the code at this stage to check
whether the defect is fixed by the developer or not and changes the
status to “Re-test.”
6
8
WHATISQUALITYMANAGEMENT ?
Quality Management–ensuring that required level of product quality is achieved
• Defining procedures and standards
• Applying procedures and standards to the product and process
• Checking that procedures are followed
• Collecting and analyzing various quality data
Problems:
• Intangible aspects of software quality can’t be standardized (i.eelegance
and readability)
WHYQUALITYISIMPORTANT?
Why business should be concerned with quality:
Quality is competitive issue now
Quality is a must for survival
Quality gives you the global reach
Quality is cost effective
Quality helps retain customers and increase profits
Quality is the hallmarks of world-class business
10
WHATARESQA, SQP, SQC, ANDSQM?
SQA includes all 4 elements…
•Software Quality Assurance–establishment of network of
organizational procedures and standards leading to high-
quality software
2.Software Quality Planning–selection of appropriate
procedures and standards from this framework and adaptation
of these to specific software project
3.Software Quality Control–definition and enactment of
processes that ensure that project quality procedures and
standards are being followed by the software development
team
4.Software Quality Metrics–collecting and analyzing quality
data to predict and control quality of the software product
being developed
ELEMENTS OFSQA
1.SoftwareQualityAssurance–establishmentofnetworkof
organizationalproceduresandstandardsleadingtohigh-
qualitysoftware
2.SoftwareQualityPlanning–selectionofappropriateprocedures
andstandardsfromthisframeworkandadaptationoftheseto
specificsoftwareproject
3.SoftwareQualityControl–definitionandenactmentof
processesthatensurethatprojectqualityproceduresandstandards
arebeingfollowedbythesoftwaredevelopmentteam
4.SoftwareQualityMetrics–collectingandanalyzingqualitydata
topredictandcontrolqualityofthesoftwareproductbeing
developed
GOALSOFSQA
1. to improve software quality by monitoring both the process
and the product
2. to ensure compliance with all local standards for SE
3. to ensure that any product defect, process variance, or
standards non-compliance is noted and fixed
MAJORSOFTWAREQUALITYASSURANCEACTIVITIES:
1. SQA Management Plan:
Make a plan for how you will carry out the SQA through out the project.
Think about which set of software engineering activities are the best for project. check
level of SQAteam skills.
2. Set The Check Points:
SQA team should set checkpoints.
Evaluate the performance of the project on the basis of collected data on different check
points.
3. Multi testing Strategy:
Do not depend on a single testing approach.
When you have a lot of testing approaches available use them.
4. Measure Change Impact:
The changes for making the correction of an error sometimes re introduces more errors
keep the measure of impact of change on project.
Reset the new change to change check the compatibility of this fix with whole project.
5. Manage Good Relations:
In the working environment managing good relations with other teams involved in the
project development is mandatory.
Bad relation of SQAteam with programmers team will impact directly and badly on
project. Don’t play politics.
QUALITYIMPROVEMENT –THEWHEELOF6 SIGMA
Six Sigma
QUALITYIMPROVEMENT –SIXSIGMAPROCESS
• Visualize–Understand how it works now and imagine how it will work in the future
• Commit–Obtain commitment to change from the stakeholders
• Prioritize–Define priorities for incremental improvements
• Characterize–Define existing process and define the time progression for
incremental improvements
• Improve–Design and implement identified improvements
• Achieve–Realize the results of the change
BENEFITSOFSOFTWAREQUALITYASSURANCE
1.SQA produces high quality software.
2.High quality application saves time and cost.
3.SQA is beneficial for better reliability.
4.SQA is beneficial in the condition of no maintenance
for a long time.
5.High quality commercial software increase market
share of company.
6.Improving the process of creating software.
7.Improves the quality of the software.
MEASURES OFSOFTWAREQUALITYASSURANCE
1.Reliability –
It includes aspects such as availability, accuracy, and recoverability of system to
continue functioning under specific use over a given period of time. For example,
recoverability of system from shut-down failure is a reliability measure.
2.Performance –
It means to measure throughput of system using system response time, recovery time,
and start up time. It is a type of testing done to measure performance of system under
a heavy workload in terms of responsiveness and stability.
3.Functionality –
It represents that system is satisfying main functional requirements. It simply refers
to required and specified capabilities of a system.
4.Supportability –
There are a number of other requirements or attributes that software system must
satisfy. These include-testability, adaptability, maintainability, scalability, and so on.
These requirements generally enhance capability to support software.
5.Usability –
It is capability or degree to which a software system is easy to understand and used
by its specified users or customers to achieve specified goals with effectiveness,
efficiency, and satisfaction. It includes aesthetics, consistency, documentation, and
responsiveness.
SOFTWARE QUALITYCONTROL
Qualitycontrolisdefinedas
“asetofactivitiesdesignedtoevaluatethequality
ofadevelopedormanufacturedproduct”
qualitycontrolinspectionandotheractivitiestakeplace
beforetheproductisshippedtotheclient
prevents causes of errors, and detect and correct them
early in the development process.
reduces the rate of products that do not qualify for
shipment.
Quality control and quality assurance activities serve
different objectives.
METHODS OFSOFTWAREQUALITYCONTROL
SQCinvolves overseeing the software development process to ensure that the
procedures and STD’s are being followed
The following activities constitute SQC:
Quality Reviews -in-process reviews of processes and products
Reviews are the most widely used method of validating the quality of processes
and products.
Reviews make quality everyone's responsibility.
Quality must be built-in. SQE is responsible for writing Quality Engineering
Records (QERs) documenting their participation in these reviews.
Tests -end-result verifications of products. These verifications are conducted
after the software has been developed.
Test procedures are followed during conduct of these activities. SQE is
responsible for keeping the logs and some times for writing the test report.
Quality Audits -in-process verifications of processes.
These audits are conducted periodically (twice a month) to assess compliance to
the process STD’s.
TESTS
Engineering Dry-run-test conducted by engineering without SQE.
These tests include Unit Tests and engineering dry-runs of the formal tests.
These engineering dry-runs are used to verify correctness and completeness of the
test procedures.
Also, these is the final engineering verification of the end-product before sell-off to
SQE.
All issues found during these tests are documented on STR forms.
SQE Dry-run-test conducted by SQE.
These tests include PQT, FAT and SAT dry-runs.
These tests are used to verify the end-product before the formal test with the
customer.
An SQE is sometimes responsible for writing the test report.
However, if a separate test group is available, then SQE is relived of this obligation.
All issues found during these tests are documented on STR forms.
TFR-test conducted as “RFR -run-for-record” with the SQE and the
customer.
These tests include FAT and SAT.
These tests are conducted to sell the end-product off to the customer.
SQE is present at all such tests.
All issues found during these tests are documented on STR forms.
QUALITYAUDITS
SQE Audits-audits conducted by SQE to verify that the process STD’s are
being followed.
Examples of these audits are IPDS compliance, Configuration Control, and
Software Engineering Management.
All findings for these audits are documented on QER forms.
The results of the audits are distributed to the next level of management
(above project level).
If the issue(s) are not fixed then the findings are elevated to upper
management.
Independent Audits-audits conducted by ISO generalists or other
independent entities to verify that the process STD’s are being followed.
These audits are usually conducted on a division/facility level.
The results of these audits are distributed to upper management.
THEPROCESSOFPRODUCTMEASUREMENT
29
1. Decide what data is to be collected
2. Assess critical (core) components first
3. Measuring component characteristics might require automated tools
4. Look for consistently (unusuallyonly works in a factory) high or low values
5. Analysis of anomalous components should reveal if the quality of product is
compromised
PREDICTOR ANDCONTROLMETRICS
30
Examples of Predictor Analysis:
• Code Reuse: SLOC = ELOC = Ported Code
• Nesting Depth: ND > 5 = Low Readability
• Risk Analysis: # STR P1 > 0 at SAT = Low Product Reliability
Examples of Control Analysis:
• STR aging: Old STRs = Low Productivity
• Requirements Volatility: High Volatility = Scope Creep
32
THEILITIES
The specific metrics that are relevant
depend on the on the project, the
goals of the SQA, and the type of SW
that is being
developed.
DEFECTPREVENTION
Defect Prevention–establishment of practices that lower the reliance on defect detection
techniques to find majority of the bugs
• Lessons learned–learning from other peoples experiences and sharing own
experiences with the other projects
• Managing With Metrics–collecting the metrics, understanding it, and making
changes to the product or process based on analysis.
• Metrics must be standardizedto be effective.
• Risk Analysis–identifying potential risks and opportunities early in the
program and tracking them to realization.
• Build freeze–no changes are made to the code during formal tests.
• Unit-level testing guidelines–test plans and procedures for each UT
• Baseline acceptance criteria–establishment of closure criteria in advance
(i.e. no P1 STRs at FAT TRR)
COSTOFQUALITY(COQ)
It is defined as a methodology that allows an organization to
determine the extent to which its resources are used for
activities that prevent poor quality, that appraise the quality of
the organization's products or services, and that result from
internal and external failures.
Basically, the costs of software quality (COSQ) arethose costs
incurred through both meeting and not meeting the customer's
quality expectations.
In other words, there are costs associated with defects, but
producing a defect-free product or service has a cost as well
34
The cost of poor quality affects:
Internal and external costs resulting from failing to meet
requirements.
The cost of good quality affects:
Costs for investing in the prevention of non-conformance to
requirements.
Costs for appraising a product or service for conformance to
requirements.
CATEGORIES TOMEASURE COSTOFQUALITY
1.Prevention costsinclude cost of training developers on
writing secure and easily maintainable code
2.Detection costsinclude the cost of creating test cases,
setting up testing environments, revisiting testing
requirements.
3.Internal failure costsinclude costs incurred in fixing
defects just before delivery.
4.External failure costsinclude product support costs
incurred by delivering poor quality software.
37
INTERNALFAILURECOSTS
Examples include the costs for:
Rework
Delays
Re-designing
Shortages
Failure analysis
Re-testing
Downgrading
Downtime
Lack of flexibility and adaptability
EXTERNALFAILURECOSTS
Examples include the costs for:
Complaints
Repairing goods and redoing services
Warranties
Customers’ bad will
Losses due to sales reductions
Environmental costs
PREVENTION COSTS
Examples include the costs for:
Quality planning
Supplier evaluation
New product review
Error proofing
Capability evaluations
Quality improvement team meetings
Quality improvement projects
Quality education and training
APPRAISALCOSTS
Examples include the costs for:
Checking and testing purchased goods and services
In-process and final inspection/test
Field testing
Product, process or service audits
Calibration of measuring and test equipment
classifies all software requirements into 11 software
quality factors.
The 11 factors are grouped into three categories –
product operation, product revision and
product transition –as follows:
Product Operation Factors
How well it runs….
Correctness, reliability, efficiency, integrity, and usability
Product Revision Factors
How well it can be changed, tested, and redeployed.
Maintainability;flexibility;testability
Product Transition Factors
How well it can be moved to different platforms and interface
with other systems
Portability;Reusability;Interoperability