Pride and Paradev a collection of agile software testing contradictions Alister Scott Thisbookisforsaleathttp://leanpub.com/pride-and-paradev Thisversionwaspublishedon2015-03-02 ThisisaLeanpubbook.Leanpubempowersauthorsand publisherswiththeLeanPublishingprocess.LeanPublishingis theactofpublishinganin-progressebookusinglightweight toolsandmanyiterationstogetreaderfeedback,pivotuntil youhavetherightbookandbuildtractiononceyoudo. ThisworkislicensedunderaCreativeCommonsAttribution 3.0UnportedLicense Contents Acknowledgments . . . . . . . . . . . . . . . . . . . . . i Aboutthisbook . . . . . . . . . . . . . . . . . . . . . . ii Beforewestart:what’saparadev? . . . . . . . . . . . v Allaboutagilesoftwaredevelopment. . . . . . . . . . vii Atypicalagilesoftwaredevelopmentprocess . . . . . x Acollectionofsoftwaretestingcontradictions . . 1 Yourroleasanagilesoftwaretester . . . . . . . . 2 Doagileteamsevenneedasoftwaretester? . . . . . . 3 Doagilesoftwaretestersneedtechnicalskills? . . . . 6 Are software testers the gatekeepers or guardians of quality? . . . . . . . . . . . . . . . . . . . . . . . . . 11 Shouldagiletestersfixthebugstheyfind? . . . . . . . 13 CONTENTS Shouldtesterswritetheacceptancecriteria? . . . . . . 15 Softwaretestingasacareerchoice . . . . . . . . . 17 Issoftwaretestingagoodcareerchoice? . . . . . . . . 18 Isitbeneficialtoattendsoftwaretestingconferences? 21 Shouldtestersgetatestingcertification? . . . . . . . . 24 DefiningAcceptanceCriteriaforuserstories . . . 25 Shouldacceptancecriteriabeimplicitorexplicit? . . . 26 ShouldyouracceptancecriteriabespecifiedasGiven/When/Then orchecklists? . . . . . . . . . . . . . . . . . . . . . . 29 Arephysicalorvirtualstorywallsbetter? . . . . . . . 32 TestingTechniques . . . . . . . . . . . . . . . . . . . 34 Whichisbetter:manualorautomatedtesting? . . . . 35 Canwejusttestitinproduction? . . . . . . . . . . . . 37 Whattypeoftestenvironmentshouldwetestin? . . 40 Shouldyouusetestcontrollersfortesting? . . . . . . 42 Should you use production data or generate test data fortesting? . . . . . . . . . . . . . . . . . . . . . . . 45 CONTENTS ShouldyoutestinoldversionsofInternetExplorer? . 48 Shouldyouuseatooltotrackbugs? . . . . . . . . . . 50 Shouldyouraisetrivialbugs? . . . . . . . . . . . . . . 55 Shouldyouinvolverealusersintesting? . . . . . . . . 57 AutomatedAcceptanceTesting . . . . . . . . . . . . 59 Do you need an automated acceptance testing frame- work? . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Whoshouldwriteyourautomatedacceptancetests? . 62 What language should you use for your automated acceptancetests? . . . . . . . . . . . . . . . . . . . . 64 ShouldyouusetheGiven/When/Thenformattospec- ifyautomatedacceptancetests? . . . . . . . . . . . 66 Shouldyourelementselectorsbetextorvaluebased? 69 Threenon-contradictions . . . . . . . . . . . . . . . 72 Acknowledgments This book began as a series of blog posts on my WatirMelon¹ blog. Thiswasgreat,asIwasabletogetfeedbackoneacharticleasI wroteit.Iwouldliketothankmyblogreadersfortheplentiful feedback I received; it has no doubt shaped the final release of thisbook. IwouldalsoliketothankmywonderfulwifeClarewhoreviewed thisbookand,despitehavingnopriorknowledgeofthesubject matter,wasabletoprovidealotofexcellentfeedbackandpolish. Finally, I’d like to thank² my family: Clare, Finley, Orson and Winston:youguysmeantheworldtome. ¹http://watirmelon.com ²orretroactivelyapologizeforspendingallmytimewritingthis,butatleastIwrote yournamesatthestartofmybook! About this book Who is it for? This book for anyone who does or wants to do software testing onanagile³team. Full of Quotes “One must never miss an opportunity of quoting thingsbyotherswhicharealwaysmoreinteresting thanthoseonethinksuponeself.” (cid:24)MarcelProust “Quotationswhenengraveduponthememorygive yougoodthoughts.” (cid:24)WinstonChurchill Why contradictions? “The test of a first rate intelligence is the ability to hold two opposed ideas in the mind at the same time,andstillretaintheabilitytofunction.” (cid:24)F.ScottFitzgerald,TheCrackUp⁴ ³http://en.wikipedia.org/wiki/Agile_software_development ⁴http://www.esquire.com/features/the-crack-up Aboutthisbook iii Most software testing books are a verbose collection of best practices: what you should do as tester to be successful, often inatraditional‘lessonslearned’format. Bestpracticesareoftensold,particularlybyconsultants,assilver bullets⁵. I have particular disdain for best practices, they’re not contextualandtooblackandwhiteforme.Itendtoseetheworld inshadesofgray,abestpracticeinonecontextmakesnosense inanother. “Thecoloroftruthisgray.” (cid:24)AndréGide Writing books in shades of gray isn’t easy: it’s much easier to writeabestpracticesbookwithstronglyheldviewsaboutwhat you consider to be the right approach, and dispel ideas that contradictyourown. Inthinkingofbooksinthemiddleoftwoviews,oneapproachis to write a book sufficiently nebulous or generalist that it could appeartoworkinvariouscontexts.Buttheoutcomeisweakas peoplepreferreadingstrongerviews. InsteadI’vedecidedtowriteacollectionofcontradictoryclaims aboutsoftwaretesting;thepracticalimplicationsliesomewhere inbetween. I see this book as a bit of an experiment: I’ve certainly never seen a book following this format before, but who knows, it maycreateawholecollectionofbookswithcontradictionsabout softwaredevelopment. ⁵Asilverbulletisametaphorforanysolutionofextremeeffectiveness. Aboutthisbook iv ThebiggestbenefitIhavefoundinthisapproachisthatit’spar- ticularlydifficultforareadertoarguewithmeaboutsomething, becauseIamessentiallyarguingwithmyself! So,whatliesaheadisessentiallyabookofwhatGeorgeOrwell dubbed doublethink, the act of simultaneously accepting two mutuallycontradictorybeliefsascorrect. “To know and not to know, to be conscious of complete truthfulness while telling carefully con- structed lies, to hold simultaneously two opinions which canceled out, knowing them to be contra- dictory and believing in both of them, to use logic against logic, to repudiate morality while laying claim to it, to believe that democracy was impos- sible… to apply the same process to the process itself – that was the ultimate subtlety; consciously to induce unconsciousness, and then, once again, to become unconscious of the act of hypnosis you had just performed. Even to understand the word ‘doublethink’involvedtheuseofdoublethink.” (cid:24)GeorgeOrwell,1984 Enjoy. Before we start: what’s a paradev? Whatdoyouthinkofwhenyouhearthewordparadev? I’lltrytoexplainmy meaningofthetermwithatruestory. Acoupleofyearsagonow,justafterIstartedatThoughtWorks⁶, IreadatweetfromafellowprogrammerhereinBrisbanealong thelinesof“theparadevsatworkenjoyedmylunchtimesession on networking”. My ears pricked: “what’s a paradev?” I asked. “It’s someone who helps the developers develop” she replied. “Oh”Ithought. Iadmitmyinitialreactionwasshock,whatdoesthattermeven mean? The first things that came to mind when thinking ‘para’ wereparasites,paraplegics,paralysis,paranoia,buttheseweren’t related at all to software development. She told me she came up with the term to describe non-programmers who work in software from professions such as paramedics and paralegals, basicallyjobsthatfunctiontosupportahigherpaid,higherlevel professionsuchasdoctorsandlawyers.Iwasoffended,howdare shecallmethat. Butthatwasthenandthisisnow.I’vesincereappropriated⁷the term,muchlikethetermQueer⁸wasreappropriatedtwodecades ⁶http://thoughtworks.com ⁷http://en.wikipedia.org/wiki/Reappropriation ⁸http://en.wikipedia.org/wiki/Queer