Monthly Archives: June 2019

Make way for collaboration – What I Read Last Fortnight (30th June 2019)

Last week, I attended a conference about UX and Design. Why should a software tester attend a conference aimed at designers?

A feature may meet the technical requirements, but if it is poorly designed then the negative user experience may encourage users to stop using the application. If there are no users, then the application is pointless. User experience is an essential part of software testing. As testers, we have to make sure that the application both works and provides the user with a positive user experience. Designers are the best people to talk to about understanding and enhancing the user experience.

Monzo is an interesting banking app designed with user experience in mind. Its aim was to make banking easier by erasing the frustrations commonly associated with traditional banking. Juliana Martinhago, product designer at Monzo, delivered an interesting talk about how this was achieved. Teams were formed around outcomes not features, and getting feedback from users so that the right solution was released.

Jon Fisher, head of UX at Nomensa, talked about the possibility of poorly designed applications killing someone. A few real life examples were given to demonstrate why it is important to look at potential pain points as well as value when designing something.

Gavin Strange, director and designer at Aardman Animations (the company that produced Wallace and Gromit, Shaun the Sheep and Chicken Run) provided an energetic talk about the importance of creativity, trying out new ideas and sharing them with the world.

Catalina Butnaru discussed the principles of ethical AI and the Minimum Ethical Product approach to create ethical AI applications.

Eriol Fox, senior product designer at Ushahidi, delivered a talk on diversity – an essential topic in any design discussion. Examples of poorly designed applications that succeeded in alienating certain demographics who were written off as edge cases. Do we really want to be abandoning potential users of our products?

Applications should be designed with the end user in mind. Collaboration is the key to achieving this. Collaboration with potential users, collaboration with designers, collaboration with all stakeholders involved in the development of the application. Software testers need to ensure that the application doesn’t just work on a technical level, but also need to ensure that it works for the customer.

Articles and blog posts

11 reasons why behaviour driven development can fail, Evgeny Tkachenko, Stickyminds
Lack of time and resources, not enough information and inconsistency can lead to BDD to fail. It is an approach that is hard to implement, but is powerful when it works.

Delivering estimates and the 5 stages of Good Grief – Adam Knight – A Sisyphean task?
Estimation is not an easy task, and the response is not always positive. In this article, Adam Knight compared these responses to the 5 stages of grief in the Kübler-Ross model:

  • Denial – That can’t be right
  • Anger – You’ve not done your job. You are wrong, how dare you give this estimate
  • Bargaining – What can be do to cut back and reduce this estimate
  • Depression – We can’t deliver on time, everything is ruined
  • Acceptance – We’ve finally delivered.

Forget about bugs – Dave Westerveld – Off beat testing
What do we do about bugs that we know are never going to be fixed? We know that they will forever remain in the backlog (or the abyss as I like to call it).

Verifying entire API responses – Angie Jones
When verifying an API response, do you look check the entire response or only a few key points?

Steven Watson’s series on preparing to speak at conferences

Steven Watson has published the final section of his series of preparing to speak at conferences. Here, I’ve shared all 4 parts of the series:

Events

What has happened in the last 2 weeks? Quite a lot…

Collaborate Bristol 2019
This was the 2nd time I attended Collaborate Conf, a conference dedicated to UX and design. I wrote a series of blog posts where I summarised my own interpretation of each talk:

London Tester Gathering Workshops – Automate Scenarios with Specflow
Last week I was lucky enough to attend the London Tester Gathering Workshops. There was a choice of 3 full day workshops, and 12 half day workshops which took place over 3 days. I attended the full day workshop on Specflow, run by Gaspar Nagy the creator of Specflow. This talk provided a brief introduction to Behaviour Driven Development and writing scenarios. We were then shown how to use Specflow to automate these scenarios. I’m hoping to use Specflow in my current test project. I am really excited to see how my testing strategy develops when I introduce what I learnt in this workshop.

#Midstest Meetup in Coventry – Baking Codeless Test Automation with Paul Coles
Its been a while since I attended one of the Midlands test meetups so I decided to attend the latest one despite the long drive to Coventry. Fortunately, the journey was not a waste. Paul Coles delivered an informative demo of Leapworks codeless test automation platform. I’d previously seen this tool in action at the UKSTAR software testing conference earlier this year, where Leapworks were once of the sponsors. It was good to see an extended and more in depth demonstration of the application.

#Midstest 99 second talk
After the main talk, we were given the opportunity to deliver a 99 second talk. This time I came prepared and brought along a block from a patchwork quilt I’m currently making. Using this, I explained that a quilt is made up of several blocks. Each one has to be tested at various stages of the quilts development. If we find a defect too late, it can be very costly to fix. The same principle can be applied to testing. We shouldn’t just test the application at the end, we should run tests at all stages of the software development life-cycle. Bugs found later on cost more to fix. I published a blog post that explains this analogy in more detail – A stitch in time reduces critical defects.

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)
https://www.ministryoftesting.com/feeds/blogs

Testing Conferences
https://testingconferences.org/


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

Advertisements

Collaborate Bristol Part 4 – Talks by Catalina Butnaru and Eriol Fox

What stands in the way of Ethical AI?
Catalina Butnaru

Who do we design for? It is probably not who you think (or want). We want to design for the end-user, but we are often promoting the views of the business stakeholders. If they don’t approve of something, then it can’t be delivered.

There are several false beliefs with AI:

  • AI created super human intelligence
  • AI can be ethical

These are both false and any attempts to achieve this will product ethical zombies – something that cannot think for itself.

Designers need to account for the ethical design of AI applications. To achieve this, several ethical principles need to be established:

  • Privacy
    The ability to be switched off at the request of the user
  • Well being
    Deploying the application doesn’t harm a human (physically or mentally)
  • Accountability
    The user is able to report on unfair outcomes
  • Transparency
    It must be clear to the user that the application uses AI. It must also be clear how the AI makes its decisions
  • Awareness of Misuse
    It should be clear that the system can be misused, how it can be misused and the user should be able to report this when it has happened

Only when these principles have been implemented can a MEP be achieved – Minimum Ethical Product.

Diverse representations in design and awkward conversations with colleagues
Eriol Fox

There is no such thing as a completed neutral tool. Everyone is guilty of unconscious bias which can have an effect on the design of products. Lack of representation of certain demographics can also lead to misunderstandings. To avoid this, we need to start having these awkward conversations so that there is a more accurate representation. Reach out to users, include them so that there is a better understanding of what they want and need.

Stock photos that don’t represent real people, forms that only allow official names or male/female genders, proving the option for doctor male and doctor female instead of just doctor (why?). The list goes on.

These have become known as edge cases, or people we don’t care about or don’t represent the main users. They are excuses we make when we don’t want to discuss certain people. Instead, we should use the term ‘stress cases’ – cases that need more attention.

Applications should be make for anyone to use, not just those who we see as ‘normal’.

Several books were recommended. I’m currently reading ‘Technically Wrong’. A lot of the examples used in the talk are mentioned in this book, I strongly recommend reading it. I’ve already ordered ‘The Politics of Design’ on Amazon.

Final Thoughts…

Positive user experience and collaboration are essential when software testing. With all the software testing events that I take part in, it is good to step back and think things through a little differently. Collaborate Bristol 2019 gave me an opportunity to do just that. I now have new avenues of research to explore, which will help expand my knowledge and experience in software testing.

Thankyou Simon Norris and the other organisers at Collaborate Bristol for an enjoyable and informative day.

Collaborate Bristol Part 3 – Talks by Gavin Strange and Hilary Brownlie

Don’t make it perfect, make it now
Gavin Strange

Never before have I seen such an energetic talk as the one that was given by Gavin Strange.

It was full of messages that centred around the idea of being creative and trying out new ideas. Generate new ideas, develop them, try them out, experiment. It doesn’t matter how you do it. Some prefer to take a more targeted approach with an end-goal in mind. Others like to take a more exploratory approach. Doesn’t matter which, try out these ideas.

Seek creative satisfaction wherever you can get it. How do you find time? Use a time circle to map out the amount of time you have in the day. There are 24 hours in total, how much of this time do you spend on eating, sleeping and working. How much time do you have left over? How do you spend this time? Allocate some time for side-projects. Your career can flourish from these side projects, and from sharing them.

The most important thing is that you share your ideas and creations. Even if they don’t work out, even if its ugly, the very fact it exists make it important. It should be shared with the world.

“If we don’t tell our stories no one else will” – Mira Nair

Flying the plane while changing the engine
Hilary Brownlie

Who are we designing products for? The customer of course. What happens when we start designing ‘with’ the customer instead of ‘for’ the customer? A drastic culture change that encourages collaboration and benefits both the user and the organisation.

In this talk, Hilary Brownlie walks us through how this culture change occurred. Instead of starting with a brief, the question ‘what could we improve?’ was asked. This led to the Scottish Approach to Service Design (SAtSD), an approach where services are designed with the customers, rather than for the customers. The ideas that developed from this approach led to the company culture changing that had more empathy and encouraged designers to listen to the users. Overall, there was a much stronger focus on the user.

Collaborate Bristol Part 2 – Talks by Jon Fisher and Georgia Rakusen

Falling between the cracks
Jon Fisher

Could a product have the capability of killing someone?

Three real life examples were given:

  1. Chernobyl
    A mixture of poor design and human behaviour led to the core in one of the nuclear reactors exploding. This was caused by an optimising violation where someone attempts to break the rules with the intent of achieving someone good. In this example, the engineers wanted the safety test to pass so they broke crucial safety rules to do so. In total 31 people died (if you believe the official statistics).
  2. Railway Safety
    Unfortunately, I did not write enough down to fully remember or understand this particular scenario but it involved someone working at a computer where they had to perform repetitive tasks. A chain of events led to the person at the computer making a mistake due to the repetitiveness of his work. The railway line became fully electrified while an engineer was doing maintenance work. Fortunately, no one died. Unfortunately, the engineer had to have both his hands amputated.
  3. Ethiopian Airlines Flight 302
    The cause of this plane crash is still under investigation, however it is generally believed to have been caused by a sensor recording the wrong flight angle. The computer decided to dip the plan to correct this angle. The pilot noticed this and attempted to stop the plane from dipping. The pilot and the computer were fighting each other – the computer won the fight and 157 people died.
The Swiss cheese model was mentioned as a way to show that there will always be several holes in the design. Accidents can happen when those holes are perfectly aligned.

When designing a product, the desired outcome is to deliver value to the customer. Is there an obsession with value? Are we even aware of the potential risks and pains involved when delivering that value?

The human will try and do things the tech team believed they shouldn’t and won’t do. Humans are unpredictable – they they probably do the unexpected. No matter how many levels of defence, there will always exist that perfect chain of events that can result in catastrophe.

I have one observation with the examples mentioned above. We have 2 situations where a human was trying to fight the system. In one case, the human won resulting in Chernobyl. In another, the system won resulting in the Ethiopia plane crash. Do we design to allow a human to take over when required when the computer has gotten it wrong? Or, do we design to prevent a human taking over so they don’t do something stupid?

Web 3.0: How blockchain will change the way we interact with one another
Georgia Rakusen

Thew world is full centralised systems who control everything we do. What is the problem with centralisation? Everything is controlled by a central organisation who have all the power. All information is controlled by the central power, which can create questionable integrity.

Centralized vs decentralized vs distributed processing
Centralized vs decentralized vs distributed processing

Blockchains allow information to be stored across a network of computers. Because the information is not stored at a central location, it is not owned by a single person or company. Multiple people are encouraged to cooperate to verify the information and transactions are valid. Since the information is stored and checked by multiple sources, the overall system has better integrity.

A few examples were given where such a system has been beneficial.

CIvil – The journalism industry is reliant on ad revenue which influences content. As a result, we have no idea what information is correct or not. A decentralised system of co-ownership and participation can help build a more integral industry. Members have to follow a code of conduct and can be voted out if that code is broken.

Openlaw – Normally, legal contracts are controlled by a lawyer. This can make any legal process slow and cumbersome. Instead, legal agreements are created and signed on a block chain. Without any central lawyer, it is easier to raise disputes. Ultimately, all parties involved have to agree.

UPort – an open identity system where personal information can be easily transferred to new platforms. The user has better control over what information they want to share, and what information they want to hide.

I found this great video explains what blockchain is better than I do.

I hope you enjoy reading my summaries. I find its a great way to review my notes and record my own interpretation of the talk. Next post will be about the talks by Gavin Strange and Hilary Brownlie.

Collaborate Bristol Part 1 – Talks by Onkardeep Singh MBE and Juliana Martinhago

On Friday 21st July 2019, I attended Collaborate Bristol – A UX and design conference. This is the second time I’ve attended this conference and, like last year, I learnt a great deal from it. I am normally so focused on software testing, it is easy to forget the importance of the user experience. I definitely encourage others to research alternative subject areas that may offer a different outlook to your main interests.

I was pleasantly surprised to find myself on the front cover of the program – in a photo taken of the audience last year, you can just see me on the second row.

In total there were 8 talks on varying topics. In this blog post, I am going to start by writing what I learnt from the first 2 talks – by Onkardeep Singh and Juliana Martinhago

Being passionate, not precious, about your work
Onkardeep Singh MBE

Passion – intense desire or enthusiasm for something
Precious – something that is of great value that must not be wasted.

This first talk explored the workings of the mind. As someone who has always struggled to understand the basic concepts of psychology, I fear this talk may have gone a little over my head. However, it was still an interesting talk and I’m going to do my best to provide my own interpretation.

During this talk, Onkardeep asked the audience a couple of questions:

  • Thoughts and feelings com before an action – true or false
  • Humans are unique because we are in control of our thoughts and actions – true or false

The responses to these questions were mixed. The truth is there is no concrete answer. It is quite common for someone to consciously think before they act, however there often comes a time where that same person might run on autopilot. Sometimes we have control over our actions, but not always – mistakes can happen.

Our actions may be better explained by what is most important to us. If we detach ourselves then our actions aren’t affected as much by our thoughts. When we see something as previous, we see it as being of great value. If we see something as valuable, then we are more likely to have strong thoughts and feelings about it. These thoughts and feelings can affect the way we act. By distancing ourselves from something, not seeing it as precious, we are less likely to have that strong reaction.

We need to be passionate about our work, and have that intense desire for things to go well. But we should avoid being precious about it, so that we don’t react too negatively when things go wrong.

Building great products and successful teams
Juliana Martinhago

Juliana is a product designer at Monzo – a banking app which I’ve never used and knew very little about until this talk.

Monzo was presented being a bank that aims to make banking easier, removing the normal frustration associated with traditional banks. This is achieved by having a strong focus on improving the user experience.

At Monzo, the teams are made up of ‘squads’ – small teams with a shared goal. They are formed around outcomes instead of features. This seems like a good idea as the feature may fail to achieve the desired outcome. Focusing on a outcome means that alternative ideas can be explored.

I can’t remember if the Spotify model was mentioned or if its used at Monzo, however I do know that this also uses ‘squads’.

They start each stand-up by asking the question: What is the most impactful thing we can do today to achieve X? This allows a backlog of ideas to be developed that could be used to achieve what ever X is (the outcome).

One feature available in Monzo is the ‘labs’. This is used to test new features. The user is able to switch on or off specific features which are still in development. Customers are aware that there the feature is still a working progress, but are given the opportunity to test it out early and provide early feedback.

The entire model used at Monzo is aimed at providing something meaningful for the customer, which provides a banking app with a vastly improved user experience.

I will continue publishing my write ups of the Collaborate Conference talks over the next couple of weeks. Next up will be ‘Falling between the cracks’ by Jon Fisher and ‘Web 3.0’ by Georgia Rakusen.

A Stitch In Time Reduces Critical Bugs

On 19th July 2019, I attended the #MidsTest meetup in Coventry where I gave my second 99 second talk. This time, I brought a prop – a block from a quilt I’m currently making. This blog post is based on the talk I gave.

Tweet about my 99 second talk, including a photo of me giving the talk

One of my hobbies includes sewing. At the moment I’m working on a patchwork quilt which will be a wedding gift for my sister-in-law who is getting married in August.

A patchwork quilt is made up of hundreds of small pieces of fabric, sewn together to create blocks. These are then sewn together to make the completed quilt. The main image for this post is one of several blocks which will be included in the final quilt.

You’re probably wondering where I’m doing with this!

Unit and Integration Testing

Those small pieces of fabric that make up the quilt – rectangles, squares and triangles – have to be unit tested before being used to make the quilt. Any that have not bee cut to the correct shape and size could result in a major bug finding its way to the completed quite.

Once the ‘units’ of fabric have been tested, they are sewn together into smaller blocks. Before sewing the blocks together, they have to be integration tested. Incorrect seam widths or wrong side of the fabric being used are common bugs that can affect the overall design of the quilt.

Saving time by finding defects earlier

These smaller blocks get stitched together to make bigger blocks, which are sewn together to make even bigger blocks. Eventually, all the blocks are sewn together to complete the entire quilt. Each block was integration tested before being used to make a bigger block.

All the testing that takes place early in the quilts development helps reduce the risk of more critical defects being introduced later on. Additionally, bugs found in the smaller blocks are a lot easier to fix than ones found in the bigger ones. The stitches have to be unpicked and the pieces of fabric sewn back together. Defects on smaller blocks are quicker to fix because there are fewer stitches that need unpicking – there are fewer dependencies.

All that testing, why are there still bugs?

Unfortunately, no amount of testing will completely eliminate all bugs. It helps drastically reduce the number of defects that find their way into the final product – but doesn’t eliminate them altogether.

No matter how careful I am, the quilts I make all have minor flaws in them. However, these are minor issues that don’t significantly affect the design. Any major defects that could have affected the quilts design were eliminated early on. If they had been found later, once the quilt was complete, they would be a lot harder to fix.

Why don’t I fix every defect? If I stopped to fix every defect then there is a risk that the quilt won’t get completed in time for my sister-in-laws wedding. In software development, the risks are normally a lot greater than that. Delaying the release costs the business money, sometimes more than if a defect was released to the live environment.

It is not always feasible to fix every single defect – especially if they are minor ones. A little more effort on unit and integration testing can reduce the number of bugs that need to be fixed later.

What I Read Last Week (16th June 2019)

It is a little last minute, but I am so excited to be given the opportunity to attend the London Tester Gathering Workshops. I will be attending the ‘Automate Scenarios with SpecFlow’ workshop on the 26th June, run by Gáspár Nagy.

Specflow is a framework that uses Behaviour Driven Development. We’ve been looking into trying out new test automation frameworks at work and this is one that we’re hoping to use more extensively.

Response to ‘How do you solve a problem like Selenium?’

Last week, I wrote a little more about the AB Testing podcasts thoughts on the industry obsession with UI testing and Selenium. João Farias, who runs the thatsabug.com blog, shared a couple of interesting articles on the subject.

What do you mean by UI tests? by Mark Winteringham, Automation in Testing
Are we testing the UI or testing through the UI? In this post, Mark discusses the definition of UI tests a little more. Not everything needs to be tested through the UI, but ultimately it is about risk. The risk defines the approach, not the tool.

Testing Ember Applications: First Steps by João Farias, That’s a bug
João talks about his previous experience testing using Ember which tests the front end code, rather than the UI (which Selenium does).

Link to the comments can be found here. Thanks for sharing João, much appreciated!

Webinars

Ask Me Anything – Shift Left, Shift Right – Marcus Merrell
A brilliant AMA, hosted by the MInistry of Testing. Many brilliant questions were asked about Shift Left and Shift Right, and Marcus Merrell gave some brilliant answers to them all.

Further questions and discussion on the subject can be viewed here: https://club.ministryoftesting.com/t/ask-me-anything-shift-left-shift-right/26353

Articles and blog posts

Beware the inexperienced automation team, Beaufort Fairmont
We wouldn’t allow a team to only consist of entry-level developers. So why would we allow inexperienced test automation engineers or testers with no coding experience develop automated tests?

Misc.

State of Testing Survey 2019, Practitest
Practitest have published their annual state of testing survey. Have a look to see how your experiences compare with other software testers around the world.

The ultimate list of 100 software testing quotes by Sofia Palamarchuk, Abstracta
A list of quotes on quality, testing, automation and some other fun ones. Here is a small selection:

  • “To those who say that “if you need testing at the end, you’re doing it wrong”, would you prefer a Boeing, or are you going Air Icarus?”Michael Bolton
  • “The most exciting phrase to hear in science, the one that heralds discoveries, is not ‘Eureka!’ but ‘Now that’s funny…’” Isaac Asimov
  • “Just because you’ve counted all the trees doesn’t mean you’ve seen the forest.”— Anonymous
  • “If we want to be serious about quality, it is time to get tired of finding bugs and start preventing their happening in the first place.”— Alan Page
  • “Where is the ‘any’ key?” Homer Simpson

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)
https://www.ministryoftesting.com/feeds/blogs

Testing Conferences
https://testingconferences.org/


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