Categories
Mobile Testing Software Testing Technology

Testing for accessibility

Testing for accessibility in your apps/websites doesn’t have to be a chore. Making accessible and inclusive content will increase your target audience and reduce your chances of being sued (123).

It’s not like I’m encouraging lawsuit driven development, but it is important to build an inclusive experience.

Other benefits with building with accessibility in mind are known as the Curb-Cut effect. When people first introduced curb cuts (i.e. sloped ramps) at intersections for wheel chair riders they discovered that many other people benefited too; i.e. people pushing strollers/shopping trolleys, people with deliveries and people with walkers all used these new curb cuts to help navigate their urban environments.

Image for post
A curb cut from WikiCommonshere is a podcast on the history of these ramps.

Over 4 million people in Australia live with some form of disability. That’s 1 in 5 people (1). Over my lifetime I’ve experienced a number of health issues that have impacted my abilities temporarily. I might not be living with an officially diagnosed disability today but I frequently use features such as the closed captions on YouTube and Audio Books when I feel like changing up how I consume information.

It’s easy to get overwhelmed when thinking about accessibility testing, there’s many different levels of accommodations to consider (7). Getting started with the following is a good step in the right direction;

  • Vision Impairment (Can people use screen readers interact with your content?)
  • Hearing Impairment (does any linked video content have closed captions?)
  • Mental health/Intellectual/Autism spectrum (Does your content overload people’s processing ability? Is it easy to read and follow?)

It’s no wonder people often put this type of testing in the too-hard basket. However if you start with testing with vision impairments in mind you should be able to get a good return on investment towards a more inclusive experience.

Screen Reader technology

Most vision impaired users will use some sort of screen reader technology to browse the web. Even I use this technology when I feel like listening to a news article online instead of reading. 2.3% of the US population have some sort of vision impairment (2). This statistic is likely to grow with an aging population. The growth of voice interfaces will also grow the use case for this technology. I prefer using iOS’s VoiceOver technology but there are many other tools out there; Windows comes with Narrator and Android has TalkBack, there’s also the paid software JAWS.

Using VoiceOver with mobile apps

On my iPhone, I can go into Setting > Accessibility > VoiceOver to enable the screen reader:

Image for post
iOS’s accessibility options view

I enable accessibility shortcuts on my mobile device to make it easier to use. When I press the side button 3 times, I can easily switch accessibility features on and off.

Image for post
My iOS accessibility shortcuts, I have VoiceOver and colour filters enabled

When I test using VoiceOver;

  • First I’d navigate to the app/site I’d like to test
  • Then enable VoiceOver using my shortcut
  • Finally flick/scroll two fingers up the screen

This enables the screen reader to read everything on the screen from top to bottom and I can test if the flow makes sense. There are plenty of other guides out there for using VoiceOver (12). I suggest switching on a screen reader on your mobile device and getting familiar with the technology. As a test, can you figure out how to take a photo on your phone using screen reader technology?

Large font accomodations

Jacking up the font size or using a dyslexia font plugin in on chrome is a great way to find ways your UI may break. Watch out for views that don’t scroll and text that doesn’t line wrap.

Alternative text for images

Screen readers will read out the alternative text for images for vision impaired users who can’t see your images. Alt text is an optional field for HTML image tags. For example, using Campaign Monitor’s Email Builder I have included an alt text tag with my image to convey the message of the image for screen readers. Here is the HTML tag for the image;

<img src="darth_vader.jpg" alt="Meme; Come to the dark side ... we have cookies">

This is what this email looks like with images;

Image for post
Email view with images

I used Firefox’s web developer tools to replace images with their alt text to see this next view of the same email;

Image for post
Email view with alt text replacing the images

It’s considered a web best practice to include alt text (15). You can also read more about the web accessibility initiative at w3.

Tips for Alt text

  • Check you have alternative text for your images and that it makes sense
  • Check that you have blank strings or no alt text options for decorative images so that screen reader don’t try to read the image or the file name
  • Don’t include words like “image of” in your alt text because screen readers will announce it’s an image and then announce the alt text. You will get a double whammy “image. image of blah” from your screen reader, this is super annoying
  • Use tools that display the alt text or replace images with their alt text to help test this

Test your images for colour blindness

About 4.5% of the British population experience some form of colour blindness (3). To help test this I have a grey scale shortcut button set up on my iPhone. On a side note, setting up grey scale for your phone helps make it less addictive too (17).

Image for post
This is what my phone looks like with grey scale enabled, you can also see what the accessibility shortcuts look like

Hopefully you now realize that testing for accessibility in your apps/websites isn’t that hard. If a screen reader works with your content, you have alternative text fall back options for images and your images are still readable using grey scale you will be most of the way there in providing an awesome, inclusive experience with your online content.

References

  1. https://www.and.org.au/pages/disability-statistics.html
  2. https://nfb.org/blindness-statistics
  3. http://www.colourblindawareness.org/colour-blindness/
  4. https://ssir.org/articles/entry/the_curb_cut_effect
  5. https://commons.wikimedia.org/wiki/File:Pram_Ramp.jpg
  6. https://99percentinvisible.org/episode/curb-cuts/
  7. https://services.anu.edu.au/human-resources/respect-inclusion/different-types-of-disabilities
  8. https://www.apple.com/au/accessibility/iphone/vision/
  9. https://support.microsoft.com/en-au/help/22798/windows-10-narrator-get-started
  10. https://support.google.com/accessibility/android/answer/6283677?hl=en
  11. https://www.freedomscientific.com/products/blindness/jawsdocumentation
  12. https://www.imore.com/how-use-voiceover-iphone-and-ipad
  13. https://www.campaignmonitor.com/resources/guides/alt-text-in-email/
  14. https://addons.mozilla.org/en-US/firefox/addon/web-developer/
  15. https://support.siteimprove.com/hc/en-gb/articles/115000013031-Accessibility-Image-Alt-text-best-practices
  16. https://www.w3.org/WAI/
  17. https://www.youtube.com/watch?v=NUMa0QkPzns
  18. https://www.abc.net.au/news/2019-01-10/commonwealth-bank-settles-discrimination-claim/10702194

Originally posted on medium in 2018

Categories
Technology

Crash course in SSL certificates

This is a brief explainer of SSL certificates for anyone who’s curious. Content warning; there’s lots of acronyms when it comes to understanding internet traffic.

HTTP Protocol


When you hit a website/server you use a protocol called HTTP (Hypertext transfer protocol). This protocol opens up a connection with a server and can pass stuff like HTML (Hypertext Markup Language) to your web browser (client). Or this protocol can return data (often in JavaScript Object Notation – JSON or Extensible Markup Language – XML format) from an Application Programming Interface – API call. API responses such as 200 ok and 418 – “I’m a teapot” are HTTP responses.

One of the issues with using plain HTTP, is anyone can intercept that traffic and read everything in plain text. They can even introduce HTTP redirects so all of your information gets sent to their malicious server instead.

Introducing the secure layer (SSL)

This is where HTTPS comes into to play. The S stands for Secure. By default, most web browsers these days use HTTPS and will let you know if the website you are accessing doesn’t use HTTPS. This is often done using Secure Socket Layer (SSL) and encryption.

An SSL certificate is issued by trusted third party provider. This certificate comes with a public key and a private key. I use the private key on my server to encrypt data before I send it to your web client. Your web client then uses the public key to de-crypt the data.

My blog uses a self renewing certificate generated from Let’s Encrypt. And you can see this little lock icon in your browser to trust me. My website is legit, mate.

You can check out my certificate details, including details of when it expires and the public key information:

Expired SSL certificates

On my old blog, I use to purchase a SSL certificate from a certificate issuing authority, and manually upload it to my blog. This wasn’t hard, but I’d often have periods of my website having an expired SSL cert cause I was too lazy to upload it. If you go to my old blog today you get this SSL warning:

Also when you go to many internal test environments you get a similar warning, because teams often use self signed certificates to encrypt their internal test environment traffic. 

Anyway, SSL stuff can get pretty complicated.I hope you learned something new or were able to refresh your SSL knowledge.

Categories
Finances mental health Weight Loss

My Credit Card Addiction

Let me tell you the story of how my credit card addiction blew out to be 35K AUD in debt (that’s 1.8 million rupees, 19K pounds and 25K USD for any of my international visitors). And how I’m still struggling with paying it off today.

But would I have done anything different? Probably not.

Learning how to manage money is one of the hardest things to do in life. And I think you learn the most by taking the hard route. Experience it all first hand.

2008 – The Student Credit Card

My first credit card was a $500 one. I got it before I went on exchange in Sweden. It did help when I was at uni, traveling around or had an unexpected expense come up.

2012 – The First Job Credit Card

When I moved to Sydney in 2012/2013 that creditcard was joined with a second one. This new card had a $2000 limit. I used it to buy a new laptop, and a bluetooth speak. I still use that speaker. The laptop really should be recycled through e-waste.

I also got my teeth done the first few years I lived in Sydney.

Getting my teeth fixed cost me $8000 and it was all cycled on the credit card over 2 years. So I never really paid it off. I just constantly cycled money on it.

That 2k credit card soon slowly increased to 7k.

2014 – The half arsed credit card application

Then I thought about consolidating that 7k creditcard. I half applied for a card but didn’t finish the application process. But Citibank were so desperate to issue me credit, they called my employer to check my income.

Nek minnit, I had a freshly minted 15K credit card in my letter box. I should have just canceled the card.

Narrator: She didn’t cancel that credit card

2015 was a bad year for my debt

In 2015 I had around 14k in debt across 3 cards. I had moved in with a partner at the time, used a card to help with the purchasing of household stuff. Had a sciatic nerve problem flair up, decided a decent mattress was in order. It went straight on the credit card. Got a loan for a motorbike, all of the extra gear I bought for it went on the credit card.

I was just about to consolidate it all into one card and cancel all the others, when my dad asked to borrow 2k. I used the credit card to do it. He paid it back but it meant I didn’t cancel that 7k credit card. I kept it open.

There was a holiday (a motorbike road trip to cairns and back) all added to the credit card too.

2016 came weight loss surgery

I applied to pay for the $7000 excess for weight loss surgery out of my super, the application was declined because my doctor didn’t emphasis the life and death nature enough on the referral letter. I ended up using that remaining credit card to pay for it all.

This I wouldn’t change at all. It helped me lose 40kg. The gains in quality of life and earning potential have probably already paid for itself. You can read more here.

2017 – Personal loan 35K

In 2017, I decided I had enough of all of those credit cards. I had 35K in debt across 3-4 cards. I took out a personal loan, cancelled most of the cards. I kept the 2k one. I still couldn’t completely shake off that credit card addiction.

2018 – Had lots of shit happen

I broke my ankle at the end of 2017, which meant I didn’t work as much in 2018 due to recovery, there was 2 job changes and moving houses a few times. It was not a very stable time of my life.

2019 – finally some stability

2019 sees me land a job with Colonial First State, however there was some drama with how I ended up with that role too. Basically I thought I was going to move to Newcastle. but nope, that was cancelled at the last minute.

But my housemate had already found a new roomy to take my room. So I had to move again. That 2k credit card had slowly increased back up to 7k and I used part of it to help me move again. I’m really proud of my new furnishings though, I even got a photoshoot for it. It’s all second hand furniture and now I pay sweet fuck all rent in Sydney:

After a few months working at CFS I transferred my personal loan from westpac to commbank and reconsolidated that 7k credit card into it.

I also had my gall bladder removed at the start of 2020. Only about 2k out of pocket, but it still went on the credit card.

Today – it’s 20k plus 2k in credit cards

Today my total personal loan debt is at 20k and I have a 2k credit card. I finished paying off my motorbike loan last month. Woohoo. It’s the first big debt I’ve acquired since moving to Sydney that I’ve now paid off.

I’ll have that 2k card paid off by October and I’m track to have that personal loan paid off by the end of next year.

I feel on track to domino all of my debts but oh boy, has it been a rollercoaster ride to get there. I don’t think there is much I would change because it’s all a part of how we learn about life and how to manage our money.

If I hadn’t gone on this rollercoaster, when I do become debt free I wouldn’t appreciate it as much if I hadn’t taken the hard way to get there.

This is not personal financial advice, but seriously; paying off credit card debts feels fucking fantastic

Categories
Critical Thinking Software Testing Testing Archives

Interviewing technical testers

Angie Jones has this awesome video explaining the technical interview process for software testers. This blog is a summary of that process in written form. I often watch these videos at double speed.

1. The Testing Question

Many automation engineers out there are great at code but not so great at the testing element. Companies are looking for people with strong skills in both. Someone could ask you:

  • How would you test this pen/chair/bottle?
  • How would you test a username/password log in field on a website?

It’s easy to jump straight into test scenarios. BUT make sure you come back to the context;

  • Why is this being tested?
  • Who is it being built for?
  • What are the requirements/features?

2. Unit Testing

You might be given a sample function and ask to come up with some unit testing ideas. As an Automation Engineer you probably won’t be writing unit tests but this question is to see how you apply that testing mindset. You might answer this in a Test Driven Development approach.

public int add(int a, int b);
  • Does this method add two integers and return it?
  • What are the min and max values? e.g. is what about an integer larger than 32 bits?
  • a = 0 and/or b = 0
  • Negative numbers?

3. Service Tests

You might be asked to test a simple CRUD API for a sample API e.g. user management, what scenarios would you create to test the API? Make sure to talk about the different HTTP methods and the different error responses. How would you create scenarios to test them?

4. UI Tests

You might be given a web page and asked to create some UI tests using the tools you are the most familiar with. You could talk about the different approaches you might use too. If you could talk out how you would build out a page object model, what parts are common across different pages and how you’d abstract them out in their own classes such that they could be easily reused this would be gold.

5. Programming questions

Unfortunately you might have the same programming questions thrown at you as developers. These are a horrible part of the interview process but it’s something we have to live with. HackerRank is a great way to practice and to get efficient at this type of performance.

Dan Ashby’s approach to interviewing testers

Dan Ashby has this great post on how he interviews testers using this mindmap:

My approach

If I was interview a technical tester I’d start with an intro. We will then dive into an exploratory testing question. Then ask about using GIT and how you would collaborate with developers. Then deep diving into some more technical questions on unit/API testing depending on the role.

  • tell me a bit about yourself…
  • How would you test a username/password login page?
  • How do you create a pull request in GIT?
  • What unit tests for this function can you come up with?
  • How would you test this sample API?

If I was interviewing for a mobile tester role I’d ask about using command line tools like Android Debug Bridge (ADB). For example, how would you generate a battery historian report and pull files from an android device using ADB?

How do you go about interviewing testers? Do you have any other tips to add?

Categories
Critical Thinking mindfulness

Reflections on free speech

In today’s internet era it feels all too easy to get angry and upset over something offensive. It can be easy to find the rage machine in full swing and to get caught up in it all. Many platforms can concentrate that anger and it’s all in the name of “engagement”. Outrage gets more clicks and shares.

This blog post is a reflection on my thoughts about free speech, hate speech and how people become hateful.

3 approaches to moderation

If we let all types of speech fly under the free speech banner, then what do we do about speech that enacts violence? On the internet I’ve seen three levels of moderation:

1) Reddit – let everything fly

If you want to see some dark nasty corner of the internet you will find just the right corner in some subreddit thread somewhere. 4Chan has a similar culture. Anything goes, no moderation here.

Remember #GamerGate? One part of of it was some people didn’t like Anita Sarkeesian’s video posts on Tropes vs Women in video games. Someone even created a beat up Anita game.

2) Twitter – let most things fly

If it enacts a sense of violence twitter will now tag the post with a warning:

Twitter has flagged and hidden a tweet by United States President Donald Trump, saying he violated Twitter’s rules about glorifying violence.

https://www.aljazeera.com/news/2020/05/twitter-flags-hides-trump-tweet-glorified-violence-200529080054304.html

3) Facebook – post no evil

Facebook has a team of people and algorithms searching and blocking hate speech, e.g. commenting “Men are scum” will be removed.

you can’t attack a person or group of people based on a protected characteristic. A characteristic like race, religion or gender.

https://www.wnycstudios.org/podcasts/radiolab/articles/post-no-evil

Free speech isn’t a free pass

If I say something hateful, offensive or generally misguided, I should be held accountable for what I said. I want people to call out my offensive nature. There’s lots of things I don’t know or misunderstand. By calling me out you help me to improve my understanding.

We have to take responsibility of what we say

Rowan Atkinson – https://www.youtube.com/watch?v=BiqDZlAZygU

Comedians and cancel culture

Comedians have a reputation for being a bit offensive or a bit on the nose with their comedy. Comedy is criticism of society at large. Here are some Comedians calling out Cancel Culture:

These comedians tend to think we are now too sensitive and over react to everything.

How people are radicalized

I’m going to leave you with a video on how people become radicalized. It doesn’t matter if it’s veganism, transphobia, racism, sexism or general hatred. No one starts their life hating another group of people. We learn this behavior through the culture we absorb:

If you find yourself getting angry over something on the internet, please take some time to reflect and understand where that anger is coming from.

Further Reading

https://ketanjoshi.co/2020/08/07/journalism-has-a-social-media-abuse-problem-no-not-that-one/

Categories
Software Testing Testing Archives

Testing Archives – August 01

There’s tons if software testing weekly newsletters for keeping up to date on current trends. There’s testing bits and Software Testing Weekly. But this got me thinking, how much awesome content is out there that could be resurfaced?

Welcome to my first Software Testing Archives series. This series is a deep dive into content that was published this month years ago.

Subscribe to get this content straight to your inbox:

August 2016 – CAST Conference keynote

My old boss from Tyro; Anne-Marie Charrett gave this awesome keynote at CAST conference 2016. The sentiment is transitioning from Test Manager to Test Leader. This conversation is still relevant today. When Anne-Marie left Tyro, I co-authored with Brian Osman this blog post on free range testing; a reflection of my experiences working in this team environment. I was tester number 8 and the second tester to be embedded in a dev team. I saw that team grow to 23 testers.

August 2012 – Defending the qualitative approach

This bog is by Ilari Henrik Aegerter who runs the House of Testing, Ilari has recently started posting single slide videos on a topic of software testing up on LinkedIn. You should check them out.

August 2010 – Exploratory Test Automation

Douglas Hoffman and Cem Kaner gave this presentation at Cast Conference. Both of these blokes have been contributing to the testing industry for a very long time. Cem Kaner started the BBST software testing training program. Here’s some videos that feature these two blokes:

August 2005 – How to investigate an intermittent problem

Have you every experienced a problem and haven’t been able to reproduce it 100% of the time? What did you do about it? James Bach does a deep dive into how to investigate these problems in more detail.