Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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...
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 i...
Learn More About CounterStrings
• CounterString algorithms Explained
• sa6sfice.com/blog/archives/22 for James Bach's origi...
Kata Sugges*on - The Naive Forward
CounterString
write code to generate a String star/ng with *, and then 3*, etc. to
the ...
Kata Sugges*ons - The Formal CounterString
write code to generate a CounterString that matches how
JamesBach describes it ...
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...
Kata Sugges*ons - Write it to the Clipboard
Instead of wri.ng out your CounterString to the console, write it to
the clipb...
Kata Sugges*ons - Write it to the Field
Instead of wri.ng out your CounterString to the clipboard, make it
type it into a ...
Kata Sugges*ons - A New Implementa*on
Find a different implementa.on approach e.g. if you used recursion
change it to do so...
Kata Sugges*ons - Test Against an External
Oracle
Create automated scripts that execute your implementa4on and
compare the...
Kata Sugges*ons - Predic*ve Forward
Genera*on
For the 'ul+mate' challenge, try wri+ng an implementa+on that
generates Coun...
Example Implementa,ons of CounterStrings
• VBA (Excel) code
• Java main code, java
• JavaScript predic;ve, reverse
• Perl ...
About Alan Richardson
www.eviltester.com | www.compendiumdev.co.uk
• Contact Alan - eviltester.com/contact
• Linkedin - @e...
Nächste SlideShare
Wird geladen in …5
×

Programming katas for Software Testers - CounterStrings

664 Aufrufe

Veröffentlicht am

What would be suitable Code Katas for people wanting to learn how to code to support their testing?

CounterStrings

- `*3*5*7*9*12*15*`

A CounterString is a string like this `*3*5*7*9*12*15*` where the `*` represent the position 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 documenting test data.

https://www.eviltester.com/blog/eviltester/2019-02-27-programming-katas-for-testers/

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Programming katas for Software Testers - CounterStrings

  1. 1. The CounterString Coding Kata
  2. 2. Code Katas are a pre,y popular concept for programming: • codewars.com • codingdojo.org • leanpub.com/codingdojohandbook
  3. 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. 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. 5. Learn More About CounterStrings • CounterString algorithms Explained • sa6sfice.com/blog/archives/22 for James Bach's original wri6ng and work on CounterStrings
  6. 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. 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. 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. 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. 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. 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. 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. 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. 14. Example Implementa,ons of CounterStrings • VBA (Excel) code • Java main code, java • JavaScript predic;ve, reverse • Perl James Bach PerlClip
  15. 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

×