Testability FTW v5 - print · • Context-driven software tester • Rapid Software Testing teacher...
Transcript of Testability FTW v5 - print · • Context-driven software tester • Rapid Software Testing teacher...
Rapid Software Testing as a Habit
Making Better software faster
Testability
For Winthe
WhoamI?
• Context-drivensoftwaretester• RapidSoftwareTestingteacher• Curious&lifelonglearner• Passionate&energeticHumanist• Trainer,coach,writer,speaker&leader• Books&Applegadgetcollector• Tromboneplayer• Gamer• Star Wars &LEGO freak• Beerbrewer
1. A RapidSoftwareTesting viewontestinginanagilecontext.
2. Whatistestability andhowcanteamstakemaximumbenefitfromit?
3. Whatteamscandotogetthemostoutoftesting!
Testing
Testingcannotkeepupwithdevelopment!
Testingtakestoomuchtime!
Inthemeanwhile…
Whydoesn’tanybodytellmeaboutthechanges?
Whereismytestdata?
Testable?
Imagineaspaceshuttleunderaglassshield.Youarenotallowedtocomenearitorpokeorprobeit…
Canyoutestthis?
Agile:amanifesto…Weareuncoveringbetterwaysofdevelopingsoftwarebydoingitandhelpingothersdoit.Throughthisworkwehavecometo
value:
IndividualsandinteractionsoverprocessesandtoolsWorkingsoftwareovercomprehensivedocumentation
CustomercollaborationovercontractnegotiationRespondingtochangeoverfollowingaplan
Thatis,whilethereisvalueintheitemsontheright,wevaluetheitemsontheleftmore.
Source:http://agilemanifesto.org/
…and12principles1. Customersatisfactionbyearlyandcontinuousdeliveryofuseful
software2. Welcomechangingrequirements,eveninlatedevelopment3. Workingsoftwareisdeliveredfrequently(weeksratherthanmonths)4. Close,dailycooperationbetweenbusinesspeopleanddevelopers5. Projectsarebuiltaroundmotivatedindividuals,whoshouldbetrusted6. Face-to-faceconversationisthebestformofcommunication(co-
location)7. Workingsoftwareistheprincipalmeasureofprogress8. Sustainabledevelopment,abletomaintainaconstantpace9. Continuousattentiontotechnicalexcellenceandgooddesign10. Simplicity- theartofmaximizingtheamountofworknotdone- is
essential11. Self-organizingteams12. Regularadaptationtochangingcircumstance
Source:http://agilemanifesto.org/
Butwhy?
Softwaredevelopment
Factory Research&development
or
Unknown unknows• Captureeverything upfrontvs.buildingnewinsights
• Customersdon’tknowwhattheywant
• Copewithcomplexity,confusion,change,newinsightsandhalfanswers
• Classicwaterfalland"commandandcontrol"inthewayofinsightandserendipity
Agiletestingtosome…
• TDD• ATDD,BDD,Specificationbyexample• 100%testautomation• Nomoretesters• Built-inquality• Faster,shorter,better!
Agiletesting?
• Whatmakestestingagile?
Source:http://www.huibschoots.nl/wordpress/?p=1072
The testing itself is not so much different, it is the context in which you do the testing is different!
Somedifferences…
• Lesstimetoprepare,executeandreport• Iterativeandincrementalapproach• Focusontestautomation• Rolechange:lesstesting,morecoaching• Lesscertainty:changeiscommon• Teamwork• Continuouscriticalthinking
Source:http://www.huibschoots.nl/wordpress/?p=1072
RapidTestingRapidtestingisamind-set
andaskill-set oftestingfocusedonhowtodotesting
morequickly,lessexpensively,
withexcellentresults.
Thisisageneraltestingmethodology.Itadaptsto
anykindofprojectorproduct.
Source:RapidSoftwareTesting– JamesBach&MichaelBolton
ThePremisesofRapidTesting1. Softwareprojectsandproductsarerelationshipsbetweenpeople,
whoarecreaturesbothofemotionandrationalthought.2. Eachprojectoccursunderconditionsofuncertaintyandtime
pressure.3. Despiteourbesthopesandintentions,somedegreeof
inexperience,carelessness,andincompetenceisnormal.4. Atestisanactivity;itisperformance,notartifacts.5. Testing’spurposeistodiscoverthestatusoftheproductandany
threatstoitsvalue,sothatourclientscanmakeinformeddecisionsaboutit.
6. Wecommittoperformingcredible,cost-effectivetesting,andwewillinformourclientsofanythingthatthreatensthatcommitment.
7. Wewillnotknowinglyornegligentlymisleadourclientsandcolleagues.
8. Testersacceptresponsibilityforthequalityoftheirwork,althoughtheycannotcontrolthequalityoftheproduct.
Source:RapidSoftwareTesting– JamesBach&MichaelBolton
Testerslighttheway
Thisisourrole.Weseethingsforwhattheyare.
Wemakeinformeddecisionsaboutqualitypossible,becausewethinkcriticallyaboutsoftware.
Source: Rapid Software Testing – James Bach & Michael Bolton
TheProductRiskKnowledgeGapHowmuchdowealreadyknow?
What we know
What we need to know
Ourknowledgeofthestatusoftheproduct.Source: Rapid Software Testing – James Bach & Michael Bolton
Callthis“Checking”notTesting
Observe Evaluate Report
Interactwiththeproductinspecificwaystocollectspecificobservations.
Applyalgorithmicdecisionrulestothoseobservations.
Reportanyfailedchecks.
means
operatingaproducttocheckspecific
output…
Source:RapidSoftwareTesting– JamesBach&MichaelBolton
ACheckHasThreeElements
1. Anobservation linkedto…2. Adecisionrule suchthat…3. bothobservationanddecisionrulecanbeapplied
algorithmically.Acheck canbeperformed
byahumanwhohasbeeninstructednot tothink
(andwhoisslowandvariable)
byamachinethatcan’t think
(butthatisquickandprecise)Source:RapidSoftwareTesting– JamesBach&MichaelBolton
TestingIsMoreThanChecking• Checking isaprocessofconfirmingandverifyingexistingbeliefs– Checkingcan(andweargue,largelyshould)bedonemechanically
– Itisanon-sapient process I’mveryfast…butI’mslow.
Seehttp://www.developsense.com/2009/08/testing-vs-checking.htmlSource:RapidSoftwareTesting– JamesBach&MichaelBolton
Acquiringthecompetence,motivation,andcredibility to…
Testingis…
createtheconditions necessary to…
…sothatyouhelpyourclientstomakeinformeddecisions aboutrisk.
evaluateaproductbylearningabout itthroughexplorationandexperimentation,whichincludes tosomedegree:questioning, study,modeling,observation andinference, including…
operatingaproducttocheckspecific
output…
Source:RapidSoftwareTesting– JamesBach&MichaelBolton
Source:http://www.satisfice.com/tools/testable.pdf
Testability
“Thepracticaltestabilityofproductishoweasyitistotestbyaparticulartesterandtestprocess,inagivencontext.”
Testability?Why?
• Maketestingeasier• Maketestingfaster• Maketestingcheaper• Lessnon-reproduciblebugs
Project-RelatedTestability
“Changes inconditionsunderwhichwetest”
• Changecontrol• Informationavailability• Toolsavailability• Testitemavailability• Environmentalcontrollability• Time
Source:http://www.satisfice.com/tools/testable.pdf
SubjectiveTestability
“Changesofthetesterortestprocess”
• Product,technicalanddomainknowledge• Testingskills• Engagement&collaboration• Teststrategy
Source:http://www.satisfice.com/tools/testable.pdf
IntrinsicTestability
“Changesoftheproduct itself”
• Observability• Controllability• (Algorithmic)Simplicity• Unbugginess,stability&availability• Smallness
Source:http://www.satisfice.com/tools/testable.pdf
EpistemicTestability
“Thegapbetweenwhatweknowandwhatweneedtoknow”
• Priorknowledgeofthequalityoftheproduct• Toleranceforfailure(lessqualityrequiredorriskcanbetaken)
Source:http://www.satisfice.com/tools/testable.pdf
Value-RelatedTestability
“Changesofthequalitystandardoryourknowledgeaboutit”
• Oracleavailability, authority&reliability• Useravailability• Userdataavailability• Userenvironmentavailability
Source:http://www.satisfice.com/tools/testable.pdf
DynamicsIncreasingonetypeoftestabilitymightdecreaseanother…
Whendevelopersdeliverfaster,project-relatedtestabilitywillincrease,butintrinsictestabilitymightdecreasebecausetheproducthasmorebugs…
Whoisresponsible?
• Thetestermustask fortestability.Wecannotexpectanynon-testertoseriouslyconsidertestability.(JamesBach)
• Really?
TheTestingstory:threestoriesLevel 1: A story about the status of the PRODUCT……abouthowitfailed,andhowitmight fail...…inwaysthatmattertoyourvariousclients.
Level 2: A story about HOW YOU TESTED it……howyouconfigured,operatedandobservedit……aboutwhatyouhaven’ttested,yet……andwon’ttest,atall…
Level 3: A story about the VALUE of the testing……whattherisksandcostsoftestingare……howtestable(ornot)theproductis……thingsthatmaketestingharderorslower……whatyouneedandwhatyourecommend…
Whyshould Ibepleasedwithyourwork?
Source:RapidSoftwareTesting– JamesBach&MichaelBolton
1. Testingiswayfaster,easierandcheaperwithhightestability!Andmorefun!
2. Everybodyintheteambenefitsfromhightestability!
3. Testabilityisateamresponsibility.4. Maketestabilityasubjectforsprintplanning
&retrospective.
Readmore• RapidSoftwareTesting- http://www.satisfice.com/info_rst.shtml• Testing&Checking - http://www.satisfice.com/blog/archives/856TestCasesAreNotTesting:TowardaCultureofTestPerformance”byJamesBach&AaronHodder -http://www.testingcircus.com/documents/TestingTrapeze-2014-February.pdf
• Atestisaperformance- http://www.satisfice.com/blog/archives/1346• Whatmakesagiletestingdifferent?- http://www.huibschoots.nl/wordpress/?p=1072• Testability- http://www.satisfice.com/tools/testable.pdf• HeuristicsofTestability- http://oredev.org/2013/wed-fri-conference/heuristics-of-testability• Testabilityawakens:movingtestabilityintonewdimensions -http://www.testingtrapezemagazine.com/wp-content/uploads/2015/12/TestingTrapeze-2015-December.pdf
• VisualizingTestability- http://youtu.be/_VR8naRfzK8• Moregreatresources:http://www.huibschoots.nl/links
[email protected]@huibschoots
www.huibschoots.nl/blog