<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>blank</title>
    <description>A tester&apos;s blog.
</description>
    <link>https://philwong.co.uk/</link>
    <atom:link href="https://philwong.co.uk/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 27 Mar 2024 21:31:56 +0000</pubDate>
    <lastBuildDate>Wed, 27 Mar 2024 21:31:56 +0000</lastBuildDate>
    <generator>Jekyll v4.3.3</generator>
    
      <item>
        <title>LinkedIn Text Overlap Fail</title>
        <description>&lt;p&gt;I was just browsin’ LinkedIn and serendipitously found that text seems to overlap on a specific page.&lt;/p&gt;

&lt;h1 id=&quot;environment&quot;&gt;Environment&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;Browser: Firefox 113.0.1 (64-bit)&lt;/li&gt;
  &lt;li&gt;OS: Windows 10&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;steps-to-reproduce&quot;&gt;Steps to reproduce&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;Log in to your LinkedIn account.&lt;/li&gt;
  &lt;li&gt;Set the language to Chinese (Traditional).&lt;/li&gt;
  &lt;li&gt;Visit a link that goes to a company page like https://www.linkedin.com/company/the-storygraph-limited/.&lt;/li&gt;
  &lt;li&gt;Use (live) eyeballs to observe and assess the side boxes on the right (Pages people also viewed).&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;actual-results&quot;&gt;Actual Results&lt;/h1&gt;

&lt;p&gt;Oops, seems like the ‘Industry’ text on related pages seems to be overlapping.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230520-linkedin-zhtw-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230520-linkedin-zhtw-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230520-linkedin-zhtw-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230520-linkedin-zhtw.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;Note: Thought I’d check mobile view and it seems to be the same there.&lt;/p&gt;

&lt;h1 id=&quot;expected-results&quot;&gt;Expected Results&lt;/h1&gt;

&lt;p&gt;This is inconsistent with the behaviour when the language is set to English (UK). Nice and clean here.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230520-linkedin-enuk-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230520-linkedin-enuk-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230520-linkedin-enuk-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230520-linkedin-enuk.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;h1 id=&quot;impact-on-other-areas&quot;&gt;Impact on other areas&lt;/h1&gt;

&lt;p&gt;Ideas to explore, I wonder what other pages are affected? Languages?&lt;/p&gt;

&lt;h1 id=&quot;workarounds&quot;&gt;Workarounds&lt;/h1&gt;

&lt;p&gt;None identified.&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Fri, 19 May 2023 11:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2023/linkedin-text-overlap/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2023/linkedin-text-overlap/</guid>
        
        
        <category>bug</category>
        
      </item>
    
      <item>
        <title>Stumbled upon a JIRA bug today.</title>
        <description>&lt;p&gt;The bug summary is ‘(Comments, Text Mode) ‘Add’ button remains disabled after pasting text’. I stumbled upon this when simply copying an pasting text into the comments box. I’ve reported this to JIRA as a low priority. This kinda relates to an existing bug report &lt;a href=&quot;https://jira.atlassian.com/browse/JRASERVER-63753&quot;&gt;JRASERVER-63753&lt;/a&gt; where the add button is greyed out visually but still works.&lt;/p&gt;

&lt;h1 id=&quot;environment&quot;&gt;Environment&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;JIRA Server Version: v9.6.0&lt;/li&gt;
  &lt;li&gt;This bug may relate to TinyMCE (5.10.3). I grabbed the version number from the About section of JIRA.&lt;/li&gt;
  &lt;li&gt;Browser: Firefox 113.0.1 (64-bit)&lt;/li&gt;
  &lt;li&gt;OS and version: macOS Ventura 13.1&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;steps-to-reproduce&quot;&gt;Steps to reproduce&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;As a prerequisite, log in with a user who has privileges to post comments.&lt;/li&gt;
  &lt;li&gt;Copy any string of text using CMD + C.&lt;/li&gt;
  &lt;li&gt;Go to any existing JIRA ticket and open the comment editor.&lt;/li&gt;
  &lt;li&gt;Switch from ‘Visual’ mode to ‘Text’ mode.&lt;/li&gt;
  &lt;li&gt;Paste the text into the comment box using CMD + V.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;actual-results&quot;&gt;Actual Results&lt;/h1&gt;

&lt;p&gt;The ‘Add’ button remains disabled and greyed out, this is confusing to the user as they have inserted text inside the comment box.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-01-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-01-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-01-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/JIRA-Comment-Bug-01.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;Here is a &lt;a href=&quot;/assets/img/20230517-JIRA-Comment-Bug.gif&quot;&gt;gif of the bug&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;expected-results&quot;&gt;Expected Results&lt;/h1&gt;

&lt;p&gt;This is inconsistent with the behaviour in Visual mode. If you repeat the same steps in Visual mode (skipping step 4 of course), you will see that the ‘Add’ button changes to enabled state.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-02-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-02-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-02-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/JIRA-Comment-Bug-02.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;h1 id=&quot;impact-on-other-areas&quot;&gt;Impact on other areas&lt;/h1&gt;

&lt;p&gt;This may or may not impact other views on JIRA beyond comments, I lack JIRA knowledge to determine all the places it could affect.&lt;/p&gt;

&lt;h1 id=&quot;workarounds&quot;&gt;Workarounds&lt;/h1&gt;

&lt;p&gt;You can easily get around this by manually typing something on the keyboard. Once you do, the ‘Add’ button is enabled once again.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-03-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-03-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/JIRA-Comment-Bug-03-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/JIRA-Comment-Bug-03.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Wed, 17 May 2023 11:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2023/jira-comment-bug/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2023/jira-comment-bug/</guid>
        
        
        <category>bug</category>
        
      </item>
    
      <item>
        <title>I clicked a button and the website lost my previous position.</title>
        <description>&lt;p&gt;Today I discovered a course called ‘Bug Advocacy and Beyond’ by Rahul Parwal. He’s well known in the testing industry, and judged on one of my previous hackathon projects. I’ve heard about the test tribe community, but I didn’t know they did courses. Anyway, today I was browsing that page and noticed something odd with the user experience. I’ve reported this to them through the contact form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps to reproduce&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1 - Go to the &lt;a href=&quot;https://www.thetesttribe.com/courses/bug-advocacy-course/&quot;&gt;Bug Advocacy and Beyond course&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;2 - Scroll down to Course Content, click ‘Expand All’.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230512-testtribe05-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230512-testtribe05-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230512-testtribe05-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230512-testtribe05.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;3 - I noticed there is more than 8 modules, so I clicked the next arrow to reach page 2.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/20230512-testtribe02.png&quot; alt=&quot;Image of pagination 1 of 1&quot; width=&quot;30%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/assets/img/20230512-testtribe01.gif&quot;&gt;GIF&lt;/a&gt; of the whole journey, enjoy the smooth viewing experience. Feel free to read and watch at the same time, split screen style.&lt;/p&gt;

&lt;p&gt;1 - The page is now displaying the footer of the page. I have to scroll back up to go back to where I was. I believe there is a proper accessibility guideline for this, but I am not sure what it is.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230512-testtribe04-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230512-testtribe04-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230512-testtribe04-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230512-testtribe04.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;2 - I also noticed that the modules were not expanded on 2 of 2. I have to manually click to expand them again. From there, if I click to go back to 1 of 2, I noticed again the modules are collapsed. This means the page is resetting the expand/collapse state each time the user changes page.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230512-testtribe03-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230512-testtribe03-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230512-testtribe03-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230512-testtribe03.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;You can call this 2 bugs in 1:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;One for the webpage not ‘sticking’ the view to Course Content.&lt;/li&gt;
  &lt;li&gt;One for not ‘remembering’ the Expand All state for all pages.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bonus exploratory bug: If you start by having some modules already expanded, some already collapsed, the Expand All button does not behave as expected. What it really does is ‘Reverse the expand/collapse’ state of each Module element’. Collapse All does work though in this scenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oracle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is not consistent with the Users’ Desires oracle (see &lt;a href=&quot;https://developsense.com/blog/2012/07/few-hiccupps&quot;&gt;FEW HICCUPPS article&lt;/a&gt; from developsense.com).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Users’ Desires. We believe that the system should be consistent with ideas about what reasonable users might want.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A reasonable user (me) would prefer not to do extra scrolls or clicks to get the info they want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;macOS Ventura 13.1 (22C65)&lt;/li&gt;
  &lt;li&gt;Firefox 112.0.2 (64-bit)&lt;/li&gt;
  &lt;li&gt;Tools: LICEcap to capture gif at 8 fps.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Fri, 12 May 2023 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2023/testtribebug01/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2023/testtribebug01/</guid>
        
        
        <category>bug</category>
        
      </item>
    
      <item>
        <title>Mozilla Pocket - more filters on mobile vs desktop?</title>
        <description>&lt;p&gt;Today I spent time going through my RSS feeds on Feedly. Staring at the forest of unread articles, I realized I needed an easy way to sort through and compile a ‘Read later’ list. I decided to sign up for Mozilla’s Pocket and integrated it with Feedly. When I compared the article filters between the web version and the mobile app, I noticed that you get more with the mobile version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web/Desktop version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You only get ‘Oldest first’ or ‘Newest first’.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/Pocket_Desktop-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/Pocket_Desktop-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/Pocket_Desktop-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/Pocket_Desktop.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Mobile app&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Oh wow, you get filter options as well as sort options!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/Pocket_Mobile.jpg&quot; alt=&quot;Image of sort/filter options in mobile Pocket app&quot; width=&quot;60%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test oracle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is not consistent with comparable products (see &lt;a href=&quot;https://developsense.com/blog/2012/07/few-hiccupps&quot;&gt;FEW HICCUPPS article&lt;/a&gt; from developsense.com):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Comparable Products. We expect the system to be consistent with systems that are in some way comparable. This includes other products in the same product line; competitive products, services, or systems; or products that are not in the same category but which process the same data; or alternative processes or algorithms.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wonder what other features might not be consistent between the two platforms?&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Sun, 26 Feb 2023 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2023/pocket/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2023/pocket/</guid>
        
        
        <category>bug</category>
        
      </item>
    
      <item>
        <title>Medium.com calls it &apos;I OS&apos;, not &apos;iOS&apos;</title>
        <description>&lt;p&gt;I was reading a blog post when my eyes looked at related topics.&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/20230202-mediumbug-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/20230202-mediumbug-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/20230202-mediumbug-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/20230202-mediumbug.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Test oracle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is not consistent with the Users’ Desires oracle (see &lt;a href=&quot;https://developsense.com/blog/2012/07/few-hiccupps&quot;&gt;FEW HICCUPPS article&lt;/a&gt; from developsense.com). A reasonable user would want to see that the spelling of ‘I OS’ match the widely accepted ‘iOS’:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Users’ Desires. We believe that the system should be consistent with ideas about what reasonable users might want.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wonder what other topics tags they have not reviewed?&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Thu, 02 Feb 2023 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2023/mediumtags/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2023/mediumtags/</guid>
        
        
        <category>bug</category>
        
      </item>
    
      <item>
        <title>My first ever Advent of Code!</title>
        <description>
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Mon, 05 Dec 2022 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2022/adventofcode/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2022/adventofcode/</guid>
        
        
        <category>python</category>
        
        <category>advent-of-code</category>
        
      </item>
    
      <item>
        <title>Test Tours 03 - Configuration discombobulation.</title>
        <description>&lt;p&gt;This is the last post in a three part series. In the previous part, I went through the &lt;a href=&quot;https://philwong.co.uk/blog/2022/datatour/&quot;&gt;data tour&lt;/a&gt;, this blog focuses on the configuration tour. A tour is a method to explore different aspects of an application. In the &lt;a href=&quot;https://www.fourhourtester.net/exercises/Modeling.html&quot;&gt;four hour tester&lt;/a&gt;, there are 11 tours and the acronym mentioned is FCC CUTS VIDS.&lt;/p&gt;

&lt;h1 id=&quot;the-exercise&quot;&gt;The exercise&lt;/h1&gt;

&lt;p&gt;To apply the configuration tour to Google Calendar. Take 5 minutes.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Configuration tour - Attempt to find all the ways you can change settings in the product in a way that the application retains those settings.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the approach, I did the same as last time then did the write-up afterwards.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My approach is simply to engage with the product, recording myself in the process. The tools I used for this experiment are:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Windows countdown timer to limit myself for 5 mins per tour.&lt;/li&gt;
    &lt;li&gt;OBS to record myself doing the tour on Google Calendar. I narrated my thoughts out loud I went through this exercise.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;my-findings&quot;&gt;My findings&lt;/h1&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/gcal_settings-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/gcal_settings-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/gcal_settings-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/gcal_settings.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;Config is always a fun thing to test. It multiplies the combinations and permutations of testing required. It’s interesting how the config tour is defined as ‘Attempt to find all the ways you can change settings…’. It does not say ‘Go to the settings area of X app’, this is my assumption that all the settings are contained there.&lt;/p&gt;

&lt;p&gt;For the sake of simplicity though, I am going to focus there since it’s a five minute tour. In real life, there may be less obvious configurations that sit outside of the ‘Settings’ section. It could even be hardcoded. Watch out! In Google calendar, there are lots of settings, but I focused on ‘General’ for the five minute tour. The main things I found were:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Language
Country
Date Format
Time Format
Time zone
	Primary time zone
	Secondary time zone
Event Settings
	Default duration
	Speedy meetings (end 30-min meetings 5 mins early and longer meetings 10 mins early)
	Default guest permissions
	Add invitations to my calendar
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;evaluation&quot;&gt;Evaluation&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;Write down 3 things you would want to test for this tour.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Language:
    &lt;ul&gt;
      &lt;li&gt;how widespread is this change? Does it affect everything including all UI elements, modals and error messages?&lt;/li&gt;
      &lt;li&gt;How are languages maintained for any new features that are developed?&lt;/li&gt;
      &lt;li&gt;What if you have something like the specific language setting in Android? Which setting takes precedence?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Country:
    &lt;ul&gt;
      &lt;li&gt;What logic in Google calendar is tied to the Country field?&lt;/li&gt;
      &lt;li&gt;Is this shown to event guests where you’re based?&lt;/li&gt;
      &lt;li&gt;Is it used to suggest public calendar events? This can’t be to do with timezone because there is a separate setting for it further down.&lt;/li&gt;
      &lt;li&gt;Perhaps it is used to filter the available date and time formats&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Date and time format: Again, how widespread is this change? What forms and areas does date/time format matter? Are there areas where date/time format is fixed?&lt;/li&gt;
  &lt;li&gt;Time zones: how does this work with daylight savings? For example in the UK, we switch between BST and GMT. Does Google recognise this?&lt;/li&gt;
  &lt;li&gt;Speedy meetings: This seems to be an interesting feature, does it change all existing meetings to be 5 or 10 minutes shorter? How are speedy meetings displayed on the calendar? What if some people have speedy meetings on and other people off?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oops, I kept typing even though I exceeded ‘three things’. Well, there you go!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;How did this tour help you to come up with different test ideas?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It helps me to consider…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;the scope of a particular config change.&lt;/li&gt;
  &lt;li&gt;how config settings interact with each other.&lt;/li&gt;
  &lt;li&gt;how config settings impacts all user features.&lt;/li&gt;
  &lt;li&gt;the gaps in my knowledge with the product.&lt;/li&gt;
  &lt;li&gt;how config settings perform under different OS environments.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Tue, 22 Nov 2022 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2022/configtour/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2022/configtour/</guid>
        
        
        <category>tour</category>
        
        <category>four-hour-tester</category>
        
      </item>
    
      <item>
        <title>Test Tours 02 - Going on a data tour.</title>
        <description>&lt;p&gt;This post is the second in a three part series. In the previous part I went through the &lt;a href=&quot;https://philwong.co.uk/blog/2022/usertour/&quot;&gt;user tour&lt;/a&gt;, this blog focuses on the data tour. A tour is a method to explore different aspects of an application. In the &lt;a href=&quot;https://www.fourhourtester.net/exercises/Modeling.html&quot;&gt;four hour tester&lt;/a&gt;, there are 11 tours and the acronym mentioned is FCC CUTS VIDS.&lt;/p&gt;

&lt;h1 id=&quot;the-exercise&quot;&gt;The exercise&lt;/h1&gt;

&lt;p&gt;To apply the data tour to Google Calendar. Take 5 minutes.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Data tour - Identify the major data elements of the application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I used the same approach as last time.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My approach is simply to engage with the product, recording myself in the process. The tools I used for this experiment are:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Windows countdown timer to limit myself for 5 mins per tour.&lt;/li&gt;
    &lt;li&gt;OBS to record myself doing the tour on Google Calendar. I narrated my thoughts out loud I went through this exercise.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;my-findings&quot;&gt;My findings&lt;/h1&gt;

&lt;p&gt;Here is a product coverage outline that I made when doing a data tour:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;EVENT
Event Name
Start time
	day
	month
	year
End time
	day
	month
	year
Time zone
All day
	Yes
	No (default)
Frequency
	Doesn&apos;t repeat
	Daily
	Weekly on Monday
	Custom
		Repeat every...
		Repeat on (weekday)
		Never end
		Ends on
		Ends after (x occurrences)
	etc.
Guests
	First name
	Surname
	Email
	Optional?
Rooms
Location
Add video conferencing
Notification
	Add notification
	Delete notification
Label
Visibility
	Free
	Busy
Notes
Going?
	Yes
	No
	Pending (unanswered events)
	Maybe
Delete? # Where do deleted events go? Does GCal keep a record of them?

CREATE
Event
Focus time
Out of office
Working location
Task
Appointment Schedule
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This felt boring, I just listed obvious elements of Google Calendar that I’m familiar with. I could probably do this without even touring. You can see this is long and in fact, I don’t think all of the elements are considered ‘major’. Did I go into too much detail? Maybe I did because a ‘tour’ suggests a high level view of things, not staring into the sand.&lt;/p&gt;

&lt;h1 id=&quot;evaluation&quot;&gt;Evaluation&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;Write down 3 things you would want to test for this tour.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The complexity with calendar events will be in the interaction between dates, frequencies and timezones. When we are talking about ‘major’ data elements, my mind automatically zooms in to these points on the list.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Start time&lt;/li&gt;
  &lt;li&gt;End time&lt;/li&gt;
  &lt;li&gt;Time zone&lt;/li&gt;
  &lt;li&gt;All day&lt;/li&gt;
  &lt;li&gt;Frequency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s hard to choose 3 things but based on combinatorial testing of the above, I would start with these questions:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Does the calendar event show and terminate as expected for the owner?&lt;/li&gt;
  &lt;li&gt;Does the calendar event show and terminate as expected for the guests?&lt;/li&gt;
  &lt;li&gt;Does the calendar event show and terminate as expected on create and edit?&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
  &lt;p&gt;How did this tour help you to come up with different test ideas?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The data tour shines a light on the different data used and how they potentially interact. This prepares you to consider the wealth of data that your app needs to address. In doing so, you might uncover edge cases or scenarios.&lt;/p&gt;

&lt;p&gt;It’s not only the data that you are looking at, but also the format of the data. If I think through each area that I listed above, certain questions float in my mind:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Different countries have different ways to display date/time.
    &lt;ul&gt;
      &lt;li&gt;How do they show on Google calendar?&lt;/li&gt;
      &lt;li&gt;Are users able to enter date/time in the format they’re familiar with? (e.g. dd/MM/YY vs MM/dd/YY)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;What logic is used when creating, editing and viewing calendar events across different timezones? Imagine a global team of remote workers, would the calendar events work as expected for them?&lt;/li&gt;
  &lt;li&gt;What if you enter data in a format that the form does not expect?&lt;/li&gt;
  &lt;li&gt;How is the data stored on processed? Is the format and data transformed in any way through this process?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe I missed the point of this exercise. Would it be more organized if I listed the points like this? Maybe this fits the bill better?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Date/Time - Start date, start time, end date, end time, includes all day?&lt;/li&gt;
  &lt;li&gt;Timezone - Is it on a calendar level, user account level?&lt;/li&gt;
  &lt;li&gt;Frequency - How is this stored and processed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I did learn is, you might also need to consider what data you don’t see. For example, when you delete an event, does that mean the calendar event is forever poof? Or is it stored in the database somewhere still?&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Mon, 21 Nov 2022 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2022/datatour/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2022/datatour/</guid>
        
        
        <category>tour</category>
        
        <category>four-hour-tester</category>
        
      </item>
    
      <item>
        <title>Hard to reproduce bug closed. The End?</title>
        <description>&lt;p&gt;Projects close bugs for many reasons. Maybe it’s hard to reproduce. Maybe it’s a ‘Will not fix’. This is the end, really?&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/closed-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/closed-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/closed-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/closed.jpg&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;p&gt;In the testers world, it’s in our nature to report problems:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“No it doesn’t work when I do this”&lt;/li&gt;
  &lt;li&gt;“No it doesn’t work when I test feature A and feature B together”&lt;/li&gt;
  &lt;li&gt;“No, the loading spinner just keeps going”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We say the word ‘No’ more than ‘Yes’. Did you know there is a “Yes, and…”, a rule in improvisational comedy? Here is how it is defined on &lt;a href=&quot;https://en.wikipedia.org/wiki/Yes,_and…&quot;&gt;wiki&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;…a rule-of-thumb in improvisational comedy that suggests that an improviser should accept what another improviser has stated (“yes”) and then expand on that line of thinking (“and”).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let me tell you the wrong way to use the “Yes and…”.&lt;/p&gt;

&lt;h1 id=&quot;bad-customer-support&quot;&gt;Bad customer support&lt;/h1&gt;
&lt;p&gt;Here is a recent experience for an online account registration:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Administrator: Thank you for registering with us. To proceed with the process, please review the attached pdf and install the relevant software. You can also click on the link here for the same document.&lt;/li&gt;
  &lt;li&gt;Email: No pdf attached. The link goes to a private Google Doc.&lt;/li&gt;
  &lt;li&gt;Me: (Worded in a nice way) What are you talking about Admin? There is NO attached pdf the email. The link doesn’t work for me either!&lt;/li&gt;
  &lt;li&gt;Administrator: Yes I double checked the document on my side, and I can access it fine.&lt;/li&gt;
  &lt;li&gt;Me (thoughts in brain): ARGH, HELP ME. That ain’t how ya supposed to use ‘Yes and’.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;no-but&quot;&gt;No, but…&lt;/h1&gt;

&lt;p&gt;In tester-speak, how about if we experiment with ‘No, but… (opportunity)’? Yes, I just made that up. We accept there is a problem, but we also leave the door open for more observations. When we ‘but’ (verb) more things, we can expand our minds and think differently about the problem:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;No, but when I try it a different way…&lt;/li&gt;
  &lt;li&gt;No, but when I change the config slightly…&lt;/li&gt;
  &lt;li&gt;No, but if I check the test data I used, I noticed…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe if the admin learned to say ‘No but’, they could’ve helped me. They could’ve tried to attach the pdf again or granted me access to GDocs. Instead, they left me grinding my teeth. If bug tickets were sentient beings, maybe this is how they would feel if they were closed.&lt;/p&gt;

&lt;h1 id=&quot;bug-reporting&quot;&gt;Bug reporting&lt;/h1&gt;

&lt;p&gt;What can we learn from this? Well, I believe ‘Workarounds’ is underused in bug reporting. I’m guilty of this myself. Compare these simple bug reports that I just pulled from my imagination. Tell me how it makes you feel, listen to your heart.&lt;/p&gt;

&lt;h2 id=&quot;closed-bug-report-1---no-workarounds&quot;&gt;Closed bug report 1 - No workarounds&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Title: User unable to log in to install the fruits app (intermittent issue)&lt;/li&gt;
  &lt;li&gt;Steps to reproduce: Type in username and password, click submit. Go to the app directory and click install on the fruits app.&lt;/li&gt;
  &lt;li&gt;Actual Results: The loading spinner continues indefinitely, instead of a successful install.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comments: Closed, this is expected behaviour for the fruits app.&lt;/p&gt;

&lt;h2 id=&quot;closed-bug-report-2---workarounds-suggested&quot;&gt;Closed bug report 2 - Workarounds suggested&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Title: User unable to log in to install the fruits app (intermittent issue)&lt;/li&gt;
  &lt;li&gt;Steps to reproduce: Type in username and password, click submit. Go to the app directory and click install on the fruits app.&lt;/li&gt;
  &lt;li&gt;Actual Results: The loading spinner continues indefinitely, instead of a successful install.&lt;/li&gt;
  &lt;li&gt;Workarounds:
    &lt;ul&gt;
      &lt;li&gt;Check if the app is already installed by navigating to ‘Installed apps section’. (Confirmed)&lt;/li&gt;
      &lt;li&gt;Check configuration for app permissions for that specific user (Confirmed)&lt;/li&gt;
      &lt;li&gt;Clear the cache on the browser and try again (Confirmed)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comments: Closed as the behaviour is due to technical limitations at this point in time. The workarounds are confirmed to solve the customer’s problems.&lt;/p&gt;

&lt;h1 id=&quot;what-are-the-benefits&quot;&gt;What are the benefits?&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;It helps with prioritising tickets - we closed this bug ticket because there is a workaround, here is the workaround.&lt;/li&gt;
  &lt;li&gt;It helps with solving customer problems - the IT technician read the bug report and told the customer how to solve their issue.&lt;/li&gt;
  &lt;li&gt;It helps to show you are a master tester - you have provided a solution, you’re not just playing the role of a reporter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Consider using ‘Workarounds’ in the bugs that matter most, even if they are going to be closed. Say ‘No, but…’ and leave the door slightly ajar.&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Fri, 18 Nov 2022 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2022/nobut/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2022/nobut/</guid>
        
        
        <category>communication</category>
        
      </item>
    
      <item>
        <title>Test Tours 01 - Modeling with user tours</title>
        <description>&lt;p&gt;This post is the first in a three part series. This blog focuses on the user tour, which I believe is also called persona testing. A tour is a method to explore different aspects of an application. In the &lt;a href=&quot;https://www.fourhourtester.net/exercises/Modeling.html&quot;&gt;four hour tester&lt;/a&gt;, there are 11 tours and the acronym mentioned is FCC CUTS VIDS. I first heard about this when studying on the BBST foundations course. Honestly, it feels like being given the power to switch different modes of vision: infrared, x-ray, black and white, colour.&lt;/p&gt;

&lt;p&gt;The exercise:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Apply the following tours to Google Calendar. Take 5 minutes for each tour.&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;User tour (instead of five users, do this for one: yourself)&lt;/li&gt;
    &lt;li&gt;Data tour&lt;/li&gt;
    &lt;li&gt;Configuration tour&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;user-tour&quot;&gt;User tour&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;Imagine five users for the product and the information they would want from the product or the major features they would be interested in.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Luckily, the four hour tester instructs me to test it as yours truly. No need to imagine myself as a 60 year old. I will focus on two questions:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;What information do I want from a digital calendar?&lt;/li&gt;
  &lt;li&gt;What major features would I interested in?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My approach is simply to engage with the product, recording myself in the process. The tools I used for this experiment are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Windows countdown timer to limit myself for 5 mins per tour.&lt;/li&gt;
  &lt;li&gt;OBS to record myself doing the tour on Google Calendar. I narrated my thoughts out loud I went through this exercise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;my-findings&quot;&gt;My findings&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;Can I see dates in the future? Yes I can, but there does not appear to be a ‘jump to (date)’ feature (e.g. if I want to go to 2026). UPDATE: It turns out there is a keyboard shortcut for it, but the fact remains there is no UI element for this feature.&lt;/li&gt;
  &lt;li&gt;I can see other people’s calendars, but what if I didn’t want to see everything? e.g. I can see Bob’s calendar, but I only want to see his lunch times everyday. No way to filter specific events.&lt;/li&gt;
  &lt;li&gt;The widgets/elements on the calendar page are not customisable. For example, you can’t move the position of the time insights somewhere else etc.&lt;/li&gt;
  &lt;li&gt;Guest permissions seems to be global to all guests, what if you want to selectively mix and match permissions?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;/img/gcal_guest_perms.png&quot; alt=&quot;Guest Permissions&quot; /&gt;&lt;/p&gt;

&lt;figure&gt;

  &lt;picture&gt;
    
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 480px)&quot; srcset=&quot;/assets/img/gcal_guest_perms-480.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 800px)&quot; srcset=&quot;/assets/img/gcal_guest_perms-800.webp&quot; /&gt;
    &lt;source class=&quot;responsive-img-srcset&quot; media=&quot;(max-width: 1400px)&quot; srcset=&quot;/assets/img/gcal_guest_perms-1400.webp&quot; /&gt;
    

    &lt;!-- Fallback to the original file --&gt;
    &lt;img src=&quot;/assets/img/gcal_guest_perms.png&quot; class=&quot;img-fluid rounded z-depth-1&quot; width=&quot;auto&quot; height=&quot;auto&quot; data-zoomable=&quot;&quot; onerror=&quot;this.onerror=null; $(&apos;.responsive-img-srcset&apos;).remove();&quot; /&gt;

  &lt;/picture&gt;

&lt;/figure&gt;

&lt;h1 id=&quot;evaluation&quot;&gt;Evaluation&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;How did this tour help you to come up with different test ideas?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Running this exercise as myself, it didn’t help me generate test ideas for existing features. It feels like I am scanning the product for new enhancement features. Maybe this would’ve gone differently if I put myself in the shoes of a different user. I shouldn’t have followed the instructions of the four hour tester! Here are the lessons that I learned anyway:&lt;/p&gt;

&lt;h2 id=&quot;distracted-by-existing-knowledge&quot;&gt;Distracted by existing knowledge&lt;/h2&gt;

&lt;p&gt;I’m already familiar with the basic features of GCal, I struggled with this exercise because it mostly meets my needs. The obvious ones are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I know I can have different calendars.&lt;/li&gt;
  &lt;li&gt;I know I can change language.&lt;/li&gt;
  &lt;li&gt;I know I can see dates in the future.&lt;/li&gt;
  &lt;li&gt;I know the line showing the current time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Constantly affirming my own mental model of GCal bugged me, I was not questioning it and stepping outside the box. This is a problem I didn’t foresee, I simply jumped straight into the exercise and interacted with the product.&lt;/p&gt;

&lt;p&gt;What is a better way to approach a user tour? I can begin by not engaging with the product at all. Instead, write down what imaginary features I want. This way I’m less likely to talk myself into ‘It’s good enough’. I’d be more open to the question ‘What’s wrong with it?’, a question that testers should always be asking. People tend to find more problems when they are explicit with their needs, right?&lt;/p&gt;

&lt;h2 id=&quot;i-dont-want-this&quot;&gt;I don’t want this!&lt;/h2&gt;

&lt;p&gt;It might be also worth considering what users &lt;em&gt;don’t want&lt;/em&gt;. What information do I NOT want to see? Or what major features do I NOT want? This is evident from points 2 and 3 in my findings.&lt;/p&gt;

&lt;p&gt;In part 2, I go through the &lt;a href=&quot;https://philwong.co.uk/blog/2022/datatour/&quot;&gt;data tour&lt;/a&gt;.&lt;/p&gt;
</description>
        <dc:creator><![CDATA[Phil Wong]]></dc:creator>
        <pubDate>Mon, 14 Nov 2022 12:00:00 +0000</pubDate>
        <link>https://philwong.co.uk/blog/2022/usertour/</link>
        <guid isPermaLink="true">https://philwong.co.uk/blog/2022/usertour/</guid>
        
        
        <category>tour</category>
        
        <category>four-hour-tester</category>
        
      </item>
    
  </channel>
</rss>
