Beruflich Dokumente
Kultur Dokumente
https://www.tutorialspoint.com/software_engineering/software_testing_overview.htm
Copyrighttutorialspoint.com
SoftwareTestingisevaluationofthesoftwareagainstrequirementsgatheredfromusersandsystem
specifications.Testingisconductedatthephaselevelinsoftwaredevelopmentlifecycleoratmodulelevelin
programcode.SoftwaretestingcomprisesofValidationandVerification.
SoftwareValidation
Validationisprocessofexaminingwhetherornotthesoftwaresatisfiestheuserrequirements.Itiscarriedoutat
theendoftheSDLC.Ifthesoftwarematchesrequirementsforwhichitwasmade,itisvalidated.
Validationensurestheproductunderdevelopmentisaspertheuserrequirements.
Validationanswersthequestion"Arewedevelopingtheproductwhichattemptsallthatuserneedsfrom
thissoftware?".
Validationemphasizesonuserrequirements.
SoftwareVerification
Verificationistheprocessofconfirmingifthesoftwareismeetingthebusinessrequirements,andisdeveloped
adheringtotheproperspecificationsandmethodologies.
Verificationensurestheproductbeingdevelopedisaccordingtodesignspecifications.
Verificationanswersthequestion"Arewedevelopingthisproductbyfirmlyfollowingalldesign
specifications?"
Verificationsconcentratesonthedesignandsystemspecifications.
Targetofthetestare
ErrorsTheseareactualcodingmistakesmadebydevelopers.Inaddition,thereisadifferenceinoutput
ofsoftwareanddesiredoutput,isconsideredasanerror.
FaultWhenerrorexistsfaultoccurs.Afault,alsoknownasabug,isaresultofanerrorwhichcancause
systemtofail.
Failurefailureissaidtobetheinabilityofthesystemtoperformthedesiredtask.Failureoccurswhen
faultexistsinthesystem.
ManualVsAutomatedTesting
Testingcaneitherbedonemanuallyorusinganautomatedtestingtool:
ManualThistestingisperformedwithouttakinghelpofautomatedtestingtools.Thesoftwaretester
preparestestcasesfordifferentsectionsandlevelsofthecode,executesthetestsandreportstheresultto
themanager.
Manualtestingistimeandresourceconsuming.Thetesterneedstoconfirmwhetherornotrighttestcases
areused.Majorportionoftestinginvolvesmanualtesting.
AutomatedThistestingisatestingproceduredonewithaidofautomatedtestingtools.Thelimitations
withmanualtestingcanbeovercomeusingautomatedtesttools.
AtestneedstocheckifawebpagecanbeopenedinInternetExplorer.Thiscanbeeasilydonewithmanual
testing.Buttocheckifthewebservercantaketheloadof1millionusers,itisquiteimpossibletotestmanually.
Therearesoftwareandhardwaretoolswhichhelpstesterinconductingloadtesting,stresstesting,regression
testing.
TestingApproaches
Testscanbeconductedbasedontwoapproaches
Functionalitytesting
Implementationtesting
Whenfunctionalityisbeingtestedwithouttakingtheactualimplementationinconcernitisknownasblackbox
testing.Theothersideisknownaswhiteboxtestingwherenotonlyfunctionalityistestedbutthewayitis
implementedisalsoanalyzed.
Exhaustivetestsarethebestdesiredmethodforaperfecttesting.Everysinglepossiblevalueintherangeofthe
inputandoutputvaluesistested.Itisnotpossibletotesteachandeveryvalueinrealworldscenarioiftherange
ofvaluesislarge.
Blackboxtesting
Itiscarriedouttotestfunctionalityoftheprogram.ItisalsocalledBehavioraltesting.Thetesterinthiscase,
hasasetofinputvaluesandrespectivedesiredresults.Onprovidinginput,iftheoutputmatcheswiththe
desiredresults,theprogramistestedok,andproblematicotherwise.
Inthistestingmethod,thedesignandstructureofthecodearenotknowntothetester,andtestingengineersand
endusersconductthistestonthesoftware.
Blackboxtestingtechniques:
EquivalenceclassTheinputisdividedintosimilarclasses.Ifoneelementofaclasspassesthetest,itis
assumedthatalltheclassispassed.
BoundaryvaluesTheinputisdividedintohigherandlowerendvalues.Ifthesevaluespassthetest,it
isassumedthatallvaluesinbetweenmaypasstoo.
CauseeffectgraphingInbothpreviousmethods,onlyoneinputvalueatatimeistested.Causeinput
Effectoutput isatestingtechniquewherecombinationsofinputvaluesaretestedinasystematicway.
PairwiseTestingThebehaviorofsoftwaredependsonmultipleparameters.Inpairwisetesting,the
multipleparametersaretestedpairwisefortheirdifferentvalues.
StatebasedtestingThesystemchangesstateonprovisionofinput.Thesesystemsaretestedbasedon
theirstatesandinput.
Whiteboxtesting
Itisconductedtotestprogramanditsimplementation,inordertoimprovecodeefficiencyorstructure.Itisalso
knownasStructuraltesting.
Inthistestingmethod,thedesignandstructureofthecodeareknowntothetester.Programmersofthecode
conductthistestonthecode.
ThebelowaresomeWhiteboxtestingtechniques:
ControlflowtestingThepurposeofthecontrolflowtestingtosetuptestcaseswhichcoversall
statementsandbranchconditions.Thebranchconditionsaretestedforbothbeingtrueandfalse,sothat
allstatementscanbecovered.
DataflowtestingThistestingtechniqueemphasistocoverallthedatavariablesincludedinthe
program.Ittestswherethevariablesweredeclaredanddefinedandwheretheywereusedorchanged.
TestingLevels
TestingitselfmaybedefinedatvariouslevelsofSDLC.Thetestingprocessrunsparalleltosoftware
development.Beforejumpingonthenextstage,astageistested,validatedandverified.
Testingseparatelyisdonejusttomakesurethattherearenohiddenbugsorissuesleftinthesoftware.Software
istestedonvariouslevels
UnitTesting
Whilecoding,theprogrammerperformssometestsonthatunitofprogramtoknowifitiserrorfree.Testingis
performedunderwhiteboxtestingapproach.Unittestinghelpsdevelopersdecidethatindividualunitsofthe
programareworkingasperrequirementandareerrorfree.
IntegrationTesting
Eveniftheunitsofsoftwareareworkingfineindividually,thereisaneedtofindoutiftheunitsifintegrated
togetherwouldalsoworkwithouterrors.Forexample,argumentpassinganddataupdationetc.
SystemTesting
Thesoftwareiscompiledasproductandthenitistestedasawhole.Thiscanbeaccomplishedusingoneor
moreofthefollowingtests:
FunctionalitytestingTestsallfunctionalitiesofthesoftwareagainsttherequirement.
PerformancetestingThistestproveshowefficientthesoftwareis.Itteststheeffectivenessandaverage
timetakenbythesoftwaretododesiredtask.Performancetestingisdonebymeansofloadtestingand
stresstestingwherethesoftwareisputunderhighuseranddataloadundervariousenvironment
conditions.
Security&PortabilityThesetestsaredonewhenthesoftwareismeanttoworkonvariousplatforms
andaccessedbynumberofpersons.
AcceptanceTesting
Whenthesoftwareisreadytohandovertothecustomerithastogothroughlastphaseoftestingwhereitis
testedforuserinteractionandresponse.Thisisimportantbecauseevenifthesoftwarematchesalluser
requirementsandifuserdoesnotlikethewayitappearsorworks,itmayberejected.
AlphatestingTheteamofdeveloperthemselvesperformalphatestingbyusingthesystemasifitis
beingusedinworkenvironment.Theytrytofindouthowuserwouldreacttosomeactioninsoftwareand
howthesystemshouldrespondtoinputs.
BetatestingAfterthesoftwareistestedinternally,itishandedovertotheuserstouseitundertheir
productionenvironmentonlyfortestingpurpose.Thisisnotasyetthedeliveredproduct.Developers
expectthatusersatthisstagewillbringminuteproblems,whichwereskippedtoattend.
RegressionTesting
Wheneverasoftwareproductisupdatedwithnewcode,featureorfunctionality,itistestedthoroughlytodetect
ifthereisanynegativeimpactoftheaddedcode.Thisisknownasregressiontesting.
TestingDocumentation
Testingdocumentsarepreparedatdifferentstages
BeforeTesting
Testingstartswithtestcasesgeneration.Followingdocumentsareneededforreference
SRSdocumentFunctionalRequirementsdocument
TestPolicydocumentThisdescribeshowfartestingshouldtakeplacebeforereleasingtheproduct.
TestStrategydocumentThismentionsdetailaspectsoftestteam,responsibilitymatrixand
rights/responsibilityoftestmanagerandtestengineer.
TraceabilityMatrixdocumentThisisSDLCdocument,whichisrelatedtorequirementgathering
process.Asnewrequirementscome,theyareaddedtothismatrix.Thesematriceshelptestersknowthe
sourceofrequirement.Theycanbetracedforwardandbackward.
WhileBeingTested
Thefollowingdocumentsmayberequiredwhiletestingisstartedandisbeingdone:
TestCasedocumentThisdocumentcontainslistoftestsrequiredtobeconducted.ItincludesUnittest
plan,Integrationtestplan,SystemtestplanandAcceptancetestplan.
TestdescriptionThisdocumentisadetaileddescriptionofalltestcasesandprocedurestoexecute
them.
TestcasereportThisdocumentcontainstestcasereportasaresultofthetest.
TestlogsThisdocumentcontainstestlogsforeverytestcasereport.
AfterTesting
Thefollowingdocumentsmaybegeneratedaftertesting:
TestsummaryThistestsummaryiscollectiveanalysisofalltestreportsandlogs.Itsummarizesand
concludesifthesoftwareisreadytobelaunched.Thesoftwareisreleasedunderversioncontrolsystemif
itisreadytolaunch.
Testingvs.QualityControl,QualityAssuranceandAudit
Weneedtounderstandthatsoftwaretestingisdifferentfromsoftwarequalityassurance,softwarequalitycontrol
andsoftwareauditing.
SoftwarequalityassuranceThesearesoftwaredevelopmentprocessmonitoringmeans,bywhichitis
assuredthatallthemeasuresaretakenasperthestandardsoforganization.Thismonitoringisdoneto
makesurethatpropersoftwaredevelopmentmethodswerefollowed.
SoftwarequalitycontrolThisisasystemtomaintainthequalityofsoftwareproduct.Itmayinclude
functionalandnonfunctionalaspectsofsoftwareproduct,whichenhancethegoodwillofthe
organization.Thissystemmakessurethatthecustomerisreceivingqualityproductfortheirrequirement
andtheproductcertifiedasfitforuse.
SoftwareauditThisisareviewofprocedureusedbytheorganizationtodevelopthesoftware.Ateam
ofauditors,independentofdevelopmentteamexaminesthesoftwareprocess,procedure,requirements
andotheraspectsofSDLC.Thepurposeofsoftwareauditistocheckthatsoftwareanditsdevelopment
process,bothconformstandards,rulesandregulations.