Category Archives: learn testing

Remote agile teams.

Reading Time: 2 minutes


This post is about using narratives in software development. I presented this idea at Brighton TestBash 2017 Open Space session. At that session we had two groups, one group was collocated agile team that is using in person communication almost all the time, opposite group was me, remote tester that is using communication tools most of the time.

We agreed on the premise:

Any software system begins as a shared narrative about a problem and the people who come together around solving that problem.

But first team is for in person sharing of this narrative (less typing), and I am for sharing that narrative using communication tools (more typing).

I do not claim that second approach is better than first one, but I think that using it, team can successfully share software narrative, along with some advantages.

Here is my tool set:

  • Jira or Github + ZenHub
  • Google docs
  • Slack

In one context, Github + ZenHub contains 95% of all information that I need to do testing. Also, communication is going on using github issues application. Slack has 5% of information. Product owner, developer and tester are all remote. So I think this is one of the main reasons why is all information typed and stored.

Because of that, I can always use tools SEARCH feature, to refresh my memory about the software narrative. This includes my own notes. FUTURE ME will read notes from PRESENT AND PAST ME.

So application domain knowledge is not LOCKED in my HEAD. This is risk for me because I can be easily replaced with another tester, but great benefit for the team and product. And this is what counts.

In another context I use Jira instead of Github. Jira has 5% of information, and Slack has 95%. In Slack we have dedicated channels that must properly named and used. As tester, you must be sure that you are subscribed to all those channels in order not to miss software narrative. Slack search feature works like a charm so I can easily travel back to the software narrative past.

Disadvantage being remote is  lack of emotions. Or maybe it is not because one emotion triggers another emotion and then the real job is not done. Also, it is possible to detected some emotions from the text context.

Conclusion? I think that remote positions are new thing of software development and this is one of the reasons why they are repealed by the traditional collocation teams.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

UX issue in comic book

Reading Time: 1 minute


This post is about my other passion, comic books. I found one UX issue while enjoying Inkal comic book.

Observe following photo:

Inkal by Jodorowski and Moebius

On the right side, my user experience was broken. Can you identify the issue?

Everybody who reads from left to right, reads comic books in the same fashion. Actually, expects that comic book panels (frames or boxes) follows that flow. On the right side, that flow was broken. Note the arrows put by the editor. Those arrows are there to define panel flow that is different from the other parts of the comic book.

Why? My test idea is that editor needed to satisfy requirement that there must not be empty space on a page.

In first past, I automatically followed left-right panel direction, so I lost the flow. I needed to stop in order to comprehend story flow.

Which is better, empty panel or uninterrupted reader flow?

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

What I learned on conference Brighton TestBash 2017 day

Reading Time: 2 minutes


This post is about my takeaways from TestBash Brighton 2017 conference day.

The testers survival guide to joining a continuous delivery project by Amy Phillips.

Amy suggested us to read two books:

  • Project Phoenix
  • Continuous Delivery.

Tester must now continuous semantics: dead canary, walking skeleton and dark lunch are some of them. In first week tester should know his project role, project deadlines and establish code review procedure.

Another book was mentioned: What is trunk based development.

Be aware of all communication channels: recurring meetings, trello, slack, github, jira,…

Catalog information that you do not know (need answers), ask same question to different people, be alert on information changes. Think about support staff as one persona that is using your application. Read bug reports!

Assess your environment and note HOW THEY DIFFER!

When you think about bug that is not resolved, think about a cost if this bug would be shipped in deploy.

Read code if you can. Even better, ask developer to explain to you part of his code. Doing that, maybe some issues would pop up!

AI language and the net by prof. Harry Collins

Oh, this was a goodie!

We have two elements for computers: the clockwork and computers as social prostheses. Every computer IS DOING LESS THAT REAL STUFF. The goal is that this become equal!

Some programs have passed the Turing test just because it was not  hard enough.

We have tacit and explicit knowledge. Every knowledge has author (producer) and critic (consumer). Objective experts should be somewhere in the middle.

There is no deep learning, there is VAST amount of data to which computes have access and they represent social machines. Complete knowledge has not yet been achieved.

Testers have important role in creating AI.

Rediscovering Test Strategy by Mike Talks

On Thursday meetup, I played with Mike and his friends Monty Python’s Flux card game (at that time I did know that this was Mike). This was my first play of Flux, before that I just read the instructions. I learned that there can be several RULE cards at the table, the only rule is that RULE cards must no be exclude (logically) each other.

Testers usually create their test plan based on previous work (experience). Mike noted that strategy is different than plan.

Testers have a lot of test ideas. We should capture them (e.g. post it), cluster them and discard ones not relevant for the project scope. With all test ideas in front of you, it is easier to find gaps in your test strategy.

Mike created Oblique Testing cards that can help you with your test ideas. He also mentioned Ministry of Testing TestSphere cards.

Testers usually have test ideas related with keyboard and mouse because those inputs are most available!

How to turn 403 into 202 at the API party by Gwen Diagram and Ash Winter

I learned about BINMEN acronym that is useful for API testing:







Always put less logic in User Interface!

Building customer happiness with a tiny team by Paul Campbell

Following technology stack enables them to do that with tiny team:

  • AWS
  • Stripe for payments
  • aurora database
  • happroxy
  • webmon
  • neustar/
  • opsworks
  • intercom
  • pivotal tracker
  • slack
Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

What I learned on workshop Brighton Testbash 2017 day

Reading Time: 3 minutes


This post is about my takeaways from workshop Brighton 2017 day. I attended Alessandra Moreira’s Agile Exploration and Michael Bolton’s Critical Thinking. Post is not an easy read.

First we had opening keynote by Kevin Harris Kick-Ass-Kick offs! It was about project kick off meeting. Here are some points that sticked with me:

  • freeze requirements
  • be prepared, do your reading
  • small is beautiful (stories context)
  • reveal your testing strategy (I am going to test like that) in order to get feedback
  • test on developer machine early
  • other stuff (performance, security)
  • definition of done
  • create your mnemonics

In Q&A session, I applied advice: ASK QUESTIONS! I asked audience: Have you ever been in situation were requirements were frozen in Kick off meeting?

Kevin answer was that requirement change requires new kick off meeting, but what about scenario when customer frequently changes requirements? Does that increases frequency of kick off meetings, or do we wait for “customer cool” off time?

Workshop: Agile exploration by Alessandra Moreira

I have read (and practice) a lot about exploration testing, so my goal with this workshop was reality check about the topic. Here are my takeaways.

  • We use exploratory testing to find additional problems. For me this is just extension to it, one way of using it.
  • Software testing is to provide many types of information about product to interesting parties.
  • Software testers bring to project their specific MINDSET.
  • How to do exploratory testing: heuristics, critical thinking, questioning
  • Critical thinking is thinking about what we think.
  • Weinberg rule of 3, think of three different ways to do something
  • Six honest man, 5 W questions + how.
  • James Bach session test management
  • tool for session test management?
  • Michael Bolton created spread sheet for session test management automatic report creation

We created groups of three to implement session test management on Instapaper. My group decided to test search feature and one group member, experienced with Jira Capture, made notes for our session. In cooperation we made great notes, and found some interesting behavior in advanced search feature.

 Workshop: Critical thinking for testers with Michael Bolton

Here are my takeaways:

  • Calculator test assignment. Fell in trap again, despite the fact that I have done it on Rapid software testing course
  • Testers help to remove risks that jeopardize quality
  • assumptions => state them => their become your proxy for questions => do not go too deep
  • We often state that our ASSUMPTION is TRUE but with NO EVIDENCE
  • From assumption (premise), using reasoning to real cause
  • assumptions: reckless (high risk), risky (risk is acceptable), safe (no risk), required
  • assumption is more dangerous when it is hard to support it, there are too many factors to support it and has high impact
  • Reading: Validity and reliability in quantitative studies
  • Assumption can be: foundational, unlikely, blind, controversial, impolitic, volatile, unsustainable, premature, narcotic, latent
  • assignment: bat costs 1$ more than ball. Together they cost 1.10$. How much ball cost?
  • Reading: Thinking fast and slow
  • Keep your eyes on the ball and the game
  • When you are too focus, you will miss something else
  • Alternate from wide to narrow view
  • Experience is the best teacher
  • Learn from every bug
  • Reading: Nassim Taleb: Black swan
  • Some bugs are obvious
  • Justify why you think this is a bug (unconscious factors, memory habit)
  • system 1 (reflex, fast, loser) and system 2 (reflection, slow, surer)
  • Three stories: project, testing, product
  • Cognitive bias, help us to survive, but not help us with bugs (illusion, miss, quick decision, memory errors)
  • What is an integer?
  • Heuristic is way to solve a problem that could fail in that mission
  • As tester, you must give SYSTEM 2 time to WAKE UP!
  • I do not understand, I understand but it is not true, what is whole story, does it matter?
  • Conversation flow: intake => meaning => significance => response
  • Builder has focused mindset and tester has defocused mindset
  • Reading: Asking the right question. A guide to critical thinking.
  • A vs THE
  • And, unless, also, so far, not yet (be careful when you here those!)
  • Reading: How to not be wrong
Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

What I learned on pre TestBash2017 Brighton meetup

Reading Time: 2 minutes


Next series of post is about my takeaways from Brighton TestBash2017 conference. First was pre TestBash meetup.

That meetup was day before workshop day. I came late, and everybody was already in the game mood. I noticed that a lot of games were played.

I joined to table with following setup. One card was on the table, three testers were asking questions, and one was answering them. Game was Dark Stories. Each card represents a puzzle in story form that is written on one side, answer is on other side. One person reads puzzle at loud and keeps answer for himself. Others try to guess the answer.

My takeaway. This is excellent game for practicing critical thinking. Answer is not obvious, so you need to do focus/defocus thinking about the puzzle. You need to have some common general knowledge in order to solve some puzzles. I played with excellent testers, and by listening their questions, I learned about their approach to puzzle problem. Pairing of testers, in this case testers tetrads, is great way to learn, test and solve a puzzle!

Second game that I observed was Otrio.  Think of it as tic-tac-toe with more dimensions. Triplet can be made with same size or different size in ascending or descending order. Each element has three sizes.

Third game was Cockroach Salad. Pace of this game is very fast. it trains your brain to think fast, as rule of games could change. You have four card type: Pepper, tomato, salad and cauliflower. For each card type, there is taboo card. You play a card and say vegetables that is on the card. But:

  • If your vegetable matches the previously played vegetable, the player must lie.
  • If your vegetable matches the claim made by the previous player (perhaps because that player lied), then the player must lie.
  • If you play a taboo card, he shouts “Cockroach!” and the next player starts a new pile next to the first one so that the taboo card remains visible.
  • If your vegetable matches a visible taboo card, he must lie.

If you can not lie and you are supposed to (nightmare of every politician!), you must pick all cards from the table. First player without cards wins.

I was in situations when I was testing application that had feature rules similar to this game. How about you?

That was it. No beer party because I need a good night sleep for workshop day. I walked back to my bed and breakfast place despite the fact that weather had changed three times since I arrived to Brighton.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

It is TestBash Brighton time!

Reading Time: 3 minutes


This is my personal cheat sheet for TestBash Brighton 2017 testing gathering.

Based on my previous conference experiences, I realized that I need a one stop shop reminder for conference activities. I will print out this blog post. Here it goes.

  1. Wednesday Pre-TestBash Meetup, 29-30 Surrey street, Brighton, BN1 3PA

Starts at 7.00PM but it does not designates ending time. I can be there at 9.30PM so I will need to check meetup page when I arrive.

My Google maps route:

Pool Valley Coach Station, Brighton BN1 1NJ, UK => 52 Regency Square, Brighton BN1 2FF, UK => 29 Surrey St, Brighton BN1 3PB, UK

2. Thursday workshop day

a. Morning

Agile Exploration Workshop::Alessandra Moreira

Teams practicing any flavor of agile development have different views on the role of a tester. As a test practitioner and hiring manager, I found one of the challenges we face as in the Software Test industry is that although Exploratory Testing makes its way to many resumes and conversations, not many people know what it really is, are unsure how to perform it in an agile context, and are unaware of how to execute it skillfully.

In this hands-on workshop, we will discuss what exploratory testing is by definition and will put it in practice by testing real software. We will examine how it is a perfect fit in an agile environment, and how to master the skills necessary to become an expert exploratory tester – in any team.

Hope for takeaway

My current testing project has zero documentation and by documentation I do not mean word document. I mean documentation that can be get by using various tools. For example, my current issue is that I need to test an api. In Ruby on rails project, I would use

rake routes

but there is no comparable command in client framework. I will try with security scanners, in order to find all routes with brute force. I hope that I will get some practice and ideas how to solve similar issues. In this workshop description I am confused with Agile Exploration title that switches to Exploratory Testing. I will definitely need clarification on that matter.

b. Afternoon

SOLD OUT – Critical Thinking for Testers, Programmers, and Managers::Michael Bolton

Critical thinking is the kind of thinking that specifically looks for problems and mistakes. Regular people don’t do a lot of it. However, if you want to be a great tester, you need to be a great critical thinker. The good news is that critical thinking is not just innate intelligence or a talent <— > it’s a learnable and improvable skill. Michael Bolton shares the specific techniques and heuristics of critical thinking and presents realistic testing puzzles that help you practice and increase your thinking skills.

Rapid critical thinking begins with four questions—Huh? Really? And? So?—that kickstart your brain and help you to analyze plans, specifications, risks, causes, effects, bugs, and anything else that puzzles you. Join Michael for this interactive, hands-on session and practice your critical thinking skills.

Hope for takeaway

To improve my critical thinking skills. To be able to develop my own testing puzzles.

3. TestBash Meetup – sponsored by QASymphony – 6PM conference location

3. Friday Pre-TestBash Run, 7AM, Palace pier

There is no Palace Pier in Google maps so I will need to check the actual location during Thursday. It is not clear what is run ending point, I hope that it is Conference location. My plan is to walk at pace of 4km/hour.

4. Friday conference day

Nine 30 minutes sessions will probably drain my intellectual energy by I plan to stay focus for those 270 minutes. No alcohol on Wednesday night and a minimum of seven hour of deep sleep. My accommodation heuristic was to pick the cheapest Booking offer. In Birmingham that was bad decision because I got glass braking noise wakeup at 4 AM. Hope Brighton does not do so heavy bottle recycling.

99 second talks

This how you need to do it:

Think of something to talk about
Ensure you are in a quiet location
Grab your mobile phone in landscape mode
Press record
Talk or do something for 99 seconds
Stop recording
Email the file or a place to download it to Rosie –

I am not sure how this will work. Shall we watch already recorded talks, or talks will be filmed on stage?

5. Hindsight TestBash Meetup 6PM, Conference location

Game meetup. Eric Davis wrote a great post about games for software testers: Using Games to Make You a Better Tester. I am bringing Batman Fluxx and Game of Set. I can also present Mastermind that requires only pen, paper and somebody to play with.

6. Saturday Open Space event by Richard Bradshaw 9.00AM

I always learn a lot at open space events. In Croatia we have annual Testival open space conference, I was at TestRetreat 2016, organized by Matt Heusser. Why this works? Because you are in the same place with smart testers and you can discuss whatever you like. By that, you learn a lot!

That it is, full steam pack of learning opportunities.  My tool is notebook with four pencils (red, green, blue and black).

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Randomize your test data

Reading Time: 1 minute


This post is about one important testing method that should be automated, test data randomization.

You should randomize test data in automated script because this will make your automated test runs slightly more user likely because application that you are testing will be used by different users that will use different data inputs.

Also, it is very usual that application business rules are data driven. Based on data values, feature behaves differently. Using test data randomization, you can discover and test hidden business rules.

Here is my real example. I randomized account number, and soon realized that feature behaves non deterministic. One attribute output values were different from run to run. I could not define the rule.

I asked developers in dedicated slack channel about this behavior, and they explained that this is client business rule. Based on account first digit, created record was labeled differently (output attribute value). Of course, that business rule was not documented in any form.

In my ruby testing scripts, I use Faker gem. Happy test data randomization!


Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Scrum testing heuristic: Is feature usable?

Reading Time: 1 minute


This post will describe how I test in project that uses scrum. Tool is Jira and context is early development phase.

We have in JIRA workflow QA phase.

Frontend has code reviews and developers are able to test (there is no automation) what they code using browser.

Here is how I test in described context.

Feature is usable when user can do main flow described in jira card, for example, create business object.

I use browser and Chrome developer tools. Cards have some story description, so I ask for clarification in card comment section. Also, I observe pull request (angular framework) to see which modules changed. I am looking for feature side effects,  when pull request contains changes not directly related to the card.

I approve card when feature is usable. Remember that context is early development phase, and scrum is iterative process, so there is no point to stop the feature if it is usable. For found issues or missing features, I create new card and bug or task, and I connect those two cards.

In BBST foundations lecture 2, you can learn how your testing differs depending on your context.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Web page cache heuristic that failed

Reading Time: 1 minute


In this post I will describe my heuristic for web page cache testing that failed and why it failed.

Web page cache is mechanism that stores parts of web page that does not change a lot in browser local storage. Hard part is to figure which part of page is not changing very often. A lot of scientific effort have been put in this problem.

I got a Jira card that clearly stated a story with cache usage.

During the creation of business object, cache all referenced data so when user will edit that object, all referenced data is already available.

I did exploratory test around this story, using my brain, eyes, ears and fingers. There were two paths to feature create business object. First path worked as described in user story, but second path did not. When I opened the create business object feature, all data had already been cached.

My first heuristic was that this is an issue. But after I explored the pull request connected with this card and discovered that all code changes were in one place I realized that my cache heuristic failed. Developers are using framework that helps them to write DRY code.

As create business feature component was reusable, first path to that feature already filled cache with data.

If you are in doubt how to enhance your testing craft, BBST is excellent starting point.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

How to replace curl data-binary value to form-data upload parameters

Reading Time: 1 minute


In this post I will explain how master Joda visited me in my dream and asked me important question about one of my previous blog posts: How to measure upload speed of web application upload form [link]. The post provided right information about curl parameter that enables you to see upload speed. But curl example for upload file is wrong!

I found that is wrong when I tried to measure upload speed in real application. And realized that file is not uploaded in application. By observing the copy pasted curl, I noticed that there was not Content-Length header. Bingo, lets create Chrome developer tools issue ticket[link].

Please read comments, because I learned a lot about curl upload file feature. Google developers who answered my ticket did not just dismissed my wrong curl upload file heuristic, they took extra step and educated me!

So, in order to use curl upload file feature, you need to transform something like this:

--data-binary $'------WebKitFormBoundaryoeJQRnHeojsIBayU\r\nContent-Disposition: form-data; name="fileType"\r\n\r\n5\r\n------WebKitFormBoundaryoeJQRnHeojsIBayU\r\nContent-Disposition: form-data; name="file"; filename="elixir-websetup.exe"\r\nContent-Type: application/x-msdownload\r\n\r\n\r\n------WebKitFormBoundaryoeJQRnHeojsIBayU--\r\n'

into this:

-F file=@elixir-websetup.exe -F fileType=5

You can now data-binary parameter and its value from curl.

It is important to have check mechanism for upload file. Use your application features to check is file really uploaded. curl can also help by observing application returned value.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather