Category Archives: Testing

RasPi ‘Selfie’ Tweet Cam

I recently ran a workshop, with my good friend Phill Isles, at the Test Management Summit. The subject was Testing the Internet of Things: The Dark and the Light.  One of the things that we wanted to do was demonstrate a live Internet of Things device, that the delegates could actually interact with, see how it works, and begin to understand what IoT means.

Tweet Cam

Tweet Cam

So I thought I would build a Raspberry Pi Tweet Cam, that the delegates could use to take selfie’s.

It would need a Pi Camera, obviously. Then a button to press to take the photo. An LED to show the user what was happening. And finally another button so that we could turn it off.

The aim was to run headless, i.e. no monitor, keyboard or mouse.

Finally it would be equipped with a Wi-Fi dongle, to enable it to connect to the internet and Tweet.

A fun Raspberry Pi project. I mostly used the instructions for Tweeting from Alex Eames RasPi.TV site (which I find extremely helpful). Details can be found here RasPi.TV Taking and Tweeting a Photo. Then added my own design and functionality.

I needed some parts:

  • Model B+ (Tick)
  • Pibow Coupé Case (Tick)
    The pi looks great in the coupé case.
  • Breadboard Base for Pibow
    Which replaces the bottom layer of the Pibow Coupé case and gives a larger platform onto which a half-size breadboard can be affixed.
  • Some buttons.
    I got ones with round and square tops.
  • An RGB LED.
    Why install three LEDs when you can fit one that does all three colours. You still need 3 input connections though – one per colour.
    (You can then mix the inputs to create additional colours – Tough to do in an individual bulb!)
  • Resistors (Tick)
    I didn’t quit have the right resistors. I managed to use two in parallel.  And ordered a jumbo multi-pack of 2,000.
TweetCam Top

TweetCam from above

The Build. Once all of the parts had arrived, I thought on the matter for a few days.  When I had a rough idea of what I was going to do I started the build.  I used a rapid prototyping approach.

First I assembled the Pi in the coupé case extended with the breadboard base. Connected the camera using a simple flexible mount which plugs in the audio socket. (The mount works, but is a little loose in the socket – holds the camera just fine though.)

I then added a resistor, button and some wiring to the breadboard, and some jumpers to connect the breadboard to the Pi. Wrote some code to detect the button press. Then added code to taka picture when the button was pressed.

Next step was to add the RGB LED. There were no instructions for the RGB LED on the vendors site. I e-mailed them, and they responded with a two page .pdf, which had the orientation, and forward voltage. Not all RGB LEDs are the same. A simple internet search shows that.

After following some on-line guidance I connected the RGB LED, adding a resistor to the Red bulb. Then wrote a simple LED test program. When that was working I updated the TweetCam code to turn the LED Green when Ready, Red when not – I had decided that the TweetCam would only take a photo every 2 minutes, so as not to spam the world. And the LED would flash Blue when it was taking a photo. Wrote the code and tested it.

TweetCam Instructions

TweetCam Instructions

Then I added a second button, which was used to shut-down the Pi, as it would be running headless and this is always a good thing to do when turning off a Pi.  And I made the LED flash Red whilst the Pi was shutting down.

Finally with the program doing everything but Tweet I added in the Tweet code. I followed the excellent instructions from Alex Eames.  And yes, it worked. I pressed the button, the Pi took a photo, flashed the LED, and tweeted the picture.

This is ‘Testing in Production’. It is difficult to test a tweeting program without getting comments! So I only tweeted a few photos. I actually created a version of the program with the Tweeting line of code commented out, so that I could test changes, without bombarding Twitter.

The build took 6 hours from start to finish. I was quite impressed with the speed at which a functional and usable IoT (Internet of Things) device could be built and tested.

And if you are wondering what the pictures looked like the ‘live‘ output can be seen here TweetCam Pictures

PostScript.
We used the device in sessions on two days. On the first day the internet was not working at the conference venue. It was a all a bit of a damp squib. We were though able to demonstrate the inner workings of the Tweet Cam to the delegates but were unable to Tweet. Day two was perfect. Press the Blue button and tweet a picture of yourself.

Testing the Internet of Things: The Light and the Dark

Abstract:

IOT or the ‘Internet of Things’ is this year’s buzz word. Everyone is talking about it, but what is it, and what does it mean for Testers?

Every week you read another BBC Technology News article about how your next fridge is going to connect to the internet, your washing machine is setting the central heating, and your household lights work all on their own. The dark side.

This workshop, using practical and interactive demonstrations will help you to:

Tweet Cam

Tweet Cam

o  Identify what IOT devices are,
o  Understand how they are built,
o  Determine how to test them,
o  Share some lessons learnt from; building, testing and using IOT devices,
o  And actually use some live IOT devices during the workshop to ‘make it real‘ and bring to life your understanding.

The session covers low cost hardware, open source software, the recently announced Windows 10 IOT program, scripting languages e.g. Python, internet connection, communication, data recording, and messaging. And from a software testing perspective, we focus on how to go about testing, what approaches to use, what the limitations are, and look at what can go wrong.

The world is changing, and never has it changed faster. The ‘machines’ may not have taken over yet. Current predictions from Gartner are that by 2020 there will be more than 26 billion non-PC and mobile devices connected to the IOT.
(These devices are going to require an awful lot of testing.)

Downloads:

 PowerPoint Show    PowerPoint show (45.6mb)

Presented at:

1. TMS, London, Apr 2015. (½ day Workshop)
2. TMS, London, Apr 2015. (Discussion Session)
[aka Testing the Internet of Things: The Pain and the Gain]

Notes:

This session was developed jointly with my good friend Phillip Isles.  We co-presented both of the above sessions at the Test Management Summit, London.

Techniques for Successful Program Test Management

Abstract:

Bear

Shouty Test Manager

After working successfully as a test manager for a while, the next step forward is into program test management.  Many think this is just some super test manager, or in a lot of cases, a ‘shouty’ test manager. In fact it isn’t. It is a transition into an oversight role where others do the testing, and you are setting the direction, giving guidance, and having oversight.

This is quite a step up and suddenly requires a set of skills that successful test management does not develop.

It is quite common for program test managers to look after a number of testing projects and testing teams. The scale has changed, and you have begun to operate at the organisational level, working with other members of the program management team.

In this workshop we will look at the new range of required skills; Leadership, Accountability and Responsibility, Oversight and Awareness, Stakeholder Management, Communication, Influencing and Negotiation. We will work though some useful models so that you can take away a kitbag of tools and techniques to use back in the office.

We will also look at how to stay relevant to the testing operation, and retain value-add for your role whilst now working at the organisational level, and delivering through others. And even if you aren’t working as a program test manager yet, the skills and techniques we look at in this session will be invaluable today, to start using, developing and refining.

Downloads:

PowerPoint Show  TMS Workshop (28mb)    PowerPoint Show  BCS SIGiST Keynote (12mb)

Presented at:

1. TMS London, Apr 2015. (Workshop)
2. BCS SIGiST, London, Dec 2015. (Keynote)

New Testing Tool – Binoculars

A few days ago I met my good friend Phill Isles for coffee to plan an upcoming workshop centered around testing IOT devices.

Phill is quite interested in electronics and at the end of our meeting he handed me a small circuit board with what looked like half a small golf ball on one side (something like an icosahedron).  It turns out to be an PIR motion sensor (Passive InfraRed sensor). He recently bought 5 and thought I could have some fun with one (Thanks Phill). And all for only 80 pence each including shipping.

Later he sent me a link to the adafruit website with a tutorial for the PIR sensor.

PIR motion sensor connected to Raspberry Pi

PIR motion sensor connected to Raspberry Pi

I wired the PIR sensor into my Raspberry Pi, then slightly modified the example program to print a ‘Movement Detected‘ message on the screen. And then started to test the sensitivity of the device.

As I moved away from the desk I could see the ‘Movement Detected‘ messages being displayed on the screen. But when I got 15 feet away I could no longer read the screen. Had a message been displayed? It was hard to tell.

How can I test the range? I was on my own with no-one to help. 2 minutes later I had a pair of binoculars to view the screen and all was well again.

It was the first time I have ever used binoculars for testing software. And a new tool was added to my software testing kit-bag.

Nikon Binoculars

Nikon Binoculars

 

A year in the life of Programming for Testers

It has been an exciting year presenting Programming for Testers It’s Easy! with my good friend Phillip Isles.

HorsesThe year actually started late September 2012 at the UK Testers Retreat at the village of  Eesergroen in the Netherlands (I struggled with that concept for a while as well).  Phill and I were in a discussion with someone about what we would like to present at a conference. I think I said something like “I would be interested, but only if I could run a workshop using the Raspberry Pi, a robotic arm, and got some testers to do some programming.

Well, I take credit for the idea, but it was just in the meme. I had unknowingly been influenced by the group. Later on in the weekend I spent an hour with Isabel Evans walking her through some basics in python programming. She had fun, and this became the programming spine of the workshop.

Phill and I added in the Robot Arm, the Raspberry Pi, some design and preparation, then headed off to Bruges for Belgium Testing Days.  Conferences now request speakers produce a video:

We were well prepared, rehearsed all of our moves, and not withstanding a few ‘technical issues‘ with an aged projector, got up and running for a 2 hour workshop. Amazingly we got through to the end, and managed to write some code to successfully achieve the Robot Arm challenge.  A good start then, and a real buzz that the workshop was successful.

We had also learnt a few things, like what to do for Mac users, the precise sequence to install the software in, and when people say “Yes my install is working” what they in fact might mean is “No, my install is not working!

 

 

Daffodils

We followed up Belgium with half day Tutorial at the London Test Management Summit (TMS). The longer half-day format giving us time to go into real depth with each exercise.  And the enthusiasm in the group after the session was a real reward for all the hard work and effort.

After London I was invited solo to the Czech Test conference in Prague to run the session again as a half day Tutorial.  Unable to turn down a trip to Prague, even though it also involved giving a track and Keynote, I immediately said “yes”.

As with the TMS the longer half-day format paid dividends. The real reward from the session was the fact that everyone managed to successfully finish the Robot Arm exercise, and the first to complete was a tester that had never coded before.

The next conference was at Agile Testing Days in Potsdam, on the outskirts of Berlin in early November. Phill and I had a few months off. We still had work to do though: updates to make to the slide pack and code exercises.

We also decided that to get real value out of the workshop we would write a supporting paper, which would take the reader through the process at an almost atomic level of detail. Given that when people were reading the paper, Phill and I would not be there to walk them through it.

I loaded all of the presentation material, including; slides, paper, video and code examples, onto my website here http://badgerscroft.com/home/programming-for-testers/ .

The workshop in Berlin went very well . We encountered some new problems. Language. Fortunately Daniel Maslyn joined us and was able to help out ‘internationalizing‘ the presentation. Mostly around the punctuation that is specific to python. Who would have through that # ! and :  would have caused so much trouble?

The following day in Daniel’s excellent presentation about Robotics he showed a couple of photos that he had taken in our Workshop to demonstrate the Robot Arm, Raspberry Pi, and Wii mote controller. Thanks for the kind words Daniel.

Afterwards Phill and I headed down to the Test Lab being hosted by Bart Knaack. Phill and I ran through the extra code submissions for the Robot Arm exercise that we hadn’t had time to run. All worked perfectly. Another testament to testers as programmers.

A weeks rest and then off to EuroSTAR in Dublin.  Phill only came to Dublin for the day. He wasnt originally coming but when we found out that over 70 people had signed up to an introductory programming session after the closing keynote we realized that it was going to take at least 2 people,  that our hard work was paying off, and we were gaining real traction.

The paper, although nominated which is a result in itself, didn’t win best paper. It was close . . . .

A lack of speaker prep facilities meant that we had to rehearse in the main hall. Sitting at table running a Robot Arm from Raspberry Pi is going to attract a crowd, and by a stroke of serendipity one of those was Neil Studd, who had attended the TMS workshop back in April. It took no time at all to persuade him to come along and help – thanks Neil.

We really did have over 70 people in a programming workshop at EuroSTAR. It went very well. Everyone got set-up. Completed all of the exercises, and even got the Robot Arm going.  A few did have to leave for the Guinness trip through. Hard choice that, Robot Arm vs. Guinness. We understand.

2014-11-25 15.48.46

Not quite the sunset for Programming for Testers, but we are nearing the end. Phill and I headed off to the BCS SIGiST in London for a half-day Tutorial. This was almost the hardest session to run. It took us fully an hour to set-up. Fortunately we had arrived early.  The session went very well. Everyone managed the Robot Arm challenge.

A few conclusions from what has been an exacting but very rewarding year.

Testers are more than able to write code. Of course it isn’t easy. But the hardest part is not writing the code. It is actually taking the simple steps to start.

And it was fun.  Best comment half an hour in at EuroSTAR. Head pops up and says “This is fun“.

We may well run the session again somewhere in the New Year. And if you have got this far then it will be no surprise to find out that I have ordered another Robot Arm and am looking forward to performing some hand-shake testing (thanks for the joke James!)

Thanks to everyone who helped, attended, supported, took part, or just influenced us.

Thanks
Graham Thomas

Programming for Testers

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?

This workshop will 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 get you up and running with Python. You will write the simplest “Hello World” program. However, we will not stop there. We will then explore the ‘next steps’, and give you the confidence to write more complex programs.

Sound great, but when you are back in the office, sitting in front of a blank screen, doing this on your own will suddenly get much harder. To combat that we will arm you with some of the most useful on-line information available. Someone, somewhere on the planet, has already found the answer to your problem, and most likely created a YouTube video showing you how!

As a Tester you know that just writing code is not enough. It has to be shown to work. So not only will we write some code, we will ‘Test’ it as well. To make this even more enjoyable, together we will write programs to control a simple USB Robotic Arm, connected to a Raspberry Pi computer, on which we will run and ‘Test’ our code. We Testers can have fun too!

We will conclude by drawing up a personal development plan for how you can continue to develop your Programming skills, and how you can deploy them back in the office.

To participate it is highly recommended that you bring along a laptop with Wi-Fi that you can; download to, install software on, and edit the path variable. (If you can’t download and install software, i.e. your machine is a secure build, you will still be able to write code in text files that may be transferred to another machine for compilation and running.)

Each journey starts with a single step. Let me help you take your first programming steps today.

Downloads:

Impress  .odp format      pdf  Presentation      pdf  PFT Paper Gold Star

Webinar EuroSTAR Webinar     PowerPoint Show  Webinar Slide Show    You_Tube  YouTube Video

Code examples:

Python  Exercise 1      Python  Ex. 2      Python  Ex. 3      Python  Ex. 3.5

Python  Arm Template      Python  Arm Hint Template

(Please note: Due to the limitations of this Server, .py extension files can not be served direct. After opening, whilst saving the file, remove the .txt E.g. Exercise1.py.txt is saved as Exercise1.py)

PearlTrees2  PearlTrees Collection
(This is an on-line collection of web links referenced in the presentation)

Presented at:

1. Belgium Testing Days, Bruges, Mar 2014. (Workshop)
2. TMF Summit, London, Apr. 2014.  (½ Day Workshop)
3. Czech Test, Prague, Jun. 2014. (Tutorial)
4. Agile Testing Days, Potsdam, Nov. 2014. (Workshop)
5. EuroSTAR, Dublin. Nov. 2014.  (Workshop)  Gold Star
6. BCS SIGiST, London, Dec. 2014.  (½ Day Workshop)
7. EuroSTAR Webinar, Sep. 2015.

A blog post telling the story of the workshops can be read here http://badgerscroft.com/home/a-year-in-the-life-of-programming-for-testers/.

Notes:

This session was developed jointly with my good friend Phillip Isles.  We co-presented all of the workshops, except for the Czech Test Tutorial.
Phill and I co-wrote the Programming For Testers paper which was nominated for EuroSTAR 2014 best paper. Gold Star

Natural Born Tester

Abstract:

Forget all that talk of methods, process, tools and training. The other 99% of presentations at the conference. You might just be a Natural Born Software Tester. You don’t need all that good stuff above, you just need to hone your natural skills.

So what is a Natural Born Software Tester and how will you know if you are one.

Here is a simple check-list.

1. Can you play Lemmings?
2. Can you play Railroad Tycoon?
3. Can you play Angry Birds?

OK, so you are beginning to think that this is either the wackiest presentation you have ever been to or there might be something to this. Read on.

Lemmings, a fun to play computer game of the early 1990s, was essentially a parallel programming interface. You had to explore. Then plan. Then execute, in parallel. Does that sound a little bit like software testing?

Railroad Tycoon was a Train Simulator that combined cutting edge game play and visuals with complex project management and control. You had to build a railway, operate it, and develop it. Very much a planning, monitoring and control exercise. Surely an excellent training activity for budding testers and test managers.

Angry Test Birds

Angry Test Birds ?

Angry Birds. Isn’t this just the greatest exploratory game? You have a number of birds, which I analogise to test techniques, and it is up to you to work out which birds / techniques to use, in which order, and when, to the have the greatest effect. Does this also sound a little bit more like software testing?

I firmly believe that we all have the ability to test. However I think those skills and abilities can be enhanced by non-test related activities, such as the games identified above, to increase our effectiveness as testers, or to put it another way, to become a Natural Born Tester.

So let’s put this to the test . . . . .

Downloads:

PowerPoint

Presented at:

1. Agile Testing Days, Potsdam, Oct. 2013.
2. Scottish Testing Group, Glasgow, Apr 2014. (Keynote)
3. Czech Test, Prague, Jun 2014 (Keynote)

Testing Secrets That We Dare Not Tell

Abstract:

I have worked in IT for over 30 years, and in software testing for over 20 years, so you might think that I know a lot about IT and in particular software testing. Well, I am going to share some dark secrets about software testing with you, which we dare not tell, and in the form of questions.

I firmly believe that “There are some fundamentals of software testing that we really don’t understand or know the answers to yet.”

I wish I did know all the answers. Then I could stand in front of you, looking all superior, and just tell you what they are. But No, it is not that easy!

Here are some simple questions. They are very easy to ask. Unfortunately they are very difficult, if not impossible to answer.

What is the purpose of Software Testing?

Just how effective is the way we test – and how do we know? (Trad, V-Model, Structured Testing, agile or any other form of testing for that matter?)

If checking isn’t software testing, then why is it that ‘checking’ is what our stakeholders are paying us to do?

If software testing is so difficult, demanding and challenging, then why is it that we keep on assigning the least skilled or experienced to perform it?

Why do software testers spend so much of their time running tests that do not find bugs?

These questions are important because they drive at the very heart of what we are doing in the software testing industry today, and understanding the answers will surely prime the future direction that our industry will move in.

This session has been designed to be a highly interactive discussion which many people might find challenges their basic understandings. I will act as facilitator, give an introduction to each question, then actively moderate the debate and if needed take on the role of arbiter. Come along, expect to be involved, and if you have a view then please share it. Help to drive forward the discussion – and the software testing industry.

Now a politician would question the very premise of these questions, which may be fun in itself, but if for a moment we accept the premise of these questions, then what does that really say about the state of software testing? And shouldn’t we be doing something about it?

Downloads:

PowerPoint

Presented at:

1. TMF Meeting, London, Apr 2013  (Workshop)
2. EuroSTAR, Gothenburg, Nov 2013

Flowcharting Workshop

Abstract:

Brand Spanking new B+ in Coupe case :-)

Brand Spanking new B+ in Coupe case 🙂

By now many of you will have heard about the Raspberry Pi, the $35 British computer that

is helping schoolchildren to learn how to write computer programs. To date over 1.75 million have been produced. A real success story.

Some of you may also know that over the last 18 months I (Graham) have been actively trying to reconvert the world to using flowcharts.

Well now Phillip Isles and I have brought these two themes together in the form of a highly interactive flowcharting workshop presented using the Raspberry Pi and a programmable Robotic Arm.

This session should be informative, fun, and productive. Informative in that you will find out how really powerful a $35 computer can be. Fun because we will use the Penguins logic puzzle game on the Raspberry Pi as the basis for the flowcharting exercise. And productive because you will learn or relearn how powerful quick and easy it is to generate flowcharts to aid in your daily work.

To play an active part in this workshop you will need something to draw flowcharts with, be that notepad and pencil, computer, tablet or phone.

Downloads:

 Impress  .odp format      Film  You_Tube  Video

Presented at:

1. EuroSTAR Test Lab, Amsterdam, Nov 2012
2. UK Testing Retreat, Hereford, Jan 2013
3. UK TMF, London, Jul 2013

Great But Now Overlooked Tools

Abstract:

The idea for this presentation comes directly from EuroSTAR 2011. Sitting on the bus back to the conference centre after attending the Gala Dinner, a discussion started, about the industry luminaries who turn up at conferences and give presentations which roughly say “Don’t do all the stuff that I told you to do 5 years ago! Do this stuff now.” But, but, but . . . .

As we got talking I realised how many simple effective tools I no longer used, because they have either become overlooked, forgotten and thus fallen into disuse, or because modern methods claim not to need them and they are redundant. I wondered if any of them were worth looking at again – starting with my flowcharting template; I realised it is a great tool which I have overlooked for too long!

And aligning with this year’s conference theme of renovation, here is my list of 10 great but now overlooked tools:

FLowchartFlowcharts
Prototypes
Project Plans
Mind Maps
Tools we already have at our disposal like ….
Aptitude Tests
Hexadecimal Calculators
Desk Checking
Data Dictionaries and Workbenches

This is my list of really useful tools that I think are overlooked. In the presentation I will briefly outline each tool, why I think it was great, and what we are missing out by not using it.

Of course the audience will have a different view of what great tools have been overlooked, so we will capture those tools as well, using a Mind Map that we can quickly share with other attendees after the session, using Twitter, or other Social Networking tools.

And it naturally follows that if there are some tools we have overlooked then there are also some tools that we should get rid of! I will present my own list, hoping that the debate isn’t too heated, and also update the Mind Map with the collective view of tools that we should also dispense with!

Downloads:

PowerPoint      pdf      pdf  EuroSTAR session generated MindMap
Webinar  EuroSTAR Webinar (Test Huddle logon required)

Presented at:

1. UK TMF, London, Jul 2012.  (Workshop)
2. EuroSTAR, Amsterdam, Nov 2012.
3. EuroSTAR, Webinar, May 2013.