Presentation is loading. Please wait.

Presentation is loading. Please wait.

@esconfs|#esconfs Programming for Testers It is easy! EuroSTAR Webinar Tuesday 15 th September 2015 Presented by: Graham Thomas Phillip Isles 1.

Similar presentations


Presentation on theme: "@esconfs|#esconfs Programming for Testers It is easy! EuroSTAR Webinar Tuesday 15 th September 2015 Presented by: Graham Thomas Phillip Isles 1."— Presentation transcript:

1 @esconfs|#esconfs Programming for Testers It is easy! EuroSTAR Webinar Tuesday 15 th September 2015 Presented by: Graham Thomas Phillip Isles 1

2 @esconfs|#esconfs Abstract We hear a lot these days about how testers should learn to code, become more technical, and have more development orientated skills. Unless you came into software testing as a ‘burnt out’ developer, it is unlikely that you have coding skills, or a deep understanding of the technical ins and outs of your current systems landscape. What can you do about it? Is programming hard? How can you learn to code, gain the benefits and still master your current workload, which keeps on relentlessly increasing? In this webinar, a companion piece to last year’s conference workshop, we show you how easy it actually is, as a tester, to learn how to program. The hard part, as always, is how to start. We will start with 3 simple steps and show you how to get up and running with Python. And to help you back in the office we will arm you with some of the most useful on-line references and information that is available. Each journey starts with a single step. Let us help you take your first programming step today. Key Takeaways: ◦A deeper insight into the Testers need to learn to code debate ◦Your first steps into programming ◦Experience, examples and references to help you continue your Programming Adventure 2

3 @esconfs|#esconfs Agenda  Our Journey  The Why?  What learning to programme can give you  The How?  It’s easy – but not really!  The next steps on your own programming journey? Nasa Hubble New Horizons 2015 Pluto 3

4 @esconfs|#esconfs Our Journey Began 2 years ago at Testers Retreat in September 2013, in the Netherlands. ◦Asked if we would submit for a conference ◦Said yes, but would really like to run a workshop showing testers how to program ◦Using only free tools, show testers the basics, enthuse & inspire to want to learn more Our submission was accepted for BTD and we had 3 months to prepare. ◦Decided to use; Python, Raspberry Pi, and a USB Robotic Arm! Ran a rehearsal workshop with some of Phill’s colleagues Then ran the workshop at 6 conferences, including EuroSTAR 2014 ◦So there is Tester interest and demand for programming experience Amazingly at every workshop a ‘non-programming’ tester successfully completed the final exercise, a challenge to program a USB Robotic Arm! 4

5 @esconfs|#esconfs 3 months to design a workshop We decided to base the workshop around Linux and Python. We wanted to show how easy it was to get started, so we chose the Raspberry Pi, a credit card sized and fully functioning Linux computer, which costs only $35. We decided to use Python as the programming language: ◦Python is free ◦Easy to use. Design philosophy emphasises readability ◦Syntax requires fewer lines of code than other languages, e.g. C ◦Powerful, scalable, and portable And to make it fun, because that is how we learn best, we decided to build some exercises around programming a USB Robotic Arm (£29.95) Raspberry Pi 2 (Quad Core) ‘IoT’ ready Python USB Robotic Arm 5

6 @esconfs|#esconfs Ok, I am a Tester, why should I learn to code? Well, you don’t have to learn to code. ◦You can work successfully as a tester without finding out the first thing about programming. However, the world continues to change and move forward. ◦With the advent of agile approaches which encourage an understanding of code ◦And more recently the IoT ‘revolution’, and rapid prototyping approaches Makers There are more and more opportunities for Testers who can understand code. We do not think that as a tester you will have to sit there all day writing code, however being able to read code gives you several advantages: ◦An understanding of how to write code will give you some insights into the kinds of errors that programmers make ◦And you will get a feel for where errors are likely, given an understanding of how the code has been constructed This will make you a better tester. ◦(There is also an argument that programmers should learn to test, and that will make them better programmers, but that is not for today!) RP APDR 6

7 @esconfs|#esconfs So what do I get if I can code? A bit better as a tester But so much more: ◦When you sit there thinking, ‘If only I could.... ‘, well now you can. ◦No longer do you have to wait for some programmer to come free to reluctantly code some ‘demeaning test utility’ ◦Write some code: ◦Control scripts ◦Data Generation ◦Data Fuzzing ◦Results checking ◦Automate a manual process ◦Any utility you can think of... ◦The possibilities are endless All you need is a lightbulb Graham: As a former programmer, I was amazed that testers couldn’t just code their own utilities. I could, did, and still do. 7

8 @esconfs|#esconfs A few disclaimers This is a webinar, it isn’t a highly interactive workshop, and there isn’t a 2-way discussion. Phill and I are not teachers. In the workshops we just ‘show’ the delegates how to do things. For those who are inspired to ‘have a go’, all of the code examples, a video, and a 30 page paper are freely available for download on my (Graham) website www.badgerscroft.comwww.badgerscroft.com The paper will also be shared after this webinar as a EuroSTAR e-book. So if you get lost following us you know where to go and look. 8

9 @esconfs|#esconfs Set-up “Nothing great was ever achieved without a few software installs!” – Anon. Python ◦First, for windows users, we installed Python. This comes as standard for Linux and Mac users. Geany ◦We then installed the Geany IDE, Integrated Development Environment. ◦You could write Python code in flat text files but using an IDE brings with it some advantages such as: ◦Syntax Checking ◦Build tools ◦debugger ◦Highlighting, context actions, autocomplete, configurable ◦Fast, free and lightweight We used python 2 in the workshop, but python 3 is now the preferred option. The only difference is the print statement syntax. print (“hello world”) 9

10 @esconfs|#esconfs Exercise 1 - Sequence We write a program to input 2 numbers and multiply them together. As it is your first program there is a lot to do We look at: ◦shebang - #! – which sets the environment ◦comments # ◦print ◦input ◦Variables ◦str – string ◦the compiler ◦and executing the program 10

11 @esconfs|#esconfs Output The output doesn’t look particularly amazing. Unless, that is, you have actually coded it. There is a lot to cover in your first program, and this small program covers a lot of ground. But just to get this far is an achievement. You have gone beyond the simple print (“hello world”) stage and begun to start writing code which will build into more complex programs. Input ProcessOutput 11

12 @esconfs|#esconfs Exercise 2 - Iteration We write a program that counts down to zero from an inputted number. Here we see: ◦A more robust form of input – raw_input ◦Convert strings to integers ◦Look at Python indentation ◦How to construct a while loop A loops is a very powerful construct. However get it wrong and the program can continue running forever, or more commonly until it crashes. 12

13 @esconfs|#esconfs Output This is still a very simple program, but is also very powerful. We have formatted the output to leave a few blank lines to ease readability. (If your program runs forever, try Ctrl-C, and work out where the error is.) NB. We were asked to write a program that counted down to zero. There is a bug. A deliberate one we admit. We used a “ > ” comparator, but should have used “ >= “. The sort of error testers are looking for! In the workshop we also asked delegates to amend their program to count up to a number. That requires using the python comparator “ == “ Repeat 13

14 @esconfs|#esconfs Exercise 3 - Decision Already our programs are becoming longer and more complex. Ex. 3 compares 2 inputted numbers and reports which is the higher. Here we are using the if, elif and else construct. (‘elif’ is python speak for ‘else if’) And we are also formatting the output to look better on the screen. 14

15 @esconfs|#esconfs Output See how the output is more readable. Think how many test cases you would need to test the logic in this simple comparison program. When you have ‘tested’ it and are happy it works, try amending it to check whether the numbers are equal first, using the comparator “ == “. Armed with an understanding of sequence, iteration and decisions, you will be able to write quite complex programs even with a minimal understanding of python. Q? Action A Action B Y N 15

16 @esconfs|#esconfs Robot Arm - Challenge Flowchart + Code Template Challenge: Write a program to move the Robot Arm over a cup, drop an eraser held in its jaws, and report whether the eraser landed in the cup or not. 16

17 @esconfs|#esconfs Before you get carried away There is so much more: ◦80%+ of all code written is to handle errors and exceptions ◦The examples here are not bullet proof, as we easily demonstrate in the workshop Python is a very powerful language and we have only scratched the surface: ◦A huge amount of built-in libraries ◦A feature rich and powerful language that we haven’t begun to scratch with these exercises We wanted to take you beyond print “Hello World”, get you started, and encourage, or inspire you to want to do more. 17

18 @esconfs|#esconfs References Python ◦https://www.python.org/https://www.python.org/ Python Beginners Guide ◦https://wiki.python.org/moin/BeginnersGuide/ Programmershttps://wiki.python.org/moin/BeginnersGuide/ Programmers On-line Python Tutorials ◦http://www.codecademy.comhttp://www.codecademy.com Geany ◦http://www.geany.org/http://www.geany.org/ Raspberry Pi Foundation ◦https://www.raspberrypi.org/https://www.raspberrypi.org/ Visit my (Graham) website for full links, paper, slides, exercises, video, T-Shirt, etc. ◦www.badgerscroft.comwww.badgerscroft.com And if you get stuck, try a google, bing, or Wikipedia search. Even look on YouTube for online tutorials. A word of warning though! ◦Not everything that people post online is helpful, and some of it is harmful, so if you are unsure, check a couple of references first 18

19 @esconfs|#esconfs Summary We hope that we have inspired you to take your own python programming adventure. Let today already be your first step. For your next steps: ◦Download the paper ◦Work through the exercises ◦Go on-line and work through tutorials ◦Find a project to start programming ◦Be that on the Raspberry Pi, or even at work Start now by building a personal development plan.... Nasa 19

20 @esconfs|#esconfs Thank you for listening Graham Thomas Independent Consultant graham@badgerscroft.com www.badgerscroft.com @GrahamNThomasgraham@badgerscroft.com www.badgerscroft.com Phill Isles phill.isles@virgin.net 20


Download ppt "@esconfs|#esconfs Programming for Testers It is easy! EuroSTAR Webinar Tuesday 15 th September 2015 Presented by: Graham Thomas Phillip Isles 1."

Similar presentations


Ads by Google