SlideShare a Scribd company logo
1 of 15
Download to read offline
The CounterString Coding Kata
Code Katas are a pre,y popular concept for
programming:
• codewars.com
• codingdojo.org
• leanpub.com/codingdojohandbook
What would be suitable Code Katas for people
wan5ng to learn how to code to support their
tes5ng?
CounterStrings seem like a good op3on
• eviltester.com/blog/eviltester/2019-02-27-programming-katas-
for-testers/
CounterStrings
• *3*5*7*9*12*15*
A CounterString is a string like this *3*5*7*9*12*15* where the
* represent the posi4on in the string of the number immediately
proceeding it. This is a 15 character CounterString.
These are useful because if you paste them into a field, and are
truncated then it is easy to see what they were truncated to, it is as
James Bach describes it, self documen:ng test data.
Learn More About CounterStrings
• CounterString algorithms Explained
• sa6sfice.com/blog/archives/22 for James Bach's original wri6ng
and work on CounterStrings
Kata Sugges*on - The Naive Forward
CounterString
write code to generate a String star/ng with *, and then 3*, etc. to
the length of your CounterString, e.g this would create a ten
character CounterString like *3*5*7*9*1.
• I describe this as Forward CounterString Genera7on
Kata Sugges*ons - The Formal CounterString
write code to generate a CounterString that matches how
JamesBach describes it where the string ends with * and is of the
required length and the number before each * is the posi;on of the
* in the string, so a 10 character CounterString would read
*3*5*7*10*
The Reverse CounterString Algorithm is good for this.
Kata Sugges*ons - Write it to a file
Instead of wri.ng out your CounterString to the console, write it to
a file
A Predic)ve Forward CounterString works well for this, but start
with a forward or reverse algorithm first.
Kata Sugges*ons - Write it to the Clipboard
Instead of wri.ng out your CounterString to the console, write it to
the clipboard
You will have to learn a li/le about how your language interacts
with the clipboard but this is a very useful 8mesaving addi8on to
your tool.
Kata Sugges*ons - Write it to the Field
Instead of wri.ng out your CounterString to the clipboard, make it
type it into a field
There are mul*ple ways to implement this e.g. :
• actually typing into the field using OS keyboard events
• simulated keyboard events e.g. JavaScript events
• copying to clipboard and triggering a paste
• amending the field directly to add the data
Kata Sugges*ons - A New Implementa*on
Find a different implementa.on approach e.g. if you used recursion
change it to do something else, if you didn't use recursion try that,
if you were reversing strings try doing it without reversing strings
Repeat one of your original katas and improve it or experiment with
a different approach - not the algorithm, just the implementa=on.
Kata Sugges*ons - Test Against an External
Oracle
Create automated scripts that execute your implementa4on and
compare the output with a different implementa4on
e.g. James Bach's perl clip this might ini3ally be a pre-generated file
or responses, but create one that calls PerlClip dynamically
Kata Sugges*ons - Predic*ve Forward
Genera*on
For the 'ul+mate' challenge, try wri+ng an implementa+on that
generates CounterStrings the way James Bach describes them, but
does it dynamically so that you could stream the genera+on. i.e it
does not build the full string and reverse it
I describe this as Predic.ve Forward CounterString Genera.on
Future Katas can involve refactoring and improving your algorithm.
Example Implementa,ons of CounterStrings
• VBA (Excel) code
• Java main code, java
• JavaScript predic;ve, reverse
• Perl James Bach PerlClip
About Alan Richardson
www.eviltester.com | www.compendiumdev.co.uk
• Contact Alan - eviltester.com/contact
• Linkedin - @eviltester
• Twi:er - @eviltester
• Instagram - @eviltester
• Youtube - EvilTester

More Related Content

What's hot

TDD - survival guide
TDD - survival guide TDD - survival guide
TDD - survival guide
vitalipe
 
The Art Of Debugging
The Art Of DebuggingThe Art Of Debugging
The Art Of Debugging
svilen.ivanov
 

What's hot (20)

Tdd - introduction
Tdd - introductionTdd - introduction
Tdd - introduction
 
Effective Unit Test Style Guide
Effective Unit Test Style GuideEffective Unit Test Style Guide
Effective Unit Test Style Guide
 
Debugging
DebuggingDebugging
Debugging
 
Php tests tips
Php tests tipsPhp tests tips
Php tests tips
 
TDD - survival guide
TDD - survival guide TDD - survival guide
TDD - survival guide
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
 
Unit Testing in iOS
Unit Testing in iOSUnit Testing in iOS
Unit Testing in iOS
 
Chapter 13 exceptional handling
Chapter 13 exceptional handlingChapter 13 exceptional handling
Chapter 13 exceptional handling
 
The Art Of Debugging
The Art Of DebuggingThe Art Of Debugging
The Art Of Debugging
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Most Common Core Java Practical Interview Questions - Part 1
Most Common Core Java Practical Interview Questions - Part 1Most Common Core Java Practical Interview Questions - Part 1
Most Common Core Java Practical Interview Questions - Part 1
 
Front end unit testing using jasmine
Front end unit testing using jasmineFront end unit testing using jasmine
Front end unit testing using jasmine
 
Laravel Unit Testing
Laravel Unit TestingLaravel Unit Testing
Laravel Unit Testing
 
Software Engineering - RS3
Software Engineering - RS3Software Engineering - RS3
Software Engineering - RS3
 
1z0-808-certification-questions-sample
1z0-808-certification-questions-sample1z0-808-certification-questions-sample
1z0-808-certification-questions-sample
 
150412 38 beamer methods of binary analysis
150412 38 beamer methods of  binary analysis150412 38 beamer methods of  binary analysis
150412 38 beamer methods of binary analysis
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 
From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017
 
Java bad coding practices
Java bad coding practicesJava bad coding practices
Java bad coding practices
 
Quick Tour to Front-End Unit Testing Using Jasmine
Quick Tour to Front-End Unit Testing Using JasmineQuick Tour to Front-End Unit Testing Using Jasmine
Quick Tour to Front-End Unit Testing Using Jasmine
 

Similar to Programming katas for Software Testers - CounterStrings

Php Loop
Php LoopPhp Loop
Php Loop
lotlot
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Language
zone
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoo
birbal
 

Similar to Programming katas for Software Testers - CounterStrings (20)

Prefix casting versus as-casting in c#
Prefix casting versus as-casting in c#Prefix casting versus as-casting in c#
Prefix casting versus as-casting in c#
 
General Talk on Pointers
General Talk on PointersGeneral Talk on Pointers
General Talk on Pointers
 
Intro to programing with java-lecture 3
Intro to programing with java-lecture 3Intro to programing with java-lecture 3
Intro to programing with java-lecture 3
 
Php Loop
Php LoopPhp Loop
Php Loop
 
Ecs 10 programming assignment 4 loopapalooza
Ecs 10 programming assignment 4   loopapaloozaEcs 10 programming assignment 4   loopapalooza
Ecs 10 programming assignment 4 loopapalooza
 
10 Jo P Oct 07
10 Jo P Oct 0710 Jo P Oct 07
10 Jo P Oct 07
 
Angular - Chapter 2 - TypeScript Programming
Angular - Chapter 2 - TypeScript Programming  Angular - Chapter 2 - TypeScript Programming
Angular - Chapter 2 - TypeScript Programming
 
Software development best practices & coding guidelines
Software development best practices & coding guidelinesSoftware development best practices & coding guidelines
Software development best practices & coding guidelines
 
(4) cpp automatic arrays_pointers_c-strings_exercises
(4) cpp automatic arrays_pointers_c-strings_exercises(4) cpp automatic arrays_pointers_c-strings_exercises
(4) cpp automatic arrays_pointers_c-strings_exercises
 
Brixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 RecapBrixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 Recap
 
JAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptxJAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptx
 
Full Stack Online Course in Marathahalli| AchieversIT
Full Stack Online Course in Marathahalli| AchieversITFull Stack Online Course in Marathahalli| AchieversIT
Full Stack Online Course in Marathahalli| AchieversIT
 
C –FAQ:
C –FAQ:C –FAQ:
C –FAQ:
 
Intro To BOOST.Spirit
Intro To BOOST.SpiritIntro To BOOST.Spirit
Intro To BOOST.Spirit
 
Lập trình C
Lập trình CLập trình C
Lập trình C
 
Analysis of the Trans-Proteomic Pipeline (TPP) project
Analysis of the Trans-Proteomic Pipeline (TPP) projectAnalysis of the Trans-Proteomic Pipeline (TPP) project
Analysis of the Trans-Proteomic Pipeline (TPP) project
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Language
 
Les origines de Javascript
Les origines de JavascriptLes origines de Javascript
Les origines de Javascript
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoo
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Language
 

More from Alan Richardson

More from Alan Richardson (20)

Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021Add More Security To Your Testing and Automating - Saucecon 2021
Add More Security To Your Testing and Automating - Saucecon 2021
 
Automating to Augment Testing
Automating to Augment TestingAutomating to Augment Testing
Automating to Augment Testing
 
Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009Open source tools - Test Management Summit - 2009
Open source tools - Test Management Summit - 2009
 
Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020Automating Tactically vs Strategically SauceCon 2020
Automating Tactically vs Strategically SauceCon 2020
 
The Future of Testing Webinar
The Future of Testing WebinarThe Future of Testing Webinar
The Future of Testing Webinar
 
Devfest 2019-slides
Devfest 2019-slidesDevfest 2019-slides
Devfest 2019-slides
 
Secrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slidesSecrets and Mysteries of Automated Execution Keynote slides
Secrets and Mysteries of Automated Execution Keynote slides
 
Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604Automating Pragmatically - Testival 20190604
Automating Pragmatically - Testival 20190604
 
Joy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan RichardsonJoy of Coding Conference 2019 slides - Alan Richardson
Joy of Coding Conference 2019 slides - Alan Richardson
 
Technology Based Testing
Technology Based TestingTechnology Based Testing
Technology Based Testing
 
About Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil TesterAbout Consultant Alan Richardson Compendium Developments Evil Tester
About Consultant Alan Richardson Compendium Developments Evil Tester
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Automating and Testing a REST API
Automating and Testing a REST APIAutomating and Testing a REST API
Automating and Testing a REST API
 
Technical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" GameTechnical and Testing Challenges: Using the "Protect The Square" Game
Technical and Testing Challenges: Using the "Protect The Square" Game
 
TDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzzTDD - Test Driven Development - Java JUnit FizzBuzz
TDD - Test Driven Development - Java JUnit FizzBuzz
 
If you want to automate, you learn to code
If you want to automate, you learn to codeIf you want to automate, you learn to code
If you want to automate, you learn to code
 
How To Test With Agility
How To Test With AgilityHow To Test With Agility
How To Test With Agility
 
Your Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be FlakyYour Automated Execution Does Not Have to be Flaky
Your Automated Execution Does Not Have to be Flaky
 
What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.What is Testability vs Automatability? How to improve your Software Testing.
What is Testability vs Automatability? How to improve your Software Testing.
 
What is Agile Testing? A MindMap
What is Agile Testing? A MindMapWhat is Agile Testing? A MindMap
What is Agile Testing? A MindMap
 

Recently uploaded

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 

Programming katas for Software Testers - CounterStrings

  • 2. Code Katas are a pre,y popular concept for programming: • codewars.com • codingdojo.org • leanpub.com/codingdojohandbook
  • 3. What would be suitable Code Katas for people wan5ng to learn how to code to support their tes5ng? CounterStrings seem like a good op3on • eviltester.com/blog/eviltester/2019-02-27-programming-katas- for-testers/
  • 4. CounterStrings • *3*5*7*9*12*15* A CounterString is a string like this *3*5*7*9*12*15* where the * represent the posi4on in the string of the number immediately proceeding it. This is a 15 character CounterString. These are useful because if you paste them into a field, and are truncated then it is easy to see what they were truncated to, it is as James Bach describes it, self documen:ng test data.
  • 5. Learn More About CounterStrings • CounterString algorithms Explained • sa6sfice.com/blog/archives/22 for James Bach's original wri6ng and work on CounterStrings
  • 6. Kata Sugges*on - The Naive Forward CounterString write code to generate a String star/ng with *, and then 3*, etc. to the length of your CounterString, e.g this would create a ten character CounterString like *3*5*7*9*1. • I describe this as Forward CounterString Genera7on
  • 7. Kata Sugges*ons - The Formal CounterString write code to generate a CounterString that matches how JamesBach describes it where the string ends with * and is of the required length and the number before each * is the posi;on of the * in the string, so a 10 character CounterString would read *3*5*7*10* The Reverse CounterString Algorithm is good for this.
  • 8. Kata Sugges*ons - Write it to a file Instead of wri.ng out your CounterString to the console, write it to a file A Predic)ve Forward CounterString works well for this, but start with a forward or reverse algorithm first.
  • 9. Kata Sugges*ons - Write it to the Clipboard Instead of wri.ng out your CounterString to the console, write it to the clipboard You will have to learn a li/le about how your language interacts with the clipboard but this is a very useful 8mesaving addi8on to your tool.
  • 10. Kata Sugges*ons - Write it to the Field Instead of wri.ng out your CounterString to the clipboard, make it type it into a field There are mul*ple ways to implement this e.g. : • actually typing into the field using OS keyboard events • simulated keyboard events e.g. JavaScript events • copying to clipboard and triggering a paste • amending the field directly to add the data
  • 11. Kata Sugges*ons - A New Implementa*on Find a different implementa.on approach e.g. if you used recursion change it to do something else, if you didn't use recursion try that, if you were reversing strings try doing it without reversing strings Repeat one of your original katas and improve it or experiment with a different approach - not the algorithm, just the implementa=on.
  • 12. Kata Sugges*ons - Test Against an External Oracle Create automated scripts that execute your implementa4on and compare the output with a different implementa4on e.g. James Bach's perl clip this might ini3ally be a pre-generated file or responses, but create one that calls PerlClip dynamically
  • 13. Kata Sugges*ons - Predic*ve Forward Genera*on For the 'ul+mate' challenge, try wri+ng an implementa+on that generates CounterStrings the way James Bach describes them, but does it dynamically so that you could stream the genera+on. i.e it does not build the full string and reverse it I describe this as Predic.ve Forward CounterString Genera.on Future Katas can involve refactoring and improving your algorithm.
  • 14. Example Implementa,ons of CounterStrings • VBA (Excel) code • Java main code, java • JavaScript predic;ve, reverse • Perl James Bach PerlClip
  • 15. About Alan Richardson www.eviltester.com | www.compendiumdev.co.uk • Contact Alan - eviltester.com/contact • Linkedin - @eviltester • Twi:er - @eviltester • Instagram - @eviltester • Youtube - EvilTester