Tag Archives: user stories

Learning about SpecFlow at the London Tester Gathering Workshops – What I read last week (8th July 2019)

I was recently given the opportunity to attend one of the London Tester Gathering Workshops. These took place over 3 days and included a variety of full and half day workshops – between the 26th and 28th June 2019. I’d been lucky enough to have won a ticket in a LinkedIn competition. We were asked to choose the workshop we’d like to attend and give a reason why. When I saw that one of the workshops was about learning to ‘Automate BDD scenarios using SpecFlow’, I knew I had to enter the competition. My reason was simple, at work we were hoping to start using SpecFlow to improve our current test coverage.

I learnt a great deal attending this workshop. I was sat at a table with a develop and tester from the same company who had travelled all the way from Ulverston in Cumbria (a beautiful part of the country, I have family who live up there so I travel there often). Chatting to them about the exercises really helped enhance my learning.

There was also a definite advantage of being taught about SpecFlow from the creator himself – Gáspár Nagy. He went into great detail about Behaviour Driven Development (BDD), the understanding is essential to using SpecFlow. He explained the exercises fully so that we could complete them in the workshop, or complete them at home.

This was the first time I’d attended a workshop like this one. I’m so grateful to have had the opportunity. I definitely plan to attend more in the future. The opportunity to learn about the subject from an expert (especially the creator), and discuss with other attendees provided a really positive learning experience. We were provided with enough information to apply our new skills to our own testing projects, and given enough additional resources to expand our skills further.

I wrote a blog post about my experiences: https://louisegibbstest.wordpress.com/2019/07/03/automating-bdd-scenarios-using-specflow-london-tester-gathering-workshop-2019/

Lee Marshall also attended the London Tester Gathering Workshops. He attended the EventStorming; Deliberate, Collaborative Learning Between Multiple Disciplines workshop by João Rosa and Kenny Baas-Schwegler. He wrote about his experiences on his own blog:


259 – New way to learn test automation with Angie Jones
Angie Jones talks about her role as a Developer Advocate at Applitools and the test automation university – a free, online platform that allows people to develop test automation skills from all over the world.

258 – Boozang A new approach to UI Testing with Mats Ljunggren
Mats Ljunggren introduces Boozang, a codeless automation tool that uses AI to improve maintenance and speed up the creation of automated tests.

Articles and Blog Posts

5 tips how software testers can collaborate with software developers – T. J. Maher – medium
” Developers aren’t opponents. We are teammates. We’re partners.”
A brilliant article about the importance of maintaining positive relationships between developers and testers. Key ideas include encourage both to participate in planning sessions and not letting your frustrations get to you when your work is criticised.

Why the three part user story template works so well – Mike Cohn – Mountain Goat Software
This article looks at the positives of the user story, that it provides context by informing us who it applies to, what they want and why they want it. It also looks at the negatives when user stories start with ‘as a user’. This can indicate lazy thinking and that the designers are unaware who the ‘users’ are.

Why I run a meetup – Lee Marshall – Pirate Tester
Lee Marshall talks about how and why he runs test meetups. Lee runs the #MIdsTest meetup, which takes place each month, alternating between Birmingham and Coventry (England). I regular attend these meetups and was given the opportunity to speak at one back in January this year. I will be speaking at the next meetup on 17th July.

You do not need to make the wrong assumption about your users anymore – Joel Montvelisky – qablog
If a tree falls in a forest and no one is around to hear it, does it make a sound?
I previously used this philosophical riddle in a lightning talk at the Fall 2019 OnlineTestConf. I looked at how the impact on bugs can dramatically increase when a bug is not ‘heard’. In this article, Joel Montvelisky provides an alternative take on this idea. If there is no sound, does this imply that the bug is not important? Should we be the ones making this assumption?

Other blogs that share lists of test related articles

https://5blogs.wordpress.com/ (daily)
http://blog.testingcurator.com/ (weekly)
http://thatsabug.com/ (weekly)
https://weapontester.com/tea-time (weekly)

Testing Conferences

The Club
A forum for discussing, asking questions, answering questions, and requesting help. Run by the Ministry of Testing.

Feel free to recommend anything that you think is of interest.
Main image taken from http://www.publicdomainpictures.net


Abuse Cases – Understanding Motives

Before identifying how a user might misuse an application, we need to understand why a user might misuse the application.

“Sometimes when I try to understand a person’s motives I play a little game. I assume the worst. What’s the worst reason they could possibly have for saying what they say and doing what they do?”

Petyr Baelish, Game of Thrones Season 7 Episode 7, The Dragon and the Wolf

I was not able to attend Test Bash Brighton this year, however I do enjoy reading about other people’s experiences. Today, I came across a blog post by Nicola Owen containing a write up of her notes. Included in this post were the notes for the talk by Claire Reckless and Jahmel Harris, titled ‘United by Security: The Test that Divides Us’. Nicola included a photo of the following slide:

Slide from Test Bash Brighton talk ‘United by Security: The Test that Divides Us’ by Claire Reckless and Jahmel Harris. Photo taken by Nicola Owen.

Abuse Cases vs. Use Cases

I’m already familiar with the concept of use cases, where a specific scenario is created that suggests a way in the application may be used. The use case would demonstrate a method in which the user may interact with a product. It would then go on to demonstrate how the user would gain value from this interaction.

Abuse case would have a similar concept. Except the abuse case would suggest a situation that would be undesirable for the business. This is a specific scenario that suggests a way the application may be used, but in a way that would benefit a malicious user. What reasons might a user have for interacting with the application in an unintended way? How might they do this? Would they be successful if they tried?

One thing I really like about the idea of Abuse Cases is that they don’t just look at how a user might misuse the application. They also think about why a user might misuse the application.

Creating Abuse Cases

I decided to have a think about how a user might attempt to abuse the software applications I’m currently working on. I test applications designed to control scientific instruments and analyse data collected from running measurements with these instruments. We often sell to the pharmaceutical industry who have strict rules about how experiments are conducted and the data used. The settings used for an measurements must be logged, and the data cannot be manipulated or deleted.

A user who works for a pharmaceutical company may be under pressure to get a drug approved by the FDA. They may choose to manipulate result data, or change the way a measurement is run so that the results better support the product for FDA approval. They may also attempt to generate fake data so that the FDA can approve the drug sooner.

By understanding the motivation of a malicious user, we were then able to identify potential ways a user might attempt to misuse the application. We then investigated if it was possible for the user to do this.

Unintended Consequences

“Your scientists were so preoccupied with whether or not they could that they didn’t stop to think if they should.”

Ian Malcolm, Jurassic Park

During her keynote at the UKSTAR testing conference, Fiona Charles constantly asked the question ‘What could go wrong?’

In this talk, there were many examples of the unintended consequences of technology. Some were caused by a human which directly affected other humans. In these examples, the human will have deliberately misused the application on purpose.

There were others that had a negative effect on society and the environment. These would not be caused directly by other humans, and wouldn’t usually have been done on purpose. Examples included self service checkouts. To make it easier for a customer to quickly scan items at the checkout, there has been an increase in the amount of plastic packaging used. This has had a negative impact on the environment.

Abuse cases like these usually don’t carry a motive. This makes them a lot harder to understand or anticipate. Despite this, they are still something to think about. The best method would be to question everything – assumptions, biases, objectives and decisions.


Unlike Use Cases, which need to be successful, an Abuse Case must be unsuccessful.
When people talk about the importance of understanding the end-user, this should apply to both good and bad users. We should also think about the ethical implications of the application and the potential impact it might have on society or the environment.

By anticipating abuse cases in advance, we can create software that is safer and more secure.

Main image taken from publicdomainpictures.net