History ClassFor software testersCapgemini, CoP TestingJoris Meerts, 27 May 2013v1.2
About myself• Joris Meerts• Software tester since 2007• Capgemini, Testing public, since March 2012• Context-driven school...
Test all things, hold fast that which is good.Thessalonians 5:21 (AD 52)
Topics• Some Famous Books• My Favourite Techniques• Tracing Some Root Concepts• So What’s New?
The growth of a testing disciplineThe growth of a testing discipline has been painfully slow,despite the acknowledged need...
Some Famous BooksProgram Test Methods (1973)• ‘Program’ testing, not‘software’ testing• Acceptance testing• Test levels• D...
Some Famous BooksThe Mythical Man-Month (1975)• Adding people to a lateproject only makes itlater (unpartitionabletask).• ...
Some Famous BooksThe Art of Software Testing (1979)• Black box softwaretesting• Higher order testing(reliability,configura...
“Testing is anextremelycreative andintellectuallychallengingtask.”Some Famous BooksThe Art of Software Testing (1979)“Good...
Some Famous BooksSoftware Engineering Economics (1981)• Famous cost-of-changecurve.• The curve is animportant reason forwa...
My Favourite TechniquesDecision Table (1961)• Burton Grad - Tabular Form in Decision Logic (1961)• Decision rules for comp...
My Favourite TechniquesCause-Effect Graph (1973)• William Elmendorf -Cause-Effect Graphs inFunctional Testing
My Favourite TechniquesEquivalence partitioning (1975)• John B. Goodenough,Susan L. Gerhart –Toward a Theory of TestData S...
My Favourite TechniquesState Transition Testing (1978)• Tsun S. Chow - TestingSoftware DesignModeled by Finite-StateMachines
My Favourite TechniquesCRUD Analysis (1981)• James Martin, CliveFinkelstein -Information Engineering
My Favourite TechniquesExploratory Testing (1988)• Cem Kaner – Testing Computer Software• Exploratory testing is not a tes...
My Favourite TechniquesClassification Trees (1993)• Matthias Grochtmann,Klaus Grimm -Classification Trees forPartition Tes...
My Favourite TechniquesPairwise Testing (1996)• David M. Cohen, Siddhartha R.Dalal, Jesse Parelius, Gardner C.Patton - The...
My Favourite TechniquesSoap Opera Testing (2004)• Hans Buwalda – SoapOpera Testing• Tests should be fun andaggressive
Tracing Some Root ConceptsTaylorism (1912)• Frederick WinslowTaylor – Principlesof ScientificManagement• Measurement,stand...
Tracing Some Root ConceptsWaterfall (1970)Winston Royce - Managing the Development of Large SoftwareSystems
“I believe in thisconcept, but theimplementationdescribed above isrisky and invitesfailure.”Tracing Some Root ConceptsWate...
Tracing Some Root ConceptsV-model (1986)Paul E. Rook - Controlling Software Projects
Tracing Some Root ConceptsStandards (1)• IEEE 829 Standard for Software and System TestDocumentation (1983)• IEEE 1012 Sta...
Tracing Some Root ConceptsStandards (2)• BCS Standard for Software Component Testing (1998)• International Software Testin...
Tracing Some Root ConceptsDefinition of testingThe process consisting of all lifecycle activities,both static and dynamic,...
So What’s New?Test is deadJulian Harty – Traditional Testing R.I.P. (2010)Goranka Bjedov – The Future of Quality (2011)Jam...
So What’s New?Shifting paradigmsTesting is not a phaseJack Reeves – What Is Software Design?(1992)Les Hatton – Testing is ...
So What’s New?Shifting paradigmsSapient testingCem Kaner, James Bach, Bret Pettichord –Lessons Learned in Software Testing...
So What’s New?Shifting paradigmsTesting skills / competences:• Communicative• Precise• Convincing• Objective• Creative• Se...
So What’s New?Shifting paradigmsTesting is the art of skillfulinvestigation by experimentation
So What’s New?Shifting paradigmsTesting is the infinite processof comparing the invisibleto the ambiguousso as to avoid th...
So What’s New?Shifting paradigms“A tester is someone who knows that thingscould be different.”“Its an awkward field. If yo...
So What’s New?Roles in testing• Auditor• Acceptance manager• Test facilitator• Cultural host• Business consultant• Quality...
History Class - For software testers
History Class - For software testers
History Class - For software testers
Upcoming SlideShare
Loading in …5
×

History Class - For software testers

1,246 views

Published on

A History class for software testers, discussing some important books, the development of test techniques and some concepts in software testing.

Published in: Technology, Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
1,246
On SlideShare
0
From Embeds
0
Number of Embeds
607
Actions
Shares
0
Downloads
0
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide
  • Wie heeft er een boek gelezen over software testen buiten het verplichte curriculum. Hoe kunnen we pretenderen dat we professionals zijn als we niet eens een boek over testen gelezen hebben?Op zich spreekt het lezen van een boek over software testen niet in je voordeel, want er zijn niet heel veel goede boeken over software testen.
  • Brieven van de apostel Paulus aan de kerk van de Griekse stad Thessaloniki, geschreven omstreeks 52 na Christus.Het Nieuwe Testament zegt dat we alles moeten testen. Hier zijn we inmiddels wel op terug gekomen. Waardoor je ziet dat het vakgebied zich ontwikkelt.
  • Verhaal over totstandkoming van de tijdlijn.Uitgangspunt was The NineForgettings van Lee Copeland (StartWest 2007). Copeland maakte zich zorgen over het gebrek aan kennis van hoe ons vakgebied zich heeft ontwikkeld. Gemaakt in samenwerking met Dorothy Graham. Wie weet wie Dorothy Graham is?Gebruikt in presentatie van Dorothy Graham voor de SIGIST, 2010. Gebruikt in keynote van ScottBarber, Agile Testing Days 2012.De manieren waarop je naar ontwikkelingen in het vakgebied kunt kijken.
  • Ik wil het gaan hebben over de geschiedenis. Aan de hand van een overzicht van het vakgebied testen (gehaald uit de geschiedenis) kunnen we echter ook naar de toekomst kijken. Dit gaan we aan het einde van de presentatie dan ook doen.Groen gemarkeerd zijn de gebieden die zich op dit moment het meest ontwikkelen. Bijvoorbeeld: security en performance zijn deelgebieden waarin nieuwe technologie en paradigma’s gevonden worden. Model-based testen is een paradigma dat zich ontwikkelt. En testers nemen nieuwe rollen in, de agile tester is daarvan een goed voorbeeld.De meeste kennis die we hebben is echter oud.
  • Introductie door William Hetzel. Is er nu echt zo veel veranderd in ons vakgebied?Er zijn nog steeds genoeg mensen die absoluut niet weten wat testen precies is of doet.Er is ruimschoots discussie over de definitie van testen (testingvschecking) of van bijvoorbeeld een testgeval. Het hangt ervan af aan welke expert je het vraagt?En zit er nu echt vooruitgang in het vakgebied? Volgens de aanhangers van Agile moeten programmeurs meer gaan testen en testers meer gaan programmeren. Dan ben je weer terug in de jaren ’70.
  • Het eerste boek over software testen.Gaat bijvoorbeeld in op acceptatie testen. Genoeg principes die we op dit moment nog hanteren komen naar voren in dit boek.Als testers denken we vaak dat alles wat we doen nieuw is. Zeker Agile mensen hebben daar last van. Wat dit boek aantoont is dat zeker niet alles nieuw is. We zouden vaker de literatuur erop na moeten slaan.
  • Lessonslearned bij het ontwikkelen van OS/360. De ontwikkeling van OS/360 liep niet zo heel erg lekker.Dit boek is belangrijk omdat het gaat over de praktijk! Een belangrijk wetmatigheid, waar we in de praktijk nog dagelijks tegenaan lopen, is dat het nauwelijks zin heeft om aan het einde van project veel mensen toe te voegen. Dit heeft te maken met de deelbaarheid, de overdraagbaarheid (complexiteit) van taken en de afhankelijkheden tussen taken.Silverbullet ().
  • Alhoewel in dit boek nog steeds gesproken wordt over ‘program testing’ maakt Myers een belangrijke stap naar black box testen, het testen zonder naar de code te kijken. Dit onderscheid luidt een andere manier van denken over testen in, namelijk dat testen een breder onderzoek is naar het functioneren van de software.Afsplitsing tussen tester en software ontwikkelaar. “A programmingorganisationshouldnot test itsown programs”.
  • GlenfordMyers loopt vooruit op dingen die we eigenlijk pas in de afgelopen jaren goed zijn gaan beseffen. “Good software testing is a challenging intellectual process.” (Lessons Learned in Software Testing, 2001)
  • Het ‘Sneeuwwitje en de zeven dwergen’ van software testen.Zo ongeveer elk Nederlands boek over testen verwijst naar dit boek. Boehm voert het (enige) argument om zo vroeg mogelijk te beginnen met testen. Namelijk: des te eerder de fout gevonden wordt, des te minder het kost om de fout op te lossen. Boehmzeft dat we om deze reden op een waterval manier software moeten ontwikkelen. Later (in 1986) schakelt Boehm over op het iteratief ontwikkelen van software.
  • Uit het artikel van Boehm, 1976. Hierin zijn de eerste drie gegevensverzamelingen zichtbaar (IBM (Fagan), GTE (telefoniebedrijf, Daly, 1977) en TRW (Boehm). Er komen er nog een paar bij in 1981 (Safeguard (Stephenson) en enkele kleinere, minder gestructureerde projecten).Anecdotisch materiaal wordt herhaald en herhaald in ons vakgebied.
  • In 1961 nog niet als test techniek in gebruik, maar later wel in deze vorm als test techniek aangenomen. Nog steeds actueel voor het testen van bijvoorbeeld bedrijfsregels.
  • Grafentheorie speelt sinds 1960 een rol in software ontwikkeling (R. M. Karp, "A note on the application of graph theory to digital computer programming,“). Elmendorf’s graaf is wat complexer dan de testgraaf die ik geleerd heb.Grafentheorie is onderdeel van systeemtheorie.
  • Aanzet tot het ontwerpen van programma’s op een gestructureerde manier (Structured design).Poging om software te maken waar minder fouten in zitten.
  • Dit artikel is essentieel in software testen om het gezien kan worden als het startpunt van de academische discussie over software testen. Nog steeds is software testen, het formeel bewijzen dat een programma correct is, onderwerp van universitair onderzoek.Rond dit artikel doet een aantal testtechnieken z’n introductie, zoals de analyse van paden en het gebruik van equivalentieklassen.In de onderbouwing nemen Goodenough & Gerhart mee dat er getest moet worden vanuit de specificaties om de volledigheid, validiteit en juistheid van een programma aan te tonen.De vraag is waarom het testen in de praktijk zo weinig in verband staat met de academische discussie.Een antwoord op die vraag is dat de praktijk zelden lijkt op de laboratorium experimenten die onderzoekers uitvoeren. De randvoorwaarden voor een academisch experiment en de randvoorwaarden voor een daadwerkelijk software project verschillen op nogal veel punten.
  • Finite state machines bestonden al een tijdje. Chow bedenkt hoe je ze kunt testen en hoe je de dekkingsgraad kunt definiëren. Naar dit artikel, dat de basis vormt voor state transition testing, wordt zelden of nooit verwezen.
  • Gegevenscyclustest. Geen plaatje, verder weinig toelichting nodig.
  • Exploratory testen is het enige nieuwe paradigma in software testen. Het gaat uit van ontdekking, onderzoek en leren. Gelijktijdig testen uitvoeren en bedenken.
  • Deze techniek heb ik in een vorige opdracht gebruikt en is erg, erg leerzaam.
  • Opdelen in klein controleerbare taken.De eerste lopende band die we in testen tegen komen is de volgende:
  • De meesten van ons zitten regelmatig in een watervalachtig project. Toch weet niet iedereen de bron van waterval ontwikkelen. Ik sprak met een senior architect die de bron niet kende en die het ook werkelijk weinig boeide. Het is hetzelfde als een professionele wielrenner die niets van zijn fiets weet.Waterval gaat over taken die elkaar opvolgen. Als de eerste taak klaar is begint de tweede taak enz.. Dit is in software ontwikkeling uiterst frustrerend, omdat fasen overlappen of misschien in een totaal andere volgorde op elkaar aansluiten. Het is best wel raar dat het waterval model zo’n succes heeft gekend, zeker getuige de volgende opmerking van Royce (de eerste zin onder dit plaatje).
  • Het is bijzonder dat de waterval de keuze is geworden van zo veel bedrijven en dat de methode nog steeds wordt gebruikt. Misschien wordt er nog mee gewerkt omdat het lijkt alsof het waterval proces beheersbaar is. Misschien heeft het te maken met de omvang van projecten, zijn grote it-projecten heel lastig op een andere manier te realiseren.Waarschijnlijk ook populair doordat het model eenvoudig is en daardoor makkelijker te begrijpen is door bedrijven die software ontwikkeling erbij doen. Agile is uiteindelijk veel complexer en vraagt een ander type, verder gevorderd ontwikkelaar.
  • Dit V-model komt waarschijnlijk in de buurt van hetgeen Paul Rook in 1986 presenteerde. Dit plaatje is gedateerd 1985 en komt uit een verzameling van Barry Boehm. Paul Rook , GEC Software Ltd (London).Het model wordt zo’n beetje in ieder boek over software testen genoemd, maar er wordt niet verwezen naar een bron. Ook nauwelijks te vinden via Google. Uiteindelijk werd ik door StuartReid getipt over Rook.Het V model is een Europees model (Brits model) dat in de VS misschien minder vaste voet aan de grond heeft gekregen.
  • Dit zijn de modellen, standaarden en processen op basis waarvan ons vakgebied zich heeft ontwikkeld, zich kenmerkt.
  • Parallel aan het feit dat sommige partijen nog steeds wanhopig proberen om het definitieve model van testen te maken, loopt het academische debat. Academici doen nog altijd onderzoek naar de theoretische onderbouwing van testen.ISTQB opgericht in 2002.Een en ander houdt in dat het werk in testen zo ingericht moet zijn dat testers vervangbaar zijn. Dat het mogelijk is om een tester van de straat te plukken en verder te gaan.
  • Deze definitie leunt op processen (dus formele activiteiten) en formele producten. In principe wordt er niet gesproken over wat testen is; ofwel, welke beginselen ten grondslag liggen aan de genoemde evaluatie!
  • Het gevolg van het in testen is dat rond 2010 testen dood werd verklaard. We hebben het dan over het traditionele definieren van testen aan de hand van een ‘testproces’. De beginselen die ten grondslag liggen aan het proces testen zijn in ieder geval niet meer valide in de start-ups en in de bedrijven die zich uitsluitend bezig houden met het ontwikkelen van software. Deze bedrijven blijken beter af te zijn zonder waterval, zonder fasering, zonder qualityassurance.Een nieuwe filosofie is noodzakelijk.
  • Reeves: “Testing and debugging are design activities.”Hatton: “Testing is an attitude of mind which permeates the entire software process.”Hendrickson: “Testing is a way of life.”
  • A sapient process is any process that relies on skilled humans.
  • TmapNext wijdt 1 ½ van 745 pagina’s aan de vaardigheden waarover een tester moet beschikken, en behoort dus duidelijk tot het oude domein van testen.
  • Mijn eigen definitie van testen. Testen gaat niet over proces, activiteiten en producten, testen gaat over het doen van onderzoek. Testers zijn onderzoekers en zouden eigenlijk in hoge mate moeten beschikken over de vaardigheden van een onderzoeker.
  • Vaardigheden op het gebied van onderzoek zijn meer dan gewenst bij de software tester. Zie hier de definitie van testen waarin alleen maar onderzekerheden en onbekenden zitten. Dit komt een stuk dichter in de buurt van het echte testen dan de procesbeschrijving. Alle punten zijn uitzoekwerk voor de tester.Process betekent volgens Bach niet een blokkendoos van activiteiten maar een model (in dit geval heuristieken) dat gebruikt wordt.
  • In het TestNet jubileum boek staat veel over de toekomst van testen, onder andere over de verschillende rollen van testers.
  • Het eerste boek over software testen.Gaat bijvoorbeeld in op acceptatie testen
  • History Class - For software testers

    1. 1. History ClassFor software testersCapgemini, CoP TestingJoris Meerts, 27 May 2013v1.2
    2. 2. About myself• Joris Meerts• Software tester since 2007• Capgemini, Testing public, since March 2012• Context-driven school of testing• www.testingreferences.com• Member of the Dutch Exploratory Workshopon Testing (DEWT)
    3. 3. Test all things, hold fast that which is good.Thessalonians 5:21 (AD 52)
    4. 4. Topics• Some Famous Books• My Favourite Techniques• Tracing Some Root Concepts• So What’s New?
    5. 5. The growth of a testing disciplineThe growth of a testing discipline has been painfully slow,despite the acknowledged need for better quality software.Even the scope of what is or is not a testing activity is notwell defined.Terminology in the field is unclear and literature thatwould establish some foundations has not been written.Testing as an activity needs and requires more attention.
    6. 6. Some Famous BooksProgram Test Methods (1973)• ‘Program’ testing, not‘software’ testing• Acceptance testing• Test levels• Design for testability• Test specificationlanguages• Test automation
    7. 7. Some Famous BooksThe Mythical Man-Month (1975)• Adding people to a lateproject only makes itlater (unpartitionabletask).• Plan to throw one away;you will, anyhow.• Let testers scrutinizespecifications longbefore coding starts.
    8. 8. Some Famous BooksThe Art of Software Testing (1979)• Black box softwaretesting• Higher order testing(reliability,configuration,installability, usabilitytesting)
    9. 9. “Testing is anextremelycreative andintellectuallychallengingtask.”Some Famous BooksThe Art of Software Testing (1979)“Good softwaretesting is achallengingintellectualprocess.”Cem Kaner, James Bach, BretPettichord – Lessons Learned inSoftware Testing (2001)
    10. 10. Some Famous BooksSoftware Engineering Economics (1981)• Famous cost-of-changecurve.• The curve is animportant reason forwaterfall development.
    11. 11. My Favourite TechniquesDecision Table (1961)• Burton Grad - Tabular Form in Decision Logic (1961)• Decision rules for complex applications• Eliminate inconsistencies and redundancies
    12. 12. My Favourite TechniquesCause-Effect Graph (1973)• William Elmendorf -Cause-Effect Graphs inFunctional Testing
    13. 13. My Favourite TechniquesEquivalence partitioning (1975)• John B. Goodenough,Susan L. Gerhart –Toward a Theory of TestData Selection• We prove afundamental theoremshowing that properlystructured tests arecapable ofdemonstrating theabsence of errors in aprogram.
    14. 14. My Favourite TechniquesState Transition Testing (1978)• Tsun S. Chow - TestingSoftware DesignModeled by Finite-StateMachines
    15. 15. My Favourite TechniquesCRUD Analysis (1981)• James Martin, CliveFinkelstein -Information Engineering
    16. 16. My Favourite TechniquesExploratory Testing (1988)• Cem Kaner – Testing Computer Software• Exploratory testing is not a testing technique. Its a way ofthinking about testing.
    17. 17. My Favourite TechniquesClassification Trees (1993)• Matthias Grochtmann,Klaus Grimm -Classification Trees forPartition Testing• CTE XL
    18. 18. My Favourite TechniquesPairwise Testing (1996)• David M. Cohen, Siddhartha R.Dalal, Jesse Parelius, Gardner C.Patton - The CombinatorialDesign Approach to AutomaticTest Generation• An empirical study of userinterface software at Telcordiafound that most field faults werecaused by either incorrect singlevalues or by an interaction ofpairs of values.
    19. 19. My Favourite TechniquesSoap Opera Testing (2004)• Hans Buwalda – SoapOpera Testing• Tests should be fun andaggressive
    20. 20. Tracing Some Root ConceptsTaylorism (1912)• Frederick WinslowTaylor – Principlesof ScientificManagement• Measurement,standards,mechanization
    21. 21. Tracing Some Root ConceptsWaterfall (1970)Winston Royce - Managing the Development of Large SoftwareSystems
    22. 22. “I believe in thisconcept, but theimplementationdescribed above isrisky and invitesfailure.”Tracing Some Root ConceptsWaterfall (1970)
    23. 23. Tracing Some Root ConceptsV-model (1986)Paul E. Rook - Controlling Software Projects
    24. 24. Tracing Some Root ConceptsStandards (1)• IEEE 829 Standard for Software and System TestDocumentation (1983)• IEEE 1012 Standard for Software Verification andValidation Plans (1986)• Capability Maturity Model (1988)• ISO 9126 Software engineering - Product quality(1991)• TMap (1995)• Testing Maturity Model (1996)
    25. 25. Tracing Some Root ConceptsStandards (2)• BCS Standard for Software Component Testing (1998)• International Software Testing Qualifications Board(2002)• ISO 29119 Software Testing (2012)
    26. 26. Tracing Some Root ConceptsDefinition of testingThe process consisting of all lifecycle activities,both static and dynamic, concerned withplanning, preparation and evaluation ofsoftware products and related work productsto determine that they satisfy specifiedrequirements, to demonstrate that they are fitfor purpose and to detect defects.ISTQB - Standard glossary of terms used inSoftware Testing (2012)
    27. 27. So What’s New?Test is deadJulian Harty – Traditional Testing R.I.P. (2010)Goranka Bjedov – The Future of Quality (2011)James Whittaker – All That Testing is Getting in theWay of Quality (2011)Alberto Savoia – Test is Dead (2011)• Testing slows projects down• Most testing is futile (incorrectdiagnosis, irrelevant bugs)• Value of quality < Price of quality• It’s cheaper to fix the bug than to find it• Users are better testers!• Only the code matters• The value of testing is not in the artifacts
    28. 28. So What’s New?Shifting paradigmsTesting is not a phaseJack Reeves – What Is Software Design?(1992)Les Hatton – Testing is not a phase (1999)Elisabeth Hendrickson – Agile Testing,NinePrinciples and Six Concrete Practices forTesting on Agile Teams (2008)
    29. 29. So What’s New?Shifting paradigmsSapient testingCem Kaner, James Bach, Bret Pettichord –Lessons Learned in Software Testing (2001)James Bach – Sapient Processes (2007)
    30. 30. So What’s New?Shifting paradigmsTesting skills / competences:• Communicative• Precise• Convincing• Objective• Creative• SensitiveTim Koomen, Leo van der Aalst, BartBroekman, Michel Vroon - Tmap Next(2006), page 464 - 465
    31. 31. So What’s New?Shifting paradigmsTesting is the art of skillfulinvestigation by experimentation
    32. 32. So What’s New?Shifting paradigmsTesting is the infinite processof comparing the invisibleto the ambiguousso as to avoid the unthinkablehappening to the anonymous.James Bach - Becoming a Software TestingExpert (2006)
    33. 33. So What’s New?Shifting paradigms“A tester is someone who knows that thingscould be different.”“Its an awkward field. If you wanted solidground to stand on, you chose the wrongvocation."James Bach – The Gift of Time (2008)
    34. 34. So What’s New?Roles in testing• Auditor• Acceptance manager• Test facilitator• Cultural host• Business consultant• Quality assurancemanager

    ×