Categories
Job hunting Software Testing

The 1 page CV

How many pages should you Resume/Curriculum Vitae have? I’ve always liked to keep mine below 2 pages and I’ve regularly experimented with a 1 page one.

However different countries will have different expectations. And the CV is a relic from the past. Is it all that useful anymore?

My 1 Page CV

This here is my 4th iteration of a 1 page CV (PDF), I tend to do one every few years, you can read about how it’s evolved over time here.

It has embed links and is very brief. It has a visual timeline at the top with recent experience. If you want more information about my work history you can always check out my LinkedIn. You don’t need you entire work history on your resume.

The 2 Page CV

I use this CV (PDF) when I feel like the 1 pager is too experimental. However the job application process is broken and resume’s aren’t all that useful. They are just a token part of the job application process. I’ve gotten my last 3 job offers by networking, speaking and meetup events and blogging.

Want to improve your profile?

You can book me in for 1 on 1 career coaching via Calendly, my rates of $50 AUD for 30 minutes will apply.

You can also check out my career tips for software testers here, technical skills for testers or this video for building your profile on youtube here:

Categories
Design Finances Technology

Review of Finance Apps

I’m studying to be a financial advisor and I’ve been exploring many of the mobile apps out there that can be used to help manage finances. This post is a review of the ones I’ve used so far. My preferred apps are listed first.

This is NOT financial advice or a product recommendation, a professional can help you if you have any concerns about your finances.

I own shares in CBA, Westpac, Eggy & Tyro. This represents an invested interest.

Finance Apps

Budgeting Apps

I prefer using a simple Google sheet to manage my budget, however money brilliant looks pretty and Up bank has a cute little budget tool built into it too.

Commbank gets in honourable mention because their upcoming bills feature has helped me keep on top of expenses due to come out of my bank in the next few days.

Many of these apps have a bank feed import feature and they can miss label transactions/categories and it can be frustrating to fix.

You can read more about how I manage my budget here.

Google Sheet
Up Bank
Money Brilliant
Commbank – upcoming bills
CommBank – category budget

Life Admin Apps

These apps aren’t strictly budget related but can help you with your budget through helping with life admin. With reminders for upcoming bills and connecting with financial advisors.

I own shares in Eggy via Birchal.

Eggy
MyProsperity

Banking Apps

I love Up Banks branding and personality. They also have an ok interest based savings account and an auto round up saving feature on transactions. Westpac has a 3% interest for anyone under 30.

Otherwise most of my banking is done through CommBank. I have used a variety of other banking apps but they are all kinda similar. 86 400 has a bank feed integration feature and a decent predictive bills feature which is cool.

The bank card I received from Xinja was the funnest card that I received:

Xinja
Up Bank
86 400

Business Banking

If you need to do EFTPOS/credit card processing as part of your business Tyro is cool. I worked on their mobile app a few years ago. Otherwise I use commbank as my main business account because the fees are cheaper than westpac.

Tyro

Investment Apps

Learning to invest

CommSec pocket is great if you are learning to invest and has a minimum investment of $50, but the fees can be expensive. Raiz has an auto roundup on bank transactions for the purposes of investing which is nifty.

Setting up automatic investments into an index fund is a great way to get started. You can read more about how I built up my own portfolio by investing a small amount each pay.

CommsecPocket
Raiz

Education

I’ve installed both Finimix and Forex Portal for learning purposes. I’m not sure if they are useful yet. More time will tell.

Building a portfolio

Most of my portfolio is held in CommSec (minimum initial investment $500). BrickX isn’t a mobile app but their website is mobile friendly and I’ve been using the platform to learn about property investment. BrickX may not be great if you need to liquidate those investment quickly though.

CommSec
BrickX

International Investing

I don’t have a large portfolio with Stake but it’s a clean looking app for US stock market trading. Just watch out for the foreign currency conversion fees, fast processing times will cost you.

Otherwise most of my international investing is via index funds traded via Commsec.

Stake

Managed portfolios

This is starting to get towards the bigger end of town in terms of minimum investments. If you have a larger portfolio these options might be worth considering. These products aren’t all mobile apps but they have very attractive web portfolios for checking this stuff while on the go.

Spaceship

I don’t have much invested in spaceship but their managed portfolio has exploded recently mostly due to US tech companies doing exceptionally well during the pandemic.

Maybe these tech stocks are now overpriced? Who knows, the markets aren’t very predictable. You can read more on my adventure with investing during a crisis.

Superannuation Apps

Super Apps

I’m biased, the mobile app that I’ve been working on for the last 1.5 years is the best one here. However Sunsuper is my main super and I like Aware super. Grow is also pretty but it was confusing to use at first.

You can read more about superannuation mobile apps here.

Colonial First State
SunSuper
Aware Super
Grow Super

What apps do you use for your finances? What features do you like the most? What’s been frustrating?

If you are interested in learning more about finances, I highly recommend checking out the My Millenial Money podcast.

Categories
Mobile Testing Software Testing Technology

A day in the life of a mobile app tester

A few days ago I posted on LinkedIn that I have hardly written any test automation code in the last year:

And I had a few people ask, “how do I test during a code review?”. So I thought I would dive deeper into what an average day for me looks like.

My Role; Software Engineer in Test

Officially my role is a Senior Software Engineer in Test on a mobile app team, it’s a little like this role description but with a mobile app focus instead of a C#/web focus. So why am I not writing test automation code? It’s there in the job description.

Checking Jira

I’ll start my day by checking our scrum board for our current sprint and figuring out what my focus is for the day. What tasks have been assigned to me and what needs some focused testing:

We have user stories and tasks in our sprint backlog, we have three columns; To Do, Doing and Done. We create dev and test subtasks for each user story.

Here’s a rough cadence of sprint meetings, you can read more about what these meetings involve in my mobile app test strategy blog:

Check’in out the Code

Next I’ll usually update my local code to include recent changes, if the dev work was merged in recently it can be tested. This is the git command I’ll usually run to get my local up to date:

git checkout develop && git pull project develop && git push

I use git to help me with large code reviews. The developers will create a pull request with their new feature. I’ll check that code out on a local branch and use Xcode/Android studio to test that code on emulators/simulators. I’ll often use this git command to do so:

git fetch project pull/{pr_number}/head:{pr_number} && Git checkout {pr_number}

I’ll explore the new feature and pass the code review. I’ll chat with the developer if there were any issues observed. I might even run the tests they’ve created as part of that pull request.

I don’t do this for every code review, if it’s a small change I’ll approve it and once it’s merged into the main dev branch I’ll update my local to test those changes. Then I’ll test on emulators/simulators or I’ll wait for our continuous integration (CI) testing pipeline to produce an app file and test on devices.

Android Emulators

I have an emulator for every supported android version, for really important features (i.e. a 3 star feature based on my risk analyst) I’ll test it on every emulator:

I have a similar set up for Xcode, we are in the process of dropping support for iOS 11 because we’d also like to update Xcode.

Backend Testing

I also sometimes checkout backend code but my work machine isn’t set up to be able to build our back end locally. I’ll usually use a test environment to test API’s via Postman or cURL.

Helping with unit testing

I’m more likely to help the developers I work with come up with unit testing strategy. E.G. we were working on a feature recently to add up transactions over the last financial year and we have over 100 different transactions types.

We came up with an approach, if we give every transaction it’s type as it’s value we can more easily check the sums invoved. E.G if one category to calculate was:

transaction type2 + transaction type3 - transaction type1 

we could say we’d expect the unit test result to be $4 (2+3-1). We created the mock JSON that went into the unit tests and it really helped the developer figure out how to test this more easily.

Supporting the App

I helped my team build about a mobile analytics dashboard where we could monitor user engagement and any potential issues that needed more investigation. Recently I’ve be checking it nearly every day and helping my team add more sections because we’ve got an SSL certificate issue at the moment.

We release our app monthly and we’ve got 7 versions that our customers can be on. We have a force update API that the mobile app will hit before it starts the log in process. If a user is on an unsupported version they can’t log in and are directed to the play store to update.

BUT this API uses HTTPS and our production SSL certificate expired recently. We haven’t built rolling certificate pinning yet so it means instead of the old app seeing a forced update, they see a generic error message instead because the SSL certificate has expired. Oops, our bad.

We were able to get 98% of our regular app users onto the latest build with the latest SSL certificate but people who log in infrequently would not have seen the forced update. We are monitoring for an increase in generic error messages and hoping that no one gives us a poor review on the app stores.

I have a crash course in SSL certificates if you’d like to read more.

Building our mocking framework

Most of my code changes involve adding mock JSON data to our mobile app mocking framework. We can test our mobile app independently of any test environment.

We have a bunch of profiles mocked into the test build of our app. E.G if you wanted to see the difference between a pensioner vs investor you can change the profile in the test build.

Our whole business has access to this test build to help the company support the app (not every staff member has an account to use the app with). Sometimes these mocks need updating. As a team we’ve discussed a programatic way to keep these profiles up to date but it’s a little hard and hasn’t been prioritised.

If we are working on a new feature and I’ve recently been testing the API, I’ll often add the API mock test data into our mobile repositories ahead of the mobile dev work to make that process easier.

User Research

Recently I’ve been branching out and helping the design team with competitor analyst and research for new features we are working on. For example, how do other mobile apps handle two factor authentication?

Running a bug bash

every few sprints I’ll book the team in for a bug bash. It’s dev tools down and bug hunting goggles on. I’ll organise some snacks and a confluence page of test data and information about what has changed recently to help people focus on what to test. We award our best bug bug hunter for their efforts and add bugs found to the backlog. You can read more about running a bug bash here. We try to keep it fun and social.

Summary

So yes, I haven’t written much test automation code and this is ok. The developers I work with are great at writing their own unit and integration tests. Does this make my work any less valuable? No.

I enjoy engaging with customers and analytics more than building out test automation code. If you are interested in learning these technical skills that I use on a day to day basis, I have this technical testers guide here.

What are your thoughts on this way of working?

Categories
Software Testing Technology Testing Archives

Testing Archives – October

Wow, we are just as close to 2070 as we are far from 1970. How did they test software 50 years ago? You’ll be surprised to find out, very similarly to how we do it today. The main difference with testing approaches today is the access to technology is greatly improved.

Nearly every developer has access to tools that provide fast testing feedback for what they are working on. Software testing has evolved with the history of computers.

Landing on the Moon

We first landed on the moon on July 20, 1969. This required a huge amount of testing across software, hardware and with astronauts. There were no second chances if this stuffed up. A lot of the Software Engineering practices developed for the moon landing have established themselves as decent practices today.

Margaret Hamilton stands next to a stack of Apollo Guidance Computer source code.

Hamilton led the team that developed the building blocks of software engineering – a term that she coined herself. Her systems approach to the Apollo software development and insistence on rigorous testing was critical to the success of the Apollo Project

Source: NASA

You can access source code for the Apollo 11 project on GitHub too.

Testing Guidelines for Apollo 11

When it came to testing the physical hardware/software, there were 5 guidelines which were applied to all spacecraft tests:

  • Building block approach to testing. Each component was verified before integration testing.
  • End-to-end testing. The use of mocks and substitutes was minimised.
  • Isolation and functional verification of all redundancies. All code paths were proven with end-to-end tests.
  • Interface testing and verification. All interfaces were consistent.
  • Mission profile simulation. The astronauts were involved with real user testing.

These guidelines still ring true today and actually align with this mobile app testing strategy my team uses. The only difference is today we don’t need to build a space hanger to do end to end testing. Oh and getting users involved with testing reminds me of Soap Opera Testing; what could possibly go wrong?

Software Bugs from History

The Y2K bug from the year 2000 (any old computer that used YY as their year format, e.g. 99 might stuff up when the year 2000 rolled around) is an interesting lesson in how bugs in software shape the industry.

This bug caused a huge investment into updating mainframe computers all around the world and established India as the outsource IT capital of the world.

Globally; $308 billion dollars was spent on compliance and testing and it helped build more robust systems that survived the system crashes from the 9/11 terrorist attacks. 

A lot of these business critical mainframe systems were built during the 70’s and 80’s. A lot of finance industries around the world still rely on these systems.

Jerry Weinberg might have something to say

I’m currently reading Jerry Weinberg’s Quality Software Management, which was published in 1992 and he has some references from the 70’s. Once I finish reading the book I’ll put up a summary here too. I reckon it’ll be just as relevant today as it was in 1992.

What lessons from history have influenced your testing approach?

Categories
Agile Books Conferences Critical Thinking Presenting Software Testing Technology Testing Archives

Where are they now?

Have you heard of the Agile Manifesto? It was published in 2001 when 17 blokes who work in tech came together to come up with a consolidated way of working. They came up with 12 principles which still hold up today. It’s worth a read.

This blog is digging into the archives and asking the question; where are they now? It is in alphabetical order by surname.

Kent Beck

He’s got a wikipedia page, I wonder how many of these blokes have their own wikipedia page? Author of the extreme programming series, which I’ve heard still holds up today.

You could also watch his recent YOW! Conference keynote presentation from 2018:

You can check out my sketchnotes of his talk here:

Mike Beedle

He also has a wikipedia page, he died in 2018, he got stabbed. Ouch, my condolences to his family and the community. At least he didn’t have to experience the dumpster fire that is 2020.

Arie van Bennekum

Alistair Cockburn

Ward Cunningham

Most of these blokes have a wikipedia page. But here’s the first one in this list to have a TEDx talk:

Martin Fowler

I often reference Martin Fowler’s content on my blog. I’ve also seen this bloke give a few presentations here in the land down under too:

James Grenning

Has published a book on TDD for embedded chips. Here’s a talk for TDD for embedded systems (I’m a sucker for a good testing talk):

Jim Highsmith

Andrew Hunt

I’ve been meaning to read the pragmatic programmer. Rubber ducking as a debug method was coined in that book and referenced in this talk:

Ron Jeffries

I’m following Ron on twitter, his blog on space invaders and testing seems to be a bit of fun to read. Does everything have to be a user story?

Jon Kern

He doesn’t have a SSL cert on his blog, well my old blog has had the SSL cert expire so I can’t blame him.

Brian Marick

Robert C. Martin

There’s a bit of controversy around “Uncle Bob”. I’ve previously mentioned some of these issues. So I won’t say too much but he’s been “cancelled” for a recent conference and then threatened to sue. Lovely stuff.

Steve Mellor

Ken Schwaber

If you want a bit of context on the term of Scrum, here is a good talk:

Jeff Sutherland

He’s also got a TEDx talk:

Dave Thomas

Finally I’ll leave you an Agile is Dead talk by Dave Thomas. It’s probably one of the most viewed software engineering talks on youtube that I’ve seen since I started putting this blog post together (over 1.2 million views):

Conclusion

Surprisingly, only one of these blokes is confirmed as dead. And there is a serious lack of diversity in this group. However they have all been instrumental in current development practices. Who hasn’t heard of Agile?

So who do you think is driving software development further these days?

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
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
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.

Categories
Critical Thinking Marketing Mobile Testing Software Testing

That elusive Test Strategy

I recently was asked about recommendations for learning about test strategies. Here are my sample strategies:

a strategy doesn’t have to be a big giant document. It starts as an idea in your head and you have to get other people on board as part of that strategy. So you need to share some knowledge in some format to help share your idea. This blog is about how I’d go about developing a new test strategy in a new team.

History of the term

First let’s take some time to understand this term; strategy. Historically the word strategy is associated with war and battle:

Quote: Strategy without tactics is the slowest route to victory. Tactics without Strategy is the noise before the defeat - Sun Tzu
https://www.pinterest.com.au/pin/287878601154737781/

Strategy is to help you win or achieve some goal. Many people talk about their tactics when they are thinking of their strategy. Tactics are your how. They aren’t your whole strategy.

A tactic is a conceptual action or short series of actions with the aim of achieving of a short-term goal. This action can be implemented as one or more specific tasks.

https://en.wikipedia.org/wiki/Tactic_(method)

Book: I have a strategy (No you don’t)

This book helped me understand the term, “Strategy” in a visual and fun way.

https://www.amazon.com.au/Have-Strategy-You-Dont-Illustrated/dp/1118484207

According to this book a strategy has 4 parts:

  • A purpose
  • A distinct, measurable goal
  • A plan
  • A sequence of actions or tactics

Start with a purpose

If I was dumped into a new team tomorrow and asked to develop a test strategy, I’d start by interviewing/surveying a few people. Depending on the size of the team and who I was working with it could be an online survey or a casual chat over a coffee. I’d ask something along the following lines:

  • What does quality mean to you?
  • What are common problems in the testing process here?
  • If you could fix just one thing about our quality, what would it be?

Now different people are going to answer this differently. Developers might say test code coverage, easily maintainable code and easy deployments make a high quality product. Your project manager might say happy customers. Testers might say less bugs found in the test phase.

Develop a goal

Once I’ve surveyed enough people (5 people is a good enough number for most user research interviews), I’ll work on constructing a goal. it might be;

  • improve our continuous integration build times
  • increase our test coverage
  • reduce the amount of negative customer feedback

Make sure it is measurable. You could use SMART or OKR goal formats.

https://www.toolshero.com/personal-development/smart-goals/
https://blog.weekdone.com/introduction-okr-objectives-key-results/

Develop a plan

Now what are some things I or the team could do to achieve our goals? We could create tasks during our sprint to help us work towards our goal. Once you’ve achieved something you survey those original interviewers to see if the perceived quality has actually improved.

Measure your progress

Measure the improvements in quality of your product. For my team we are tracking the average app store ratings, crash rates and engagement with in app features to see if they are actually useful. https://bughuntersam.com/metrics-and-quality/

Risks and Gaps

A Test Strategy could also have a section about risks or gaps in this approach. For example things like performance testing and security testing might not be included. Having a brief explainer why these aren’t part of your strategy can be useful for explaining the context and scope.

UI Automation Visual Risk Framework

if you are working on improving the UI Test automation coverage you can use this visual risk based framework to help focus on where to start and what to automate first and measure progress against it as part of your strategy.

https://bughuntersam.com/visual-risk-ui-automation-framework/

Conclusion

I’m more comfortable with the term marketing strategy over test strategy because it’s easier to measure your impact and easier to come up with concrete goals. Software testing isn’t as tangible as many other parts of the business process and can be hard to measure.

Can your strategy be summarised by this comic:

test all the things
automate all/some things

What resources have helped you understand test strategies? I’d love to check them out.