<?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: Nicola Lindgren</title>
    <description>The latest articles on DEV Community by Nicola Lindgren (@nicolalindgren).</description>
    <link>https://dev.to/nicolalindgren</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%2F775057%2Fd0563ee5-3ca5-4cce-8d38-b4e771570177.jpg</url>
      <title>DEV Community: Nicola Lindgren</title>
      <link>https://dev.to/nicolalindgren</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nicolalindgren"/>
    <language>en</language>
    <item>
      <title>Choosing what not to write automated tests for</title>
      <dc:creator>Nicola Lindgren</dc:creator>
      <pubDate>Tue, 28 Dec 2021 13:09:02 +0000</pubDate>
      <link>https://dev.to/nicolalindgren/choosing-what-not-to-write-automated-tests-for-58ln</link>
      <guid>https://dev.to/nicolalindgren/choosing-what-not-to-write-automated-tests-for-58ln</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally posted on my personal blog: &lt;a href="https://nicolalindgren.com/2021/10/11/choosing-what-not-to-write-automated-tests-for/"&gt;nicolalindgren.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While it’s important to make sure your test automation has good coverage, I think it’s also important to know under which circumstances you should not write automated tests.&lt;/p&gt;

&lt;p&gt;In my opinion, when it comes to test automation, more isn’t necessarily better.&lt;/p&gt;

&lt;p&gt;More tests don’t necessarily result in better coverage.&lt;/p&gt;

&lt;p&gt;More tests don’t necessarily increase your chance of finding regression bugs.&lt;/p&gt;

&lt;p&gt;More tests is just that. More tests.&lt;/p&gt;

&lt;p&gt;When deciding what not to write automated tests for, I think it’s important to ask yourself a few things.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What is your goal with your test automation?
&lt;/h2&gt;

&lt;p&gt;Be specific and realistic about your expectations.&lt;/p&gt;

&lt;p&gt;Come up with some specific examples of the types of regression issues that could come up and would be found from the test automation you have in place.&lt;/p&gt;

&lt;p&gt;The best part of having a clear goal for your test automation is that it will guide you in knowing when and when not to write tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. When deciding to add tests weigh the benefits of having the test against the costs
&lt;/h2&gt;

&lt;p&gt;Is your test likely to find issues? Do you already have a test/ tests in place that would catch the issue(s) your possible test is designed to find?&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Is this area of the app/website looking to change soon? If so, is it worthwhile writing tests for this area now or waiting a little bit?
&lt;/h2&gt;

&lt;p&gt;A factor to consider here is how considerable the changes are looking to be and how far in the future changes for this area of the app/website will be.&lt;/p&gt;

&lt;p&gt;Do you also write test automation? What makes you decide whether a test is or is not worth adding to your test automation suite?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want to read more interesting articles on testing, development, agile and automation, you can follow me on Twitter &lt;a href="https://twitter.com/NicolaLindgren"&gt;@nicolalindgren&lt;/a&gt; 👋&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want to read more about when you shouldn’t write Test Automation along with tips on how to get started learning test automation, &lt;a href="https://leanpub.com/startinginsoftwaretesting"&gt;check out my upcoming eBook: Starting Your Software Testing Career – due out in January 2022.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>test</category>
      <category>testdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dealing with Intermittent Bugs</title>
      <dc:creator>Nicola Lindgren</dc:creator>
      <pubDate>Wed, 22 Dec 2021 15:37:13 +0000</pubDate>
      <link>https://dev.to/nicolalindgren/dealing-with-intermittent-bugs-m6f</link>
      <guid>https://dev.to/nicolalindgren/dealing-with-intermittent-bugs-m6f</guid>
      <description>&lt;p&gt;This was originally posted on my personal blog: &lt;a href="https://nicolalindgren.com/2021/06/15/dealing-with-intermittent-bugs/"&gt;nicolalindgren.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Intermittent bugs can be a frustration for the entire team. You may be lucky enough to uncover it before it reaches any beta testers or you may find yourselves having to figure out what the hell happened because a customer (or several) has reported it but you are struggling to replicate it.&lt;/p&gt;

&lt;p&gt;Here are some ideas on how to deal with intermittent bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gather information about the bug
&lt;/h2&gt;

&lt;p&gt;This can be easier said than done as you might not always have easy access to the person who came across the bug. I’ve been on the receiving end of bugs with vague descriptions and no information on OS, device, error message etc. When possible, I do try to gather the following information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When did it occur? (exactly what time)&lt;/li&gt;
&lt;li&gt;Which device?&lt;/li&gt;
&lt;li&gt;Which Operating system?&lt;/li&gt;
&lt;li&gt;Were you able to replicate it later?&lt;/li&gt;
&lt;li&gt;What error do you see? (exact wording)&lt;/li&gt;
&lt;li&gt;Screenshots&lt;/li&gt;
&lt;li&gt;Exactly what did you do before the bug&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To be honest, I rarely receive all of this information, but I do ask for it in case I am able to get some of this information that can help narrow it down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Look at the logs
&lt;/h2&gt;

&lt;p&gt;One of the reasons I like to ask when it occurred (exactly what time) is so I can see if anything happened in the background etc. at the same time (or around the same time) that could have caused this to occur.&lt;/p&gt;

&lt;p&gt;Looking at the logs can also give us more information as to exactly what happened; what the issue was.&lt;/p&gt;

&lt;h2&gt;
  
  
  Timebox the investigation
&lt;/h2&gt;

&lt;p&gt;I find it can be easy to lose track of time and continue investigating but not get anywhere. I tend to timebox the investigation if I don’t receive any additional information.&lt;/p&gt;

&lt;p&gt;I’ll let the product owner/delivery lead etc. know that I will look into this for X time, but also that I will park it after I have taken notes on what I have tried and what happened.&lt;/p&gt;

&lt;p&gt;Which leads me to…&lt;/p&gt;

&lt;h2&gt;
  
  
  Record what you have tried (be specific)
&lt;/h2&gt;

&lt;p&gt;Just because you haven’t replicated the issue, doesn’t mean what you have tried doesn’t have any value.&lt;/p&gt;

&lt;p&gt;I like to be specific and write exactly what I tried (when, on what device etc.) and what happened, then add these comments against the bug in the bug tracking tool.&lt;/p&gt;

&lt;p&gt;This can help you (or someone else) later when you need to investigate the issue further if you didn’t manage to solve the mystery the first time around.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pair with someone
&lt;/h2&gt;

&lt;p&gt;Pairing with someone means you can bounce ideas off another person. It can be easy to get stuck or hit a rut when you are trying to tackle something like this yourself.&lt;/p&gt;

&lt;p&gt;If you pair with someone, they can give you ideas of things you haven’t tried yet and you can ask each other “what else can we try” or “what else could we be missing?”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Do you have other ideas on how you handle intermittent bugs? What do you do when you come across them?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/NicolaLindgren"&gt;Let me know on Twitter! @NicolaLindgren&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>test</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How do you actually prevent bugs?</title>
      <dc:creator>Nicola Lindgren</dc:creator>
      <pubDate>Wed, 15 Dec 2021 19:01:03 +0000</pubDate>
      <link>https://dev.to/nicolalindgren/how-do-you-actually-prevent-bugs-nn3</link>
      <guid>https://dev.to/nicolalindgren/how-do-you-actually-prevent-bugs-nn3</guid>
      <description>&lt;p&gt;&lt;em&gt;This blog post was originally posted on my personal blog: &lt;a href="https://nicolalindgren.com/2021/11/15/how-do-you-actually-prevent-bugs/"&gt;nicolalindgren.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s not hard to find articles or pieces of research claiming that the sooner you find a bug, the cheaper it is to fix. But I’ve found there isn’t actually a whole lot of information out there on exactly how to prevent bugs in the early stages of a software development project. i.e. before code is written, while requirements/user stories are being written or just after the requirements/user stories have been written&lt;/p&gt;

&lt;p&gt;Here I would like to share exactly how I help prevent bugs on projects and how I help others come up with ideas on how to prevent bugs as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During feature walkthroughs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Get yourself invited to these. They may be called something different at your company/project but they are essentially a meeting, presentation or discussion around the general gist of the feature you are about to work on. There may or may not be designs at this stage yet.&lt;/p&gt;

&lt;p&gt;If designs exist, ask the designers for access to the designs before the meeting if possible so you have a bit of time to process your thoughts before the meeting, also ask if they are open to feedback before the meeting or if you should wait until during the meeting.&lt;/p&gt;

&lt;p&gt;If designs don’t exist, I do find this trickier as I’m a visual person and designs help make things more “real” for me. There are, however, still ways you can cope with this.&lt;/p&gt;

&lt;p&gt;Here are a few things you can ask about during feature walkthroughs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error scenarios – how will errors be handled; where will validation be done (backend or frontend) etc.&lt;/li&gt;
&lt;li&gt;Ask for the backend documentation and how things will be validated there, then make sure that things have stricter validation in the front end (where possible), this helps prevent problems where the FE accepts data and you submit a form but the backend rejects it (e.g. mandatory fields, all mandatory fields the backend requires MUST be mandatory in the front end)&lt;/li&gt;
&lt;li&gt;Are there any mandatory fields we need to consider?&lt;/li&gt;
&lt;li&gt;Are there any other features we expect this feature to be consistent with? (For more on consistency heuristics, check out my blog post here) Some examples of this could include: how errors display, positioning and colours of buttons, user feedback when submitting a form (if you already have these sorts of things in place, you can then ask about these and if this new feature will be aligned with the existing behaviour within your site/app)&lt;/li&gt;
&lt;li&gt;Are there any dependencies within the app we need to be aware of?&lt;/li&gt;
&lt;li&gt;Are there any external dependencies (e.g. 3rd party ones( that we need to be aware of?&lt;/li&gt;
&lt;li&gt;Along with the questions above, you can also help trigger further discussion by stating how you understand how the feature will be used in the feature walkthrough.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yes, you may be wrong – but that’s fine. The value here is that by making your thought process and understanding explicit, then others can step in and correct you – this helps enable a shared understanding. You will also help others ask questions about things by verbalising your thought process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Once the requirements/user stories are written&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m going to assume here that the requirements/user stories are still subject/open to change, but limited to a certain extent. (no massive changes)&lt;/p&gt;

&lt;p&gt;Make sure that your assumptions are made very clear – state them in your testing notes and also at the start of any testing discussion you have with your team&lt;/p&gt;

&lt;p&gt;Have a testing focussed discussion with the developers in your team. Here you can share exactly how you will test and what you will expect – also make sure to highlight that you may have misunderstood things, and that you are open to testing ideas from the developers in your team. I tend to go with testing notes, instead of test cases – but ultimately it’s up to you to decide on what’s best for your project and realistically, what you can do a walkthrough with.&lt;/p&gt;

&lt;p&gt;Where possible, use examples in your testing discussion, if there’s examples of test data you could utilise – then use these concrete examples of what you would be doing to test, and what you would expect in these examples.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Let’s say you are asked to test login functionality. Then you can write examples of email addresses and password combinations, and the error messages you expect to appear.&lt;/p&gt;

&lt;p&gt;&lt;a href="mailto:nicola@email.com"&gt;nicola@email.com&lt;/a&gt; /  –&amp;gt; Please enter your password&lt;/p&gt;

&lt;p&gt;nicolaemail.com / ********* –&amp;gt; Please enter a valid email address&lt;/p&gt;

&lt;p&gt;After the discussion, make sure to share the notes you took and how your testing notes/ test cases have been updated to reflect what has been discussed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/NicolaLindgren"&gt;Follow me on Twitter: @NicolaLindgren&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>test</category>
      <category>codequality</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
