Nicky Tests Software

Thursday, October 3, 2019

4 Testing Tips for Beginners

New to testing?
In your first year as a software testing?

Here are 4 useful testing tips for beginners.

1. Explicitly State your Assumptions

Before I start testing (and ideally before the developers start coding), I like to go through the requirements/acceptance criteria/user stories, then write testing notes on my assumptions. That is, based on what I have read, what am I assuming?

Not all of the expected behaviour of the application/feature will ever be explicitly stated, a lot of expected behaviour is implied - therefore it's useful to state your assumptions and then either tag the developers/ business analyst in your comments or share your thoughts with them face to face.

While doing this, I also like to state how I would test the application/feature, based off my assumptions - this doesn't have to be written test cases, but more like test ideas; this is followed by the sort of behaviour I would expect for each test idea. (This isn't a promise to the developers that this is exactly what I would test, but more like an indication of what I plan to cover, at this point in time.)

If stating my assumptions is not enough to clearly communicate how I plan to approach testing an application/feature, then stating how I would test the application/feature tends to do the trick.

Wednesday, October 2, 2019

Lessons Learnt: Testing in a changing context

As a tester, I do my best to follow the principles of Context Driven Testing. 

But embarrassingly enough, only up until recently, did I realise that context can change, while you are working in a team - so anything you put in place at the start of your time in a team, might not be the best thing for everyone 6 months later, or 12 months later.

I'd like to share some things I've learned about testing in a changing context - but first let me describe my initial context and how it changed over the course of roughly 14-15 months.

Initial Context

  • 2 main applications - fairly straightforward, not too many possible flows in either of them
  • 3 Backend developers
  • 4 Frontend developers
  • No test automation set up initially
  • 1 Product Analyst
  • 1 Product Owner
  • Designer, who was not part of our team
  • 1 Scrummaster

How the Context Changed

  • 7 applications - a few of which had various possible user flows within it. 1 of these applications had many flows in it.
  • 3 Backend developers
  • 7 Frontend developers
  • Cypress Test Automation, written for most of the applications. Running automatically for 2 of the smaller/more straight forward applications. The tests had to be triggered manually for the rest of them (We had Selenium Webdriver tests for a bit, before our Test Automation Specialist decided to focus more on Cypress as a company-wide Test Automation initiative).
  • API Test Automation for a few of the applications - had to be triggered manually
  • 2 Product Analysts
  • 2 Product Owners
  • Designer, who was part of our team
  • No Scrummaster

Lesson 1. Since Context can change, testing processes and approaches should change

Monday, September 16, 2019

Scrum and Psychological Safety

I first came across the idea of Psychological Safety in 2017 when I attended Joshua Kerievsky's talk on Psychological Safety at Oredev.

Psychological Safety is "‘a sense of confidence that the team will not embarrass, reject or punish someone for speaking up". Two years later it's a concept that still stays with me and I try to keep it in mind when I interact with people or am in group situations. I know that I can sometimes be a louder-than-usual presence in a group setting, or that I can be a bit too direct, so I do my best to keep it in check for the following two reasons:

  • I learn a lot more by keeping my mouth shut and hearing what others think/how others feel
  • But more importantly, I never want to act or react in a way that would discourage people from speaking their mind in the future.

Friday, May 17, 2019

Testbash Brighton 2019 Conference Day Part II of II

Part I is here

Here are some of my key learnings on the last 3 talks I was able to attend at Testbash Brighton 2019 before I had to leave early to catch my flight back home.

Gareth Waterhouse and Lindsay Strydom: Building Communities at Scale

  • 12 QAS
  • 1 location
  • Around 5 teams
  • "Where we're going, we don't need a community"

  • They currently have around 120QAs (this number fluctuates due to contractors)
  • 4 locations - 3 in the UK, 1 in India
  • Different tech stacks/languages
  • Around 70 dev teams
Dealing with growth:
  • Before, they would send meeting invites for 16:30 UK time, this was roughly 22:00 in India.
  • Then they started having 2 clocks in the room, so they could consider time differences when scheduling meetings
They faced challenges in scheduling meetups for the testing community:

After Testbash 2018, Lindsay felt inspired. A few days away from the office gave her time to reflect about the current lack of a testing community.

They then scheduled an unworkshop to discuss exactly what they didn't want in a testing community.

They looked into overcoming challenges:
  • Different formats e.g. testsphere, eating lunch together etc.
  • Multiplate locations
  • Different times of day
  • Community driven (not just by one person)
  • Increase publicity for the test community

What's next and how to set up for success:

Eric Proegler: Continuous Performance Testing

Sites go down because of arrival rate --> it's because of the sudden arrival of lots of users.

Common approach to load testing, gradually ramp up the numbers of users like it's a stairs approach. But this doesn't happen in real life.

I took a lot of photos during this presentation and I wasn't fast enough to write too many notes during this presentation.

Here are some of the slides that stood out to me:

Conor Fitzgerald: Benefits of exploring other industries and disciplines

Does the culture of a company affect the quality of the testing?

3 different company cultures that Conor experienced:
Controlled, conservative, checking
Energy, empathy, exploring
Autonomy, Anarchy, Automation (he initially thought it was the 3Es)

Discovered CDT, Principle 4 stood out to Conor:

  • Focus on preventing crashes
  • Checklists (e.g. pilot checklists before takeoff) --> checklists are also used in healthcare and construction
  • Pairing: Modern aircraft designed to be flown by 2< people because it's mentally taxinf to fly 
  • Blameless culture
  • A culture of questioning - people are encouraged to ask questions. *Korean Air story from Outliers by Malcolm Gladwell  


Wednesday, May 15, 2019

Testbash Brighton 2019 Conference Day Part I of II

It's been an intense month in a my personal life and even more intense (exciting!) months to come. So before I get too busy, let's turn my notes (that can only be read by me), into a blog post!

In early April this year, I had the honour of speaking at Testbash Essentials on the Wednesday. I also had the opportunity to attend the main Testbash Conference on the Friday and learn a lot from the speakers.

Here are my notes on what I learned in the first few talks I was able to attend (I had to leave a bit early to make my flight back home).

Lisi Hocke - Cross team Pair testing: Lessons of a testing traveller. 

"Have you ever asked yourself, are you good enough?"
Lisi didn't come from a technical background ---> she fell into testing. 
She was mostly the lone tester at a company and didn't have a mentor. But now at her current company there are more testers.

"I'm basically just managing my list, but not learning something."
She shared her struggled in learning new things and constantly having to edit a to-do list.

When she met Toyer, they helped each other get out of their comfort zones. 

Sunday, April 7, 2019

TestBash Brighton 2019: Morning Workshop on "Context Driven Coaching... There is no script."

In the morning I attended Martin Hynie's and Chris Blain's workshop on Context Driven Coaching... There is no script.

Here are my takeaways on what I learned in this workshop:

1. It's common for people to be promoted to managerial positions but not have the skills to coach people. 
Martin and Chris have coached managers, who are in charge of coaching people.
But people promoted to managerial positions aren't necessarily promoted to these positions because they have the skills to coach people.

2. If you want people to work together, you need to give them a chance to get to know each other, to build trust and to show some vulnerability
To kick off the workshop, Martin and Chris had us answer four questions to our table groups (roughly six people each table), so we can (presumably) achieve this goal.

3. The person you are coaching needs to trust you and to trust that you know what you're doing.

4. When you are coaching, there is a high probability that you need to explain why the skill (you are coaching) is important/needed

5. No major change has come from logic; it comes from energy

6. It's important to remember that everyone is trying (in their own mind) make the world a better place.
If things come up that stress you out, think about:

  • What can I control?
  • What can't I control? --> What can I influence?
7. The difference between Feedback, Coaching and Mentoring
Feedback - giving someone information about past behaviour, in the present, to affect future behaviour
Coaching - trying to transfer knowledge/skills
Mentoring - reflecting on a journey you've taken; sharing your experience with the mentee and how that experience can be related to the mentee's current experiences

8. Coaching vs. Training
Coaching - more likely to be individual
Training - more likely to be a larger audience

9. Coaching vs. Mentoring

Coaching Mentoring
"Transaction" - clear end/objective Reflecting on a journey - no clear objective
Timeframe - shorter timeframes; few months Timeframe - could be years
You can measure if it was successful Can't clearly measure success

10. Johanna Rothman's 4 step approach to coaching
  1. Verify help is wanted/needed
  2. Generate options - at least three
  3. Review options, let them choose
  4. Create an action plan (both the coach and the person being coached are responsible for this)

Thursday, February 7, 2019

Reflecting on leading a Testing Community of Practice Part II

For Part I go here

Devoting time and effort - when I have it

While I'm on my project my priority is as a tester in my scrum team. Therefore, I only devote time and effort when I have it. Some weeks I'm very busy in my team and barely give the CoP a second thought; other weeks I have more time to prepare a presentation or approach people to give presentations (or look up topics to see what people may find interesting to hear about from others).

I really appreciate the flexibility. While there is an expectation that something happens regularly, it seems that definition of "regularly" has become roughly once a month.

Merging the Test Automation COP and Testing COP

The lead of the Test Automation COP pinged me on slack a few weeks ago to see what I thought about merging the two. I said I was all for it (after all I saw Test Automation as a part of testing; a way to approach testing - and so did he).

We both posted messages in our slack channel saying we had this idea and wanted to hear  what people thought of it or if people were concerned/worried about this move. Based on the feedback, people seemed ok with it.

Now that we were merged, we updated the Confluence page (for those who read it that is. Are there page counters in Confluence? 💁).
I also sent out a survey asking how testing is going in their teams and what their biggest testing problems were and what they wanted to learn more about. I also asked them if they had automation set up in their team or if they wanted help in getting it set up. (I've found people don't always actively seek out help, but if you offer it - they may take you up on that offer).