Your SlideShare is downloading. ×
0
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Test Acceleration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Test Acceleration

975

Published on

Provide set of techniques to accelerate testing that I (and friends)have used in real projects

Provide set of techniques to accelerate testing that I (and friends)have used in real projects

Published in: Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
975
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TTTTTTTTeeeeeeeesssssssstttttttt AAAAAAAAcccccccccccccccceeeeeeeelllllllleeeeeeeerrrrrrrraaaaaaaattttttttiiiiiiiioooooooonnnnnnnn AApprriill 2222,, 22001100 OOttttaawwaa SSooffttwwaarree QQuuaalliittyy AAssssoocciiaattiioonn KKeevviinn BBuurrrr 661133--225533--44225577 osqa.org
  • 2. WWhhoo aamm II?? OOvveerr ttwweennttyy yyeeaarrss ooff ssooffttwwaarree ddeevveellooppmmeenntt eexxppeerriieennccee,, tteenn yyeeaarrss ooff mmaannaaggeemmeenntt eexxppeerriieennccee iinn NNoorrtteell PPeerrffoorrmmaannccee EEnnggiinneeeerriinngg -- OOAAMM ((OOppeerraattiioonnss,, AAddmmiinniissttrraattiioonn aanndd MMaaiinntteennaannccee)) NNeettwwoorrkk EEnnggiinneeeerriinngg SSoolluuttiioonnss SSeerrvviicceess,, MMaannaaggeerr:: SSccaallaabbiilliittyy,, SSyysstteemm IInntteeggrraattiioonn,, TToooollss,, aanndd DDeessiiggnn SSuuppppoorrtt -- OOAAMM FFrraammeewwoorrkk PPrroodduucctt//DDeessiiggnn MMaannaaggeerr:: AApppplliiccaattiioonn MMggmmtt -- OOAAMM AApppplliiccaattiioonn PPllaattffoorrmm MMaannaaggeerr:: VVeerriiffiiccaattiioonn aanndd IInnffrraassttrruuccttuurree -- RRoouuttiinngg SSooffttwwaarree FFrraammeewwoorrkk MMaannaaggeerr:: TTeesstt AAcccceelleerraattiioonn -- SSooffttwwaarree EEnnggiinneeeerriinngg AAnnaallyyssiiss LLaabb TTeeaamm LLeeaaddeerr:: OOAAMM DDeevveellooppmmeenntt -- NNeettwwoorrkk SSeerrvviicceess FFrraammeewwoorrkk SSyysstteemm VVeerriiffiiccaattiioonn -- DDeessiiggnn DDeevveellooppmmeenntt MMaannaaggeemmeenntt EEnnvviirroonnmmeenntt PPrrooggrraammmmeerr//AAnnaallyysstt -- CCAADD//CCAAMM FFrraammeewwoorrkk CCuurrrreennttllyy iinn tthhee TTeecchhnnoollooggyy IInnnnoovvaattiioonn MMaannaaggeemmeenntt PPrrooggrraamm aatt CCaarrlleettoonn UUnniivveerrssiittyy
  • 3. ……aanndd WWhhoo aarree YYoouu?? AAtttteennddeedd//vviieewweedd ttaallkk llaasstt yyeeaarr IInnvvoollvveedd iinn IInntteeggrraattiioonn aanndd uupp--wwaarrddss?? MMaannuuaall TTeessttiinngg?? AAuuttoommaatteedd TTeessttiinngg?? PPrroocceessss IImmpprroovveemmeenntt?? DDeessiiggnn DDeevveellooppmmeenntt?? MMaannaaggeemmeenntt,, hhiigghh--lleevveell ttyyppeess?? IImmpplleemmeennttaattiioonn,, llooww--lleevveell ttyyppeess?? ……ssoorrrryy.. TTaallkk ttoo mmee llaatteerr
  • 4. PPrroobblleemmss TToooo mmaannyy tteessttccaasseess ttoo wwrriittee TTaakkee ttoooo lloonngg ttoo rruunn aanndd vveerriiffyy FFoorr nneeww bbuuiillddss,, wwhhiicchh vveerriiffiiccaattiioonn tteessttss nneeeedd ttoo bbee rreerruunn NNoo oobbjjeeccttiivvee mmeeaassuurree ooff hhooww wweellll tthhee pprroodduucctt wwaass tteesstteedd.. CCaannnnoott ddeeppeenndd oonn hheellpp ffrroomm ddeevveellooppeerrss TToo mmuucchh ttoo mmaaiinnttaaiinn
  • 5. PPuurrppoossee PPrroovviiddee sseett ooff tteecchhnniiqquueess ttoo aacccceelleerraattee tteessttiinngg tthhaatt **II** ((aanndd ffrriieennddss)) hhaavvee uusseedd iinn rreeaall pprroojjeeccttss AAggeennddaa GGeett mmoorree ttiimmee ttoo TTeesstt TTeesstt FFaasstteerr DDoo LLeessss TTeessttiinngg PPuulllliinngg iitt ooffff
  • 6. How do you make tteessttiinngg ffaasstteerr?? Req’’s Arch.. HLD Desiign Codiing Uniit Test IIntegratiion System Test Accept..
  • 7. SSttaarrtt TTeessttiinngg SSoooonneerr Req’’s Arch.. HLD Desiign Codiing Uniit Test TTeesstt DDrriivveenn DDeevveellooppmmeenntt IIntegratiion System Test Acceptance
  • 8. TTeesstt DDrriivveenn DDeessiiggnn GGeett TTeesstteerrss iinnvvoollvveedd iinn RReeqquuiirreemmeenntt ggaatthheerriinngg PPrreeppaarree TTeessttiinngg IInnffrraassttrruuccttuurree//AArrcchhiitteeccttuurree aalloonngg wwiitthh DDeessiiggnn IInnffrraassttrruuccttuurree GGeenneerraattee TTeessttccaasseess aass eeaarrllyy aass ppoossssiibbllee AAcccceeppttaannccee tteessttccaasseess dduurriinngg RReeqquuiirreemmeenntt ccaappttuurree …… UUnniitt LLeevveell TTeessttccaasseess dduurriinngg ccooddiinngg ((ii..ee.. tteesstt ddrriivveenn ddeevveellooppmmeenntt)) SSttaarrtt tteessttiinngg aass eeaarrllyy aass ppoossssiibbllee VVeerriiffyy RReeqquuiirreemmeennttss bbeeffoorree DDeessiiggnn ((IInnssppeeccttiioonnss,, PPrroottoottyyppiinngg aanndd SSiimmuullaattiioonn -- EExxeeccuuttaabbllee RReeqquuiirreemmeennttss)) VVeerriiffyy DDeessiiggnn bbeeffoorree CCooddiinngg ((aass aabboovvee……))
  • 9. WW -- MMooddeell Herzlich, P. “The Politics of Testing”. Proceedings of 1st EuroSTAR conference, London, Oct. 25-28, 1993.
  • 10. Example: Agile aanndd UUssaabbiilliittyy © Lynn Miller, ALIAS Wavefront. http://wiki.fluidproject.org/download/attachments/1704207/Autodesk_WUD2006_UCDandAgile_lmiller.pdf?version=1
  • 11. Testing still ttaakkeess ttoooo lloonngg Test Fiind bug Fiix bug Test Fiind bug Fiix bug Test ...
  • 12. MMaakkee TTeessttiinngg FFaasstteerr Test Fiiind more Bugs iiin Less Tiiime Fiind bug Fiix bug Test Fiiind///Fiiix Errors Fastter Fewer New Bugs Find bug Fix bug Test ...
  • 13. PPrroovveenn PPrraaccttiicceess ((sshhooppppiinngg lliisstt)) RReedduuccee TTeessttiinngg TTiimmee LLeessss tteessttccaasseess ttoo wwrriittee,, aauuttoommaattee,, rruunn,, vveerriiffyy aanndd mmaaiinnttaaiinn ((TTeessttccaassee ggeenneerraattiioonn)) FFaasstteerr eexxeeccuuttiioonn//vvaalliiddaattiioonn ((TTeessttccaassee aauuttoommaattiioonn)) OOnnllyy rree--tteesstt tthhee ppaarrttss ooff tthhee ccooddee tthhaatt cchhaannggeedd ((CChhuurrnn)) KKnnooww wwhheenn ttoo ssttoopp ((SSooffttwwaarree RReelliiaabbiilliittyy EEnnggiinneeeerriinngg,, RRiisskk DDrriivveenn)) FFiinndd bbuuggss ffaasstteerr BBeetttteerr rreeqquuiirreemmeenntt ccoovveerraaggee ((TTeessttccaassee ggeenneerraattiioonn)) MMaakkee ssuurree bbuuggss ddoonn’’tt sslliipp bbyy ((CCooddee CCoovveerraaggee)) -- HHooww mmuucchh tteessttiinngg iiss eennoouugghh?? OOnnllyy tteesstt tthhee ccooddee wwiitthh tthhee iimmppoorrttaanntt bbuuggss ((RRiisskk AAnnaallyyssiiss)) OOnnllyy tteesstt tthhee bbuuggss tthhee ccuussttoommeerr wwiillll ffiinndd ((OOppeerraattiioonnaall PPrrooffiillee)) DDeessiiggnn ffoorr TTeessttaabbiilliittyy EErrrroorr SSiimmuullaattiioonn CCoonnttiinnuuoouuss IInntteeggrraattiioonn // NNiigghhttllyy LLooaaddbbuuiillddss –– aauuttoommaatteedd SSaanniittyy BBuuiilltt iinn SSeellff TTeesstt FFiixx bbuuggss ffaasstteerr aanndd ccrreeaattee ffeewweerr nneeww bbuuggss UUnnddeerrssttaanndd hhooww tthhee ccooddee wwoorrkkss ((RReevveerrssee EEnnggiinneeeerriinngg)) TTeesstt FFuunnccttiioonnaalliittyy aass ssoooonn aass iitt bbeeccoommeess aavvaaiillaabbllee IImmpprroovvee MMaaiinnttaaiinnaabbiilliittyy RRaappiidd RRoooott CCaauussee AAnnaallyyssiiss
  • 14. TToo BBee DDiissccuusssseedd RReedduuccee TTeessttiinngg TTiimmee LLeessss tteessttccaasseess ttoo wwrriittee,, aauuttoommaattee,, rruunn,, vveerriiffyy aanndd mmaaiinnttaaiinn ((TTeessttccaassee ggeenneerraattiioonn)) FFaasstteerr eexxeeccuuttiioonn//vvaalliiddaattiioonn ((TTeessttccaassee aauuttoommaattiioonn)) OOnnllyy rree--tteesstt tthhee ppaarrttss ooff tthhee ccooddee tthhaatt cchhaannggeedd ((CChhuurrnn)) KKnnooww wwhheenn ttoo ssttoopp ((SSooffttwwaarree RReelliiaabbiilliittyy EEnnggiinneeeerriinngg,, RRiisskk DDrriivveenn)) FFiinndd bbuuggss ffaasstteerr BBeetttteerr rreeqquuiirreemmeenntt ccoovveerraaggee ((TTeessttccaassee ggeenneerraattiioonn)) MMaakkee ssuurree bbuuggss ddoonn’’tt sslliipp bbyy ((CCooddee CCoovveerraaggee)) -- HHooww mmuucchh tteessttiinngg iiss eennoouugghh?? OOnnllyy tteesstt tthhee ccooddee wwiitthh tthhee iimmppoorrttaanntt bbuuggss ((RRiisskk AAnnaallyyssiiss)) OOnnllyy tteesstt tthhee bbuuggss tthhee ccuussttoommeerr wwiillll ffiinndd ((OOppeerraattiioonnaall PPrrooffiillee)) DDeessiiggnn ffoorr TTeessttaabbiilliittyy EErrrroorr SSiimmuullaattiioonn CCoonnttiinnuuoouuss IInntteeggrraattiioonn // NNiigghhttllyy LLooaaddbbuuiillddss –– aauuttoommaatteedd SSaanniittyy BBuuiilltt iinn SSeellff TTeesstt FFiixx bbuuggss ffaasstteerr aanndd ccrreeaattee ffeewweerr nneeww bbuuggss UUnnddeerrssttaanndd hhooww tthhee ccooddee wwoorrkkss ((RReevveerrssee EEnnggiinneeeerriinngg)) TTeesstt FFuunnccttiioonnaalliittyy aass ssoooonn aass iitt bbeeccoommeess aavvaaiillaabbllee ((IItteerraattee)) IImmpprroovvee MMaaiinnttaaiinnaabbiilliittyy RRaappiidd RRoooott CCaauussee AAnnaallyyssiiss
  • 15. RReeaall LLiiffee EExxaammppllee:: UUnniitt LLeevveell TTeessttiinngg System under Test: Unit testing of Controllers and Device Drivers on Real-time Embedded System First iteration was manual Everything after the second was automated Effort is measured in test vectors: a single test input 3000 2500 2000 1500 1000 500 0 1 2 3 4 5 6 Iteration Iteration 1 represents the number of manual test vectors that can be run in 2 weeks.. By iteration 6 productivity essentially increased 2.5 times ! Over 5,000 more test vectors were run than possible manually! This is equivalent to 10 weeks extra testing for free. The tester also able took a 2 week vacation and worked on other assignments, which would have been impossible originally Test Vectors New Regression
  • 16. Automated TTeesstt EExxeeccuuttiioonn Approach Pros Cons Requires experienced programmer to maintain/create parser Keyword “scripts” have to be maintained Simple keywords capture actions Requires testers to have least coding experience Keyword Driven Requires better coding skills Test scenarios may be complex in order to take advantage of common test driver Uses parameters or data files to drive testcases Fastest to create testcases Less code, less maintenance Data Driven Requires good programmers to support re-useable code. Uses shared libraries for common functions Faster to create, easier to maintain more robust Supports mix of coding skills Shared code Needs more planning Maintenance is a problem Leads to code duplication Slowest to create (unless copying) More robust Intermediate coding skills Structured Code Breaks easily Hopeless to maintain Fast and easy to create Requires little to no coding experience Record and Playback
  • 17. Data DDrriivveenn AAuuttoommaattiioonn aakkaa TTaabbllee ddrriivveenn EEaacchh tteesstt ccaassee iiss 11 lliinnee iinn ttaabbllee TTeesstt ddrriivveerr aauuttoommaatteess aa uussee-- ccaassee UUssee tteesstt aattttrriibbuutteess aanndd eexxppeecctteedd rreessuullttss ttoo ccrreeaattee aa ddaattaa ttaabbllee ffoorr tteesstt ddrriivveerr BBeehhaavviioorr iiss ddaattaa mmooddeelleedd.. TTeesstt ddrriivveerr mmaayy ddrriivvee SSUUTT ddiirreeccttllyy oorr ccrreeaattee aa tteesstt ssccrriipptt ffoorr eeaacchh tteesstt ccaassee TTeesstt ddrriivveerr mmaayy iinntteerraacctt wwiitthh mmuullttiippllee aauuttoommaattiioonn ttoooollss bbeehhiinndd tthhee sscceenneess.. TTeesstt ddrriivveerr ccaann bbee aass ccoommpplleexx oorr ssiimmppllee.. Create and Set timer T2 T2 active Cancel T2 T2 inactive T2 inactive Error is issued T2 active Reset T2 Error is issued TTeesstt AAttttrriibbuuttee PPoossssiibbllee vvaalluueess TTeesstt vvaalluueess 00,,11,,22,,33,,2200,,4400,,6611,, 110000,,990000 00,,11,,22,,……,, MMAAXX__VVAALLUUEE VVaalluuee GGrraannuullaarriittyy 11,,22,,33,,44 11,,22,,33,,44 oonnee sshhoott ttiimmeerr,, ppeerriiooddiicc ttiimmeerr oonnee sshhoott ttiimmeerr,, ppeerriiooddiicc ttiimmeerr TTyyppee CCrreeaattee bbrraanncchh aaccttiivvee,, iinnaaccttiivvee aaccttiivvee,, iinnaaccttiivvee CCaanncceell bbrraanncchh aaccttiivvee,, iinnaaccttiivvee aaccttiivvee,, iinnaaccttiivvee
  • 18. Keyword DDrriivveenn AAuuttoommaattiioonn WWiinnddooww AAccttiioonn OObbjjeecctt VVaalluuee MMaaiinn CClliicckk NNeexxttBBuuttttoonn MMaaiinn CClliicckk MMeennuuBBaarr FFiillee MMaaiinn CClliicckk MMeennuuBBaarr PPrriinntt…… PPrriinntt EEnntteerrVVaalluuee NNuummbbeerrCCooppiieess 22 PPrriinntt SSeelleecctt PPrriinntteerrNNaammee AAddoobbee PPDDFF PPrriinntt CClliicckk OOKKBBuuttttoonn aakkaa TTaabbllee DDrriivveenn SSiinnggllee tteesstt ddrriivveerr ffoorr wwhhoollee SSyysstteemm uunnddeerr TTeesstt 11 tteesstt ccaassee ppeerr ttaabbllee,, 11 aaccttiioonn ppeerr lliinnee ee..gg.. WWiinnddooww,, AAccttiioonn,, OObbjjeecctt,, VVaalluuee CCaann aallssoo vvaalliiddaattee ddaattaa DDeeppeennddiinngg oonn yyoouurr tteesstt ppllaann ““ssttyyllee”” tthhiiss ccaann bbeeccoommee eexxeeccuuttaabbllee ddooccuummeennttaattiioonn TTeesstt iinnssttrruuccttiioonnss aarree tthhee aauuttoommaattiioonn IIff yyoouu eexxppaanndd ccoonncceepptt ttoo ssiimmpplliiffiieedd ssccrriippttiinngg llaanngguuaaggeess ee..gg.. CClliicckk ((““MMaaiinn””,, ““NNeexxttBBuuttttoonn””)) TThhiiss iiss tthhee mmoosstt ppooppuullaarr ddaattaa ddrriivveenn tteessttiinngg aapppprrooaacchh bbyy ffaarr.. BBuutt nnoott aass ffaasstt ttoo ccrreeaattee aass pprreevviioouuss EE..gg.. SSAAFFSSDDEEVV,, SSTTAAFF,, BBeehhaavviioouurr--BBaasseedd
  • 19. RReeaall LLiiffee EExxaammppllee:: AApppplliiccaattiioonn LLeevveell TTeessttiinngg Translated SMTP email to x400 format Very mature system Work was done by 1st year co-op Testing took 1 week Uncovered 8 failures (bugs) 100.00 90.00 80.00 70.00 60.00 50.00 40.00 30.00 20.00 10.00 System under Test: 36 Fields 29 Trillion Exhaustive Testcases 72 “defaults” Testcases 75% branch coverage 47 Pair-wise Testcases 93% branch coverage E-mail Coverage Results Testsuite Coverage (%) 0.00 1 2 3 4 5 6 7 8 9 Block Branch
  • 20. RReeaall LLiiffee EExxaammppllee:: AApppplliiccaattiioonn LLeevveell TTeessttiinngg E-mail Coverage Results Testsuite Coverage (%) 100.00 90.00 80.00 70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00 1 2 3 4 5 6 7 8 9 Block Branch Benefits: Fewer testcases: less time to test and verify results High level of code coverage Incorporates boundary testing Both success and failure testcases generated Ease of adapting testcase suite to changing requirements We were given the wrong requirements initially and slowly discovered the correct ones
  • 21. Automated TTeesstt CCrreeaattiioonn UUssee mmooddeell ooff ssyysstteemm ttoo aauuttoommaattiiccaallllyy ggeenneerraattee aauuttoommaatteedd tteesstt ccooddee TTyyppeess:: SSttaattee ddiiaaggrraammss ((iinncclluuddiinngg UUMMLL,, SSDDLL,, eettcc..)),, SSeettss,, GGrraammmmaarrss,, CCoommbbiinnaattiioonnss Create and Set timer T2 T2 active Cancel T2 T2 inactive T2 inactive Error is issued T2 active Reset T2 Error is issued TToooollss ttoo vvaalliiddaattee mmooddeell,, ffiinndd mmiinniimmuumm tteesstt ppaatthhss,, eettcc.. BBeesstt ooff aallll:: mmaannaaggee tthhee mmooddeell aanndd nnoott tthhee tteesstt ccooddee
  • 22. PPaaiirr--wwiissee tteesstt ggeenneerraattiioonn PPrroodduucceess aa vveerryy ssmmaallll ((bbuutt ttwwiisstteedd)) sseett ooff tteesstt ccaasseess EEaassiillyy ffeeeeddss ddiirreeccttllyy iinnttoo ddaattaa ddrriivveenn tteesstt ddrriivveerr UUssee aa ttooooll tthhaatt uusseess rruulleess ((pprreeddiiccaatteess)) ttoo pprreevveenntt iimmppoossssiibbllee ccoommbbiinnaattiioonnss ooff iinnppuuttss MMooddeelliinngg aarroouunndd tthheemm iiss ttoooo hhaarrdd
  • 23. TTeessttiinngg TTeessttiinngg ((FFeeeeddbbaacckk LLoooopp)) HHooww ddoo yyoouu kknnooww yyoouu hhaavvee tteesstteedd eevveerryytthhiinngg?? UUnnddooccuummeenntteedd rreeqquuiirreemmeennttss aanndd ffeeaattuurreess UUnnddooccuummeenntteedd ddeeppeennddeenncciieess UUssiinngg oouutt ooff ddaattee ddooccuummeennttaattiioonn MMiissssiinngg ccooddee HHooww ddoo yyoouu kknnooww yyoouu aarree nnoott wwaassttiinngg ttiimmee tteessttiinngg ssoommee ffuunnccttiioonnaalliittyy ttoooo mmuucchh?? MMeeaassuurree wwhhaatt ccooddee wwaass nnoott eexxeeccuutteedd ((ccooddee ccoovveerraaggee)) WWhhaatteevveerr ffuunnccttiioonnaalliittyy tthhaatt ccooddee wwaass wwrriitttteenn ttoo iimmpplleemmeenntt iiss mmiissssiinngg ffrroomm tthhee tteessttssuuiittee DDooeess nnoott tteellll yyoouu aannyytthhiinngg aabboouutt tthhee ccooddee tthhaatt wwaass eexxeeccuutteedd
  • 24. Error vvss.. BBrraanncchh CCoovveerraaggee 0.450 0.500 0.550 0.600 0.650 0.700 0.750 0.800 0.850 Branch Coverage 1 0.9 0.8 Fault Coverage 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 WWiitthhoouutt mmeeaassuurriinngg ccoovveerraaggee,, tteessttss oofftteenn oonnllyy eexxeerrcciissee 7700%% ooff tthhee ccooddee,, hhoowweevveerr bbuuggss oofftteenn hhiiddee iinn tthhee hhaarrdd ttoo tteesstt ccooddee,, aass iinn tthhiiss eexxaammppllee.. Ref: “The Relationship Between Test Coverage and Reliability” by Yeshwant Malaiya, Naixin Li, Jim Bieman, Rick Karich, Bob Skibbe, Proc. 5th ISSRE, Nov. 1994
  • 25. CCoovveerraaggee RReessuullttss -- PPrroocceedduurree TTeesstt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Testcase 100.00 90.00 80.00 70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00 Branch Coverage Total Coverage 96.08 Redundantt code coverage miightt be wastted ttesttiing ttiime Branch Coverage (%) Duplicate Coverage
  • 26. Sanity SSuubbssyysstteemm CCoovveerraaggee CCooddee CCoovveerraaggee -- nnoott jjuusstt ffoorr UUnniitt TTeesstt V.56 V.87 Area Procedures Hits Percent Hit Procedures Hits Percent Hit 7 0 0 7 0 0 0 0 0 88 13 15 810 33 4 895 36 4 102 26 25 114 38 33 5545 893 16 7454 1117 15 1736 304 18 2302 325 14 570 24 4 606 65 11 407 2 0 424 32 8 13 0 0 321 67 21 46 0 0 46 0 0 TOTAL 9324 1282 14 12257 1693 14 Area Subsystems Hits Percent Hit Subsystems Hits Percent Hit 1 0 0 1 0 0 1 0 0 1 1 100 1 1 100 1 1 100 1 1 100 1 1 100 24 18 75 25 24 96 4 4 100 4 4 100 2 1 50 1 1 100 3 1 33 3 1 33 1 0 0 1 1 100 1 0 0 1 0 0 TOTAL 39 26 67 39 34 87
  • 27. TTeesstt LLeessss RRaarreellyy aabbllee ttoo tteesstt eevveerryytthhiinngg SSoommee ppaarrttss ooff tthhee ccooddee tteenndd ttoo hhaavvee mmoorree bbuuggss tthhaann ootthheerr ppllaacceess NNeeww oorr cchhaannggeedd ccooddee CCoommpplleexx ccooddee FFuunnccttiioonnaalliittyy mmoosstt uusseedd bbyy ccuussttoommeerrss.. EEttcc.. UUssee rriisskk mmeettrriiccss ttoo ffooccuuss tteessttiinngg oonn tthhee ppaarrttss ooff tthhee ccooddee mmoosstt lliikkeellyy ttoo hhaavvee bbuuggss ccuussttoommeerrss wwiillll ffiinndd..
  • 28. Correlating Complexity wwiitthh PPrroobblleemmss 100 97.0% Predicted Model Cumulative Problem Count % 0 25 50 75 100 80 60 40 20 0 6644%% ooff pprroobblleemmss ffoouunndd iinn ttoopp 2255%% ccoommpplleexx ccooddee 33%% ooff pprroobblleemmss ffoouunndd iinn bboottttoomm 2255%% ccoommpplleexx ccooddee FFooccuuss tteessttiinngg oonn hhiigghhllyy ccoommpplleexx ccooddee aanndd aavvooiidd ssppeennddiinngg ttiimmee oonn lleeaasstt ccoommpplleexx.. Module Count % 64.40 Actual
  • 29. OOppeerraattiioonnaall PPrrooffiilleess UUsseerrss ddoo nnoott uussee aallll tthhee ccooddee TTeesstt tthhee ccooddee tthhaatt iiss uusseedd tthhee mmoosstt TTeesstt tthhee ccooddee tthhaatt ccaannnnoott ffaaiill FFiixxiinngg bbuuggss tthhaatt ddoo nnoott nneeeedd ttoo bbee ffiixxeedd iinnccrreeaasseess tthhee cchhaanncceess ooff iimmppoorrttaanntt ccooddee bbrreeaakkiinngg RRaattee tteessttccaasseess bbyy iimmppaacctt iiff tthheeyy ffaaiill,, aanndd ccuutt bbaacckk ttoo mmaannaaggeemmeenntt''ss ddeessiirreedd rriisskk lleevveell.. MMaannyy eexxaammpplleess ooff ccooddee bbrreeaakkiinngg uunnddeerr ssttrreessss BBuutt oovveerr eennggiinneeeerriinngg mmeeaannss nnoott ccooddiinngg ootthheerr tthhiinnggss MMeeaassuurree wwhhaatt uusseerrss aarree rreeaallllyy ddooiinngg
  • 30. OOnnee BBuubbbbllee aatt aa TTiimmee Model Code Code Coverage Auto TCs Redefine Model Run Tests Churn Complexity Requirements
  • 31. Baby steps aanndd CCoonnttiinnuuoouuss IImmpprroovveemmeenntt SSeelleecctt aa ggooaall aanndd ppllaann hhooww ttoo ggeett tthheerree DDeecciiddee hhooww ttoo mmeeaassuurree ssuucccceessss aanndd mmeeaassuurree wwhheerree yyoouu ccuurrrreennttllyy aarree DDoonn’’tt ttrryy ttoo ddoo ttoooo mmuucchh SSeellll ssoolluuttiioonnss bbaasseedd oonn nneeeeddss WWoorrkk wwiitthh tthhee wwiilllliinngg aanndd nneeeeddyy ffiirrsstt KKeeeepp ffooccuusseedd oonn ggooaallss aanndd pprroobblleemmss AAlliiggnn tthhee bbeehhaavviioouurr ooff MMaannaaggeerrss aanndd PPrraaccttiioonneerrss MMeeaassuurree aanndd eevvaalluuaattee pprrooggrreessss
  • 32. CCoonncclluussiioonn GGeett mmoorree ttiimmee ttoo TTeesstt TTeesstt FFaasstteerr DDoo LLeessss TTeessttiinngg PPuulllliinngg iitt ooffff
  • 33. TThhaannkk--yyoouu!! QQuueessttiioonnss?? osqa.org
  • 34. osqa.org
  • 35. More RReeaall LLiiffee EExxaammpplleess:: SSOOAA SSyysstteemm PPeerrffoorrmmaannccee TTeessttiinngg 110000 tteessttccaasseess,, 11 hhoouurr ppeerr tteessttccaassee,, oonn 22 tteessttbbeeddss,, iinn 11 wweeeekk bbyy 11 tteesstteerr UUpp ttoo 110000 ssiimmuullaatteedd uusseerrss wwiitthh mmuullttiippllee rroolleess,, mmuullttiippllee eevveenntt ppaatttteerrnnss,, eettcc.. TTeesstteerr wwaass aallssoo wwrriittiinngg aa tteesstt ttooooll aatt tthhee ssaammee ttiimmee.. WWeebb AApppplliiccaattiioonn SSyysstteemm TTeessttiinngg 7700 tteessttccaasseess ccrreeaatteedd aanndd eexxeeccuutteedd iinn 11 wweeeekk.. RReedduucceedd 770000 tteesstt ccaasseess ttoo 113300 IInntteeggrraattiioonn TTeessttccaasseess AAuuttoommaatteedd IInnssttaallllaattiioonn tteessttiinngg ttoo tteesstt eevveerryy ppoossssiibbllee ccoonnffiigguurraattiioonn ffoorr rroouuttiinngg ffrraammeewwoorrkk.. EEttcc..
  • 36. PPaaiirr--wwiissee TTeesstt CCaasseess:: 1133 FFiieellddss,, 33 IInnppuuttss,, 1155 TTeesstt ccaasseess TEST Field1 Field2 Field3 Field4 Field5 Field6 Field7 Field8 Field9 Field10 Field11 Field12 Field13 Case1 1 1 1 1 1 1 1 1 1 1 1 1 1 Case2 1 2 2 2 2 2 2 2 2 2 1 1 1 Case3 1 3 3 3 3 3 3 3 3 3 1 1 1 Case4 2 1 1 2 2 2 3 3 3 1 2 2 1 Case5 2 2 2 3 3 3 1 1 1 2 2 2 1 Case6 2 3 3 1 1 1 2 2 2 3 2 2 1 Case7 3 1 1 3 3 3 2 2 2 1 3 3 1 Case8 3 2 2 1 1 1 3 3 3 2 3 3 1 Case9 3 3 3 2 2 2 1 1 1 3 3 3 1 Case10 1 2 3 1 2 3 1 2 3 1 2 3 2 Case11 2 3 1 2 3 1 2 3 1 2 3 1 2 Case12 3 1 2 3 1 2 3 1 2 3 1 2 2 Case13 1 3 2 1 3 2 1 3 2 1 3 2 3 Case14 2 1 3 2 1 3 2 1 3 2 1 3 3 Case15 3 2 1 3 2 1 3 2 1 3 2 1 3 Maximum possible combinations = 1,594,323
  • 37. Automated TTeesstt VVaalliiddaattiioonn ((aakkaa OOrraaccllee)) HHaarrdd ccooddeedd EExxpplliicciitt ““AAsssseerrttss”” oorr ccooddeedd iinntteerraaccttiioonn wwiitthh SSUUTT ((ee..gg.. tthhrroouugghh AAPPII)) CCrreeaatteedd bbyy mmooddeell!! SUT does not follow test case’s logic Generate verification code as well as execution code CCaappttuurree RReeppllaayy CCoommppaarree tteesstt rreessuullttss ttoo rreessuullttss ffrroomm aa pprreevviioouuss vveerrssiioonn Previous version becomes the “Oracle” Previous version could also be a model (e.g. prototype) FFiilltteerr oouutt oorr cclleeaann uupp tthhee cchhaannggeeaabbllee bbiittss BBiittmmaappss bbaadd,, tteexxtt aanndd nnuummbbeerrss ggoooodd
  • 38. DDeeffiinniittiioonnss Error { int y=0; if (a==b) {y=c}; z=z/y; } Fault Failure Debugablliity Testabiilliity
  • 39. Design ffoorr TTeessttaabbiilliittyy FFoorr aa ffaaiilluurree ttoo ttaakkee ppllaaccee rreeqquuiirreess:: EExxeeccuuttiioonn:: AAnn iinnppuutt mmuusstt ccaauussee aa ffaauulltt ttoo bbee eexxeeccuutteedd IInnffeeccttiioonn:: AAss aa ccoonnsseeqquueennccee ooff EExxeeccuuttiioonn,, tthhee iinntteerrnnaall ddaattaa ssttaattee mmuusstt bbeeccoommee iinnccoorrrreecctt PPrrooppaaggaattiioonn:: AAss aa ccoonnsseeqquueennccee ooff IInnffeeccttiioonn,, tthhee ddaattaa ssttaattee eerrrroorr mmuusstt bbeeccoommee ddeetteeccttaabbllee iinn aann oouuttppuutt.. DDFFTT mmaakkeess iitt eeaassiieerr ffoorr tthheessee ccoonnddiittiioonnss ttoo bbee mmeett..
  • 40. Design ffoorr TTeessttaabbiilliittyy MMaakkee tthhee bbuuggss eeaassiieerr ttoo eexxeerrcciissee BBuuiilltt iinn UUnniitt TTeesstt EErrrroorr//OOuuttppuutt SSiimmuullaattiioonn RRuulleess ooff TThhuummbb MMaakkee bbuuggss eeaassiieerr ttoo sseeee AAsssseerrttiioonnss TTrraaccee NNeeeeddss ttoo bbee ““DDeessiiggnneedd”” iinn,, bbuutt mmaakkeess iitt eeaassiieerr ffoorr ddeevveellooppeerrss ttoo ffiinndd,, ffiixx,, aanndd cchhaannggee ccooddee aass wweellll..
  • 41. SSooffttwwaarree RReeccoonnnnaaiissssaannccee With onlliine hellp calllled Wiithout onlliine hellp calllled
  • 42. Where to look for ffuunnccttiioonnaalliittyy ffiirrsstt
  • 43. RReeffeerreenncceess BBuurrrr,, KKeevviinn YYoouunngg,, WWiilllliiaamm,, 11999988,, CCoommbbiinnaattoorriiaall tteesstt tteecchhnniiqquueess:: TTaabbllee--bbaasseedd aauuttoommaattiioonn,, tteesstt ggeenneerraattiioonn aanndd ccooddee ccoovveerraaggee ,, PPrroocceeeeddiinnggss ooff tthhee IInnttll.. CCoonnff.. oonn SSooffttwwaarree TTeessttiinngg AAnnaallyyssiiss aanndd RReevviieeww,, SSaann DDiieeggoo,, CCAA.. OOccttoobbeerr 11999988,, hhttttpp::////aaeettggwweebb..aarrggrreeeennhhoouussee..ccoomm//aaeettgg__nnoorrtteell..ppddff BBuurrrr,, KKeevviinn.. 11999988,, TTeesstt AAcccceelleerraattiioonn,, IIEEEEEE OOttttaawwaa,, JJuunnee 11999988 CChhrriissttiiee,, JJaammeess.. 22000088,, TThhee SSeedduuccttiivvee aanndd DDaannggeerroouuss VV--MMooddeell pp7733 TTeessttiinngg EExxppeerriieennccee AApprriill 22000088,, wwwwww..tteessttiinnggeexxppeerriieennccee..ccoomm hhttttpp::////wwwwww..ppaaiirrwwiissee..oorrgg// Malaiya, Y., Li, N., Bieman, J., Karich, R., Skibbe, B., 1994, The Relationship Between Test Coverage and Reliability, Proc. 5th ISSRE, Nov. 1994

×