<?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>DEV Community: Tim Yao</title>
    <description>The latest articles on DEV Community by Tim Yao (@timyao).</description>
    <link>https://dev.to/timyao</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F524789%2Fda518b3b-6be8-46a8-9fb4-df0e19ead9a4.jpeg</url>
      <title>DEV Community: Tim Yao</title>
      <link>https://dev.to/timyao</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/timyao"/>
    <language>en</language>
    <item>
      <title>Where to test in Continuous Testing</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Sat, 04 Dec 2021 07:37:37 +0000</pubDate>
      <link>https://dev.to/timyao/where-to-test-in-continuous-testing-164</link>
      <guid>https://dev.to/timyao/where-to-test-in-continuous-testing-164</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. - Wikipedia&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here I found a nice visualization(from &lt;a href="https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/"&gt;continuous testing in devOps&lt;/a&gt;) for where we can/should test in devOps:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VkN6tmI1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p9fsymz6mjh8h7n3tmp3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VkN6tmI1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p9fsymz6mjh8h7n3tmp3.jpeg" alt="Where to test in devOps" width="820" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>devops</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>Data-driven, keyword Driven Testing Framework</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Wed, 01 Dec 2021 01:30:22 +0000</pubDate>
      <link>https://dev.to/timyao/data-driven-keyword-driven-testing-framework-21mb</link>
      <guid>https://dev.to/timyao/data-driven-keyword-driven-testing-framework-21mb</guid>
      <description>&lt;h2&gt;
  
  
  Concept
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Data-driven testing framework
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.browserstack.com/guide/data-driven-framework-in-selenium"&gt;https://www.browserstack.com/guide/data-driven-framework-in-selenium&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is keyword driven testing framework
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.browserstack.com/guide/keyword-driven-framework-in-selenium"&gt;https://www.browserstack.com/guide/keyword-driven-framework-in-selenium&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hybird testing framework
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.browserstack.com/guide/hybrid-framework-in-selenium"&gt;https://www.browserstack.com/guide/hybrid-framework-in-selenium&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Thoughts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Keyword driven test framework
&lt;/h3&gt;

&lt;p&gt;It sounds hard to do in a large scale project. If we need to make the tester write test cases by providing keywords only, that will require a considerable amount of time to create and maintain those scripts.&lt;br&gt;
I am using Cucumber, and it is BDD(Behaviour-driven development), so the Keyword test framework won't be something I will look at anyway.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data-driven test framework
&lt;/h3&gt;

&lt;p&gt;It is good to provide a separation of test data and test cases. And to do it in the best practice, we should split the test data from test cases into external files instead of using Gherkin arguments. Using a data table is still not a good way as we cannot replace it.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>testautomation</category>
      <category>selenium</category>
    </item>
    <item>
      <title>Understand JSON Wire Protocol and W3C Standard Protocol in Selenium WebDriver</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Sat, 14 Aug 2021 08:39:15 +0000</pubDate>
      <link>https://dev.to/timyao/understand-json-wire-protocol-and-w3c-standard-protocol-in-selenium-webdriver-3hk8</link>
      <guid>https://dev.to/timyao/understand-json-wire-protocol-and-w3c-standard-protocol-in-selenium-webdriver-3hk8</guid>
      <description>&lt;p&gt;&lt;strong&gt;In short, &lt;a href="https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol" rel="noopener noreferrer"&gt;JSON Wire Protocol(JWP)&lt;/a&gt; is the old legacy protocol, and &lt;a href="https://www.w3.org/TR/webdriver/" rel="noopener noreferrer"&gt;W3C Standard Protocol&lt;/a&gt; is the new one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That two protocols are used by &lt;a href="https://www.selenium.dev/documentation/webdriver/" rel="noopener noreferrer"&gt;Selenium WebDriver&lt;/a&gt; to interact with browser drivers as below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4a7q4s4f4bpbs4unqbz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4a7q4s4f4bpbs4unqbz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is happening
&lt;/h2&gt;

&lt;p&gt;As browser vendors update to support W3C WebDriver protocol and shift away from JSON Wire Protocol (JWP), this can bring increased stability in your Selenium tests across different browsers.&lt;/p&gt;

&lt;p&gt;Some browsers has stopped to support JWP in latest version, like Safari. And others may will do so in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we should do
&lt;/h2&gt;

&lt;p&gt;That means, we need to migrate our WebDriver tests to use w3c standards ASAP.&lt;/p&gt;

&lt;p&gt;For BrowserStacks Selenium users, have a look this guide: &lt;a href="https://www.browserstack.com/automate/selenium-4" rel="noopener noreferrer"&gt;https://www.browserstack.com/automate/selenium-4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For SourceLabs Selenium users, read this: &lt;a href="https://docs.saucelabs.com/dev/w3c-webdriver-capabilities/index.html" rel="noopener noreferrer"&gt;https://docs.saucelabs.com/dev/w3c-webdriver-capabilities/index.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>testautomation</category>
      <category>selenium</category>
      <category>seleniumwebdriver</category>
    </item>
    <item>
      <title>QA in Production</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Sat, 14 Aug 2021 07:33:24 +0000</pubDate>
      <link>https://dev.to/timyao/qa-in-production-5gbe</link>
      <guid>https://dev.to/timyao/qa-in-production-5gbe</guid>
      <description>&lt;p&gt;&lt;strong&gt;How to reduce defects in production?&lt;br&gt;
What kind of QA work can be done in production?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nowadays, this is a work mixed with QA &amp;amp; DevOps.&lt;/p&gt;

&lt;p&gt;This article from martinfowler.com will guide you through those answers:&lt;a href="https://martinfowler.com/articles/qa-in-production.html"&gt;QA in Production&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Apart from that, a collection of articles from TechBeacon Guides named &lt;a href="https://content.microfocus.com/l/reduce-defects-software-tb"&gt;"Reducing Defects in Production Software"&lt;/a&gt;  is highly recommended.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>devops</category>
      <category>qa</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>Micro Frontends</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Sat, 14 Aug 2021 07:18:50 +0000</pubDate>
      <link>https://dev.to/timyao/micro-frontends-19b4</link>
      <guid>https://dev.to/timyao/micro-frontends-19b4</guid>
      <description>&lt;p&gt;How to break front end to smaller team(product)?&lt;/p&gt;

&lt;p&gt;A trend of using Micro Frontend:&lt;br&gt;
&lt;a href="https://martinfowler.com/articles/micro-frontends.html"&gt;https://martinfowler.com/articles/micro-frontends.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Bounded context</title>
      <dc:creator>Tim Yao</dc:creator>
      <pubDate>Thu, 03 Dec 2020 10:28:31 +0000</pubDate>
      <link>https://dev.to/timyao/bounded-context-930</link>
      <guid>https://dev.to/timyao/bounded-context-930</guid>
      <description>&lt;p&gt;How to design the product?&lt;br&gt;
Rather than build a product for all, build a product with bounded context. So we make it simple and avoid complexity. &lt;/p&gt;

&lt;p&gt;Read:&lt;br&gt;
&lt;a href="https://martinfowler.com/bliki/BoundedContext.html"&gt;https://martinfowler.com/bliki/BoundedContext.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>systems</category>
    </item>
  </channel>
</rss>
