Introduction to Software Quality & Assurance
Unit No. 1
Introduction
Objectives
After completing this session, you will be able to:
▪Define Software .
▪Define Software Quality Assurance.
▪Explain Software Quality Challenges.
Introduction to Software Quality Assurance
Bus. Comm.
▪The intelligence in totality that you provide to the computer system in order tosolve your
problems is software.
▪It is a set of instructions (program) and related data that guides the hardware and tells it
what to do and how to do it and how to accomplish each task.
▪Everythingthat“runs”onacomputerfromanoperatingsystem,programming
languages–machine-level,assembly-level,high-level,languagetranslators–
assemblers,compilers,interpreters,platforms,frameworks,documentationtoa
diagnostictool,videogame,orappissoftware.
Introduction to Software Quality Assurance Cont ..
▪The software plays a key role of a mediator between the user and the computer
hardware.
▪Itisaninvisiblecomponentofacomputersystemthatmakesitpossibleforyouto
interactwiththecomputer’sphysicalcomponents.Itiswhatallowsyoutocommunicate
withsmartphones,tablets,gameboxes,mediaplayers,andsimilardevices.
▪Softwarequalityassuranceisdefinedas:
-Allplannedandsystematicactionsnecessarytoprovideadequateconfidencethatanitem
orproductconformstoestablishedtechnicalrequirements.
-Designedtoevaluatetheprocessbywhichtheproductsaredevelopedormanufacturedit
isasetofactivities.
6
Product Development & Production
▪ProductDevelopment
▪ProductProductionPlanning
▪Manufacturing
-Duringtheabovephases,defectsinanindustrialproductcanbedetected.
9
The Software Quality Challenges Cont ..
2. Tools Being Force-fed
Nowandthen,werealizethatatoolisnottherightchoicefortheproject.Wedonothave
anyotheroptionbuttokeepusingitbecausetheclients/organizationalreadyhavelicenses
andwouldnotgoforanewoneuntilthecurrentlicenseexpires.
3. Tight Deadlines
The biggest challenge QA is to receive requests for last-minute testing. The primary reasons
for such demands are that the development process takes more time than expected and the
time for testing is underestimated.
11
Software Quality
Thequalityofsoftwarecanbedefinedastheabilityofthesoftwaretofunctionasperuser
requirement.Whenitcomestosoftwareproductsitmustsatisfy the following Factors:
1)GoodDesign–It’salwaysimportanttohaveagoodandaestheticdesigntoplease
users.
2)Reliability–Beitanysoftwareitshouldbeabletoperformthefunctionality
impeccablywithoutissues.
3)Durability-Durabilityisaconfusingterm,Inthiscontext,durabilitymeanstheabilityof
thesoftwaretoworkwithoutanyissueforalongperiodoftime.
Software Quality Cont ..
4)Consistency–Software should be able to perform consistently over platform and
devices.
5) Maintainability–Bugs associated with any software should be able to capture and fix
quickly and news tasks and enhancement must be added without any trouble
6) Value for money –Customer and companies who make this app should feel that the
money spent on this app has not gone to waste.
Software Quality Factors Management
There are various ‘checklists’ for software quality:
▪Functionalitybyevaluatingthegeneralityofthefunctionsthatarederived,thefeatureset
andtheprogramcapabilities,andtheoverallsecurityofthesystemthisismeasured.
▪Usabilityisassessedbyconsideringhumanfactors,overallaesthetics,consistencyand
documentation.
▪Byevaluatingthefrequencyandseverityoffailure,theaccuracyofoutputresults,the
meantimebetweenfailure(MTBF),theabilitytorecoverfromfailureandthe
predictabilityoftheprogramReliabilityisfiguredout.
Software Quality Factors Role in SQA
▪Asforsoftwaredevelopment,weknowthateveryprojectisdifferentandhasitsown
uniquecharacteristicsandchallenges.
▪Thereisnomagicrecipeisawell-knownfactwhenitcomestodevelopingsoftware
projectsorqualityassuranceprocesses.However,therearekeyelementstoconsider
thatcanensuregradeAqualityassurance:
1.KnowtheBusinessLogic:Therearedifferentroleswithinasoftwareproject,suchasthe
ProductOwner.Itisverycommonforthispersontohavealltheinformationregardingthe
product.Ingeneralterms,theProductOwneronlysharesinformationdirectlyrelatedtothe
partoftheprojectthatisgoingtobedeveloped.
Software Quality Factors Role in SQA
2.KnowtheProgrammingLanguage:Thereisaprogramminglanguageforeveryneed,
beitformobile,desktop,orwebapps.Thoughitisalmostimpossibletoknowall
programminglanguages,itisessentialtohaveknowledgeofthosethatapplytoprojects
thataqualityengineerwillbeworkingon.
3.LettheQualityEngineerTakeOwnership:AnimportantroleisplayedbytheProduct
Ownerineverysoftwareproject;however,itisimportantforthequalityengineertotake
ownershipoftheprojectasthiscontributestoeffectivedecisionmaking.
4.LettheQualityEngineerProvideSolutions:Fromtheverybeginningofsoftwarequality
assurance,itwasunderstoodthataqualityengineer’smaintaskwastoreporterrors.Yet
thisisonlyoneoftheirmultipletasks.
Any Questions?
Thank You!
Software Testing &
Quality Assurance
Components of Software Quality Assurance
Unit No. 2
Components of the Software Quality Assurance System
Objectives
After completing this session, you will be able to:
▪Define the Components of Software Assurance System.
▪Define the Contract Review of Software Quality Assurance.
▪Explain the Development & Quality Plans.
Components of Software Quality Assurance
▪Pre-project Components
▪Project Life Cycle Activities Assessment Components
▪ Components of Infrastructure Error Prevention and Improvement
▪Software Quality Management Component
▪ Standardization, Certification, and SQA System Assessment Components
▪The Human Components
5
Quality Plans should Define Cont ..
In the project’s quality plan,the main issues treated are:
▪Qualitygoals,expressedintheappropriatemeasurableterms.
▪Criteriaforstartingandendingeachprojectstage.
▪Listsofreviews,tests,andotherscheduledverificationandvalidationactivities.
Elements of the Development Plan
Projectproductsordeliverables:
Designdocumentsspecifyingdatesofcompletionofsoftwareproducts(specifying
completiondateandinstallationsite),trainingtasks(specifyingdates,participantsandsites),
interfaceswithexistingsoftwarepackages,interfaceswithothersoftwareand/orhardware
developmentteams(cooperationandcoordinationlinks),interfaceswithexistinghardware.
1.Project Staff Organization
2.Control Methods
Elements of the Quality Plan
▪Quality goals refer to the developed software system’s substantive quality requirements.
- Planned Review Activities.
-Planned Software Tests.
Elements of Development and Quality Plans
Elements of Development and Quality Plans for your Projects are:
▪Thedevelopmentplanshouldincludeprojectproductsindicating“deliverables”,project
benchmarks/standards,developmentrisks,estimatesofprojectcosts.
▪Thequalityplanshouldincludethequalitygoals.
Any Questions?
Thank You!
Software Testing &
Quality Assurance
SQA Components in the Project Life Cycle
Unit No. 3
Objectives
After completing this unit, you will be able to:
▪Define the Components of Software Assurance System.
▪Define Software Testing.
▪Explain the Integrating Quality Activities in the Project Life
Cycle.
Introduction Cont ..
▪SQA Components in the Project Life Cycle and Strategies.
▪Integrating Quality Activities in the Project Life Cycle.
▪Reviews
▪Software Testing –Strategies.
5
Introduction Cont ..
The two stages that comprise the project life cycle are:
1.Thedesignandprogrammingerrorsaredetectedinthedevelopmentlifecyclestage.
Reviews,Expertopinions,Softwaretesting,Assuranceofthequalityofthesub-
contractor’sworkandcustomersuppliedpartsareitscomponents.
2.Specializedmaintenancecomponentsaswellasdevelopmentlifecyclecomponents,
whichareappliedmainlyforfunctionalityimprovingmaintenancetasksareincludedin
theoperation-maintenancestage.
SQA Components in The Project Life Cycle
▪AimedatensuringqualityinsoftwareengineeringprocessesasetofactivitiesisSQAwhich
guaranteesthatthedevelopedsoftwaremeetsandconformsthedefinedorstandardized
qualityspecifications.
▪Anongoingprocesswithinthesoftwaredevelopmentlifecycle,itroutinelychecksthe
developedsoftwaretoconfirmthatitmeetsthedesiredqualitymeasures.
▪TotestthesoftwareSQAincorporatesandimplementssoftwaretestingmethodologies.Until
thesoftwareiscomplete,SQAprocessestestforqualityineachphaseofdevelopment.
▪Thesoftwaredevelopmentprocessmovesintothenextphaseonlyoncethecurrentphase
complieswiththerequiredqualitystandards.Itworkswithindustrystandardsthathelpin
buildingsoftwarequalityguidelinesandimplementationstrategies.
SQA Components in The Project Life Cycle Cont ..
A.Integrating Quality Activities in the Project Life Cycle
Testing within a life cycle model.
The characteristics of good testing include:
▪Thereisacorrespondingtestingactivityforeverydevelopmentactivity.
▪Foragiventestleveltheanalysisanddesignoftestsshouldbeginduringthe
correspondingdevelopmentactivity.
▪Inreviewingdocumentsassoonasdraftsareavailableinthedevelopmentcycletesters
shouldbeinvolved.
SQA Components in The Project Life Cycle Cont ..
B.Review
A process or meeting of project personnel, managers, users, customers or other interested parties for their
comment or approval during which a work product or set of work products is presented.
The objectives of Review are:
Direct Objectives:
▪Detectionofanalysisanddesignerrors.
▪Identificationofnewrisksthatarelikelytoaffectcompletionoftheproject.
▪Identificationofdeviationsfromtemplatesandstyleprocedures.
▪Approvaltobeprovidedfortheanalysisordesignproduct.
Indirect Objectives:
▪Forexchangeofprofessionalknowledge.
▪Recordingtheanalysisanddesignerrorsthatwillserveasabasisforfuturecorrectiveactions.
SQA Components in The Project Life Cycle Cont ..
Types of Reviews:
1. Walkthrough Review
▪Forevaluationorinformationalpurpose,itisaninformalmeeting.
▪Theauthorleadsittoagroupofcolleagues,theauthordescribeshisworkproductand
comments.
2.Technical Review/Peer Review
▪Thefocusisonachievingconsensusaboutthetechnicalcontentofadocumentina
discussionmeeting.
▪Peerandtechnicalexperts(e.g.,architects,chiefdesigners,andkeyusers)areincluded,
nomanagementparticipation.
SQA Components in The Project Life Cycle Cont ..
Types of Reviews Cont ..:
3. Inspection
▪Themostformalreviewtypethatisprescribedandsystematicwheretherolesarewell-
defined(moderator,reader,andarecorder).
▪Atrainedmoderator(notauthor)usuallyleadsit.
▪Attendeesshouldprepareforthistypeofmeetingbyreadingthroughthedocument.
▪Alogginglistisusedtodocumentthedefectsfound.
▪Theresultoftheinspectionmeetingshouldbeawrittenreport.
▪Themetricsaregatheredandanalyzedtooptimizetheprocess.
SQA Components in The Project Life Cycle Cont ..
C. Software Testing
▪Softwaretestingdeterminesthecorrectness,completenessandqualityofsoftwarebeing
developed.
▪Testingisdefinedas“theprocessofevaluatingasystemorsystemcomponentbymanualor
automatedmeanstoverifythatitsatisfiesspecifiedrequirementsortoidentifydifferences
betweenexpectedandactualresults”.
▪Softwaretestingisrelatedtoverificationandvalidation.Theprocessofensuringthatthe
softwareisdevelopedaccordingtoitsspecificationsisreferredtobyverificationwhichuses
techniqueslikereviews,analysis,inspectionsandwalkthroughs.
▪Verification:Isthesoftwarebeingdevelopedintherightway?
▪Validation:Istherightsoftwarebeingdeveloped?
SQA Components in The Project Life Cycle Cont ..
Software Testing Cont ..
To make sure that the software is functioning in accordance with the user requirements,
software testing is performed either manually or by using automated tools. Various
advantages associated with testing are listed below:
▪Removingerrorsthatpreventsoftwarefromproducingoutputsaccordingtouser
requirements.
▪Removingerrorsthatleadtosoftwarefailure.
▪Ensuringthatthesoftwareconformstobusinessaswellasuser’sneeds.
▪Ensuringthatthesoftwareisdevelopedaccordingtouserrequirements.
▪Improvingthequalityofthesoftwarebyremovingallpossibleerrorsfromit.
SQA Components in The Project Life Cycle Cont ..
▪Softwaretestingisaimedatidentifyinganybugs,errors,faults,orfailures(ifany)presentin
thesoftware.Errorscanbepresentinthesoftwareonaccountofthefollowingreasons:
▪Programmingerrors:Programmerscanmakemistakeswhiledevelopingthesourcecode.
UnclearRequirements:Theuserisnotclearaboutthedesiredrequirements,orthe
developersareunabletounderstandtheuserrequirementsinaclearandconcisemanner.
SoftwareComplexity:Thegreaterthecomplexityofthesoftware,themorethescopeof
committinganerror(especiallybyaninexperienceddeveloper).
ChangingRequirements:Theusersusuallykeeponchangingtheirrequirements,andit
becomesdifficulttohandlesuchchangesinthelaterstageofdevelopmentprocess.Therefore,
therearechancesofmakingmistakeswhileincorporatingthesechangesinthesoftware.
SQA Components in The Project Life Cycle Cont ..
TimePressures:Maintainingscheduleofsoftwareprojectsisdifficult.Whendeadlinesare
notmet,theattempttospeeduptheworkcauseserrors.
PoorlyDocumentedCode:Ifthecodeisnotwelldocumentedorwellwritten,then
maintainingandmodifyingitbecomesdifficult.Thiscauseserrorstooccur.
SQA Components in The Project Life Cycle Cont ..
The software testing objectives are:
▪Todetectdefects.
▪Todeterminethatthesoftwaresatisfiesspecifiedrequirements.
▪Todemonstratethatthesoftwareisfitforitspurpose.Thetestprocessstepsare
PlanningandControl,AnalysisandDesign,ImplementationandExecution,Reporting
andEvaluatingExitCriteria,TestClosureActivities.
SQA Components in The Project Life Cycle Cont ..
Test Planning and Control:
▪Thetestplanningandcontrolhasthefollowingmajortasks:
▪Determinethescope,risks,andthetestingobjectives.
▪Determinethetestapproach(techniques,testitems,coverage,identifyingandinterfacingwith
theteamsinvolvedintesting,testware).
▪Determinetherequiredtestresources(e.g.,people,testenvironment,PCs).
▪Scheduletestanalysisanddesigntasks,testimplementation,executionandevaluation.
▪Determinetheexitcriteriatoknowwhentestingisfinished.
▪Testcontrolisanongoingactivity.
SQA Components in The Project Life Cycle Cont ..
Test Planning and Control Cont ..
▪Monitorstatusandtakecorrectiveactionsifnecessary.
▪Testcontrolhasthetasks:Measureandanalyzetheresultsofreviewsandtesting,
monitoranddocumentprogress,testcoverageandexitcriteria,provideinformationon
testing,initiatecorrectiveactions,makedecisions:Tocontinuetesting,tostoptesting,to
releasethesoftwareortoretainitforfurtherwork.