<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>How Not to Suck at Writing Bug Reports | Infinum</title>
		<atom:link href="https://infinum.com/blog/how-not-to-suck-at-writing-bug-reports/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/how-not-to-suck-at-writing-bug-reports/</link>
		<description>Building digital products</description>
		<lastBuildDate>Fri, 03 Apr 2026 12:58:20 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>7962https://infinum.com/uploads/2019/02/how-not-to-suck-at-writing-bug-reports-0.webp</url>
				</image>
				<title>How Not to Suck at Writing Bug Reports</title>
				<link>https://infinum.com/blog/how-not-to-suck-at-writing-bug-reports/</link>
				<pubDate>Thu, 07 Feb 2019 17:00:00 +0000</pubDate>
				<dc:creator>Neven Matas</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/how-not-to-suck-at-writing-bug-reports/</guid>
				<description>
					<![CDATA[<p>A good bug report means bugs can be squashed faster, and the faster they do, the sooner the product can be declared shippable. </p>
<p>The post <a href="https://infinum.com/blog/how-not-to-suck-at-writing-bug-reports/">How Not to Suck at Writing Bug Reports</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-284"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-93">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-94'
	>
	A software tester might do several different things throughout the day, but reporting bugs is still the bread and butter of the job. A good bug report means bugs can be squashed faster, and the faster they do, the sooner the product can be declared shippable. This post will try to lay out the basic how-to’s which could prove useful to any aspiring tester, project manager, designer, or your run-of-the-mill bug aficionado.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-96">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-97'
	>
	A tester’s reality is often weird, and sanity is a valuable asset when confronted with <a href="https://en.wikipedia.org/wiki/Heisenbug">Heisenbugs</a>, Higgs-bugsons, and other terrifying creatures from the twilight zone of software development. Since you want to avoid playing the ol’ game of defect ping-pong and work on developing new features, <strong>knowing how to write a good bug report is an essential skill to master.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-99"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-100">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2019/02/how-not-to-suck-at-writing-bug-reports-1-1400x807.webp				media='(max-width: 699px)'
				type=image/webp								height="807"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2019/02/how-not-to-suck-at-writing-bug-reports-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="813"
															width="1410"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-102">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-103'
	>
	Ernest’s bug report</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-105">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-106'
	>
	To help you not slide too far down the rabbit hole, I’d like to propose a framework for your QA prose. Let’s call it Ernest. Ernest is a simple framework; it’s how Hemingway would write bug reports if he were a software tester. It requires you to follow four simple rules:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-108">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-109'
	>
	<strong>1. Your bug reports should be concise</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-111">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-112'
	>
	Because root cause analysis and debugging will be much faster if developers can reproduce the issue easily. This calls for clarity and completeness on your end.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-114">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-115'
	>
	<strong>2. Your bug reports should be prioritized</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-117">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-118'
	>
	Because being unable to register is usually more important than padding.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-120">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-121'
	>
	<strong>3. Your bug reports should be consistently structured.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-123">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-124'
	>
	Because habit is a powerful weapon, and being consistent will ensure both you and devs follow a specific process when reporting and fixing issues.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-126">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-127'
	>
	<strong>4. Your bug report should only contain one bug.</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-129">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-130'
	>
	Because bugs hate the company. If you stuff them all together, you will get tangled and won’t be able to differentiate between successfully resolved and pending issues. No one will be able to keep track of the issue at hand.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-132">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-133'
	>
	That’s it, no harder than it needs to be. They say you should learn from your mistakes, so let’s look at those first.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-135">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-136'
	>
	Breaking rule 1 with redundancy</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-138">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-139'
	>
	Tester Vulgaris:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-141">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-142'
	>
	<em>It was a bright sunny day in western Manchester when I glanced at my iPhone X and started the app. I tried uploading a profile picture using build 2.0.1-b42 when all hell broke loose and the app crashed. Fix immediately.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-146"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-144">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-145'
	>
	Breaking rule 1 with vagueness</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-147">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-148'
	>
	Tester Vulgaris: <em>Hear ye, developer, the app crashes when I start it.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-150">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-151'
	>
	Developer Vulgaris: <em>Not on my device it doesn’t. Go bother someone else.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-155"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-153">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-154'
	>
	Tester Vulgaris: <em>Have you tried on the Samsung Galaxy J3 with Android 6.0?</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-158"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-156">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-157'
	>
	Developer Vulgaris: <em>Oh yeah…</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-159">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-160'
	>
	<strong>Lesson learned:</strong><br>Be like Goldilocks, never give either too much or too little information.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-164"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-162">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-163'
	>
	Breaking rule 2 with being overly dramatic and/or downright arrogant</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-165">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-166'
	>
	Tester Vulgaris:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-168">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-169'
	>
	<em>Are you expecting me to accept this fix? Everything sucks, and nothing works. Are you a developer or a clown? Maybe you should try gardening as a career choice! The hover effect on the About screen’s back button is 5% too transparent on my Samsung S3 mini. THIS IS A BLOCKER! I’m emailing you my therapist’s bill as we speak.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-171">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-172'
	>
	<strong>Lesson learned:</strong><br>You live in the real world, software is imperfect, and some things are more important than others. Also, don’t be a douchebag.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-174">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-175'
	>
	Breaking rule 3 with being harder to follow than Ayrton Senna</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-177">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-178'
	>
	Tester Vulgaris:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-180">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-181'
	>
	<em>I installed the latest version of the app. It was 1.0.0-b1111. I started the app. But first I cleared cache, I think. Then I immediately got a strange dialog when accessing the profile screen. It was empty. Oh yeah, the phone was disconnected from the internet. Please check that, thanks! Btw. The version of the app was actually 1.0.0-b1112. I tested on a Huawei P10, but I forgot which OS is on it. I’ll get back to you on that.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-183">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-184'
	>
	<strong>Lesson learned:</strong><br>You are neither a poet nor a manual writer for Ikea. You should be easy to understand, and devs should be able to reproduce the issues you report.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-188"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-186">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-187'
	>
	Breaking rule 4 by being a megalomaniac</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-191"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-189">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-190'
	>
	Tester Vulgaris:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-194"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-192">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-193'
	>
	<em>Well, I tested the latest build on 4 different devices. I found several bugs: 18 typos in the “About” section (18 screenshots and proposed corrections are attached). On one device, the app crashes if I try logging in with a legacy user. On another, the app freezes if I try sharing my post on Twitter. If you could get this done by tomorrow, that would be great.</em></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-197"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-195">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-196'
	>
	<strong>Lesson learned:</strong><br>Work is best done when divided into digestible chunks. Don’t shove bug reports down people’s throats and avoid information overload.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-200"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-198">
	<h2	class='typography typography--size-52-default js-typography block-typography__typography'
	data-id='es-199'
	>
	How to do it well?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-203"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-201">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-202'
	>
	Here are some tips at sucking less at writing bug reports.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-206"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-204">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-205'
	>
	<strong>Title:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-209"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-207">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-208'
	>
	<li>Should either describe the issue or explain what needs to be done</li><li>e.g. &#8220;The app crashes when saving a document&#8221;</li><li>e.g. &#8220;Remove the T&amp;C checkbox from the registration screen.&#8221;</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-212"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-210">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-211'
	>
	<strong>Preconditions:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-213">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-214'
	>
	<li>Device details: manufacturer and model, OS version, screen size, and resolution usually don&#8217;t hurt as well</li><li>Browser: type and version</li><li>Build details: exact version/build number and environment</li><li>Any other, e.g. your user role</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-218"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-216">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-217'
	>
	<strong>The body of the bug report should contain:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-221"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-219">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-220'
	>
	<li>The exact steps that need to be taken to reproduce the issue</li><li>The actual outcome</li><li>The expected outcome (possibly referring to the design, acceptance criteria, or other specs)</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-224"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-222">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-223'
	>
	<strong>Useful addendums:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-227"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-225">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-226'
	>
	<li>Priority (how immediately should the issue be fixed)</li><li>Severity (how badly it affects functionalities and/or UX)</li><li>Stack traces (using Crashlytics or a similar tool often comes in handy)</li><li>Error output from the console</li><li>API requests/responses when relevant</li><li>Screenshots of UI issues</li><li>Screenshots of weird UI/UX issues hard to convey in words</li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-230"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-228">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-229'
	>
	Here’s a fictional example that doesn’t necessarily include all of the above for the sake of brevity:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-233"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-231">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-232'
	>
	<strong>Title:</strong><br>The app crashes when taking a photo without camera permissions</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-236"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-234">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-235'
	>
	<strong>Device:</strong><br>LG Nexus 5X (Android 7.0)</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-239"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-237">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-238'
	>
	<strong>Build:</strong><br>1.1.0-b4422</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-242"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-240">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-241'
	>
	<strong>Environment:</strong><br>Development</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-245"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-243">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-244'
	>
	<strong>Prerequisites:</strong><br>The test user should be a Photographer.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-246">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-247'
	>
	<strong>Steps:</strong></p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-252"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--number bullet__color--black block-bullet__bullet" data-id="es-249">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-250'
	>
	1</p>	<div class="bullet__content">
		<p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-251'
	>
	Start the app, and log in.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-256"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--number bullet__color--black block-bullet__bullet" data-id="es-253">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-254'
	>
	2</p>	<div class="bullet__content">
		<p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-255'
	>
	Tap on the &#8220;Create new assignment&#8221; button.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-260"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--number bullet__color--black block-bullet__bullet" data-id="es-257">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-258'
	>
	3</p>	<div class="bullet__content">
		<p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-259'
	>
	Tap on the &#8220;Take assignment photo&#8221; button.</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-264"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="bullet bullet--left bullet__type--number bullet__color--black block-bullet__bullet" data-id="es-261">
	<p	class='typography typography--size-14-text js-typography bullet__dot'
	data-id='es-262'
	>
	4</p>	<div class="bullet__content">
		<p	class='typography typography--size-16-text-roman js-typography bullet__paragraph'
	data-id='es-263'
	>
	Decline giving the app permission to use the camera</p>	</div>
</div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-267"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-265">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-266'
	>
	<strong>Actual:</strong><br>The app crashes.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-270"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-268">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-269'
	>
	<strong>Expected:</strong><br>When the user declines, an informative dialog with an “Ok” button should be presented.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-273"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-271">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-272'
	>
	<strong>Links:</strong><br>Informative dialog: zpl.io/screen<br>Stack trace: fabric.io/bug</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-276"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-274">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-275'
	>
	That pretty much wraps it up for today; now you know how to write a bug report by taking a clue from Ernest’s book. Since testing doesn’t end with pretty bug reports, in the next blog post, we’ll look at a few testing viewpoints that might help you think differently about the job you are performing. In the meantime, check out <a href="https://infinum.com/blog/10-app-testing-principles/">10 principles of successful app testing</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-279"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-277">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-278'
	>
	If you find any bugs on this page, please report them to support@infinum.co. Each correctly reported bug will earn you a cup of coffee with our quality assurance team, and each improperly reported one will be exposed to hearty ridicule and relegated to the endless archives of our Gmail accounts.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-282"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-typography" data-id="es-280">
	<p	class='typography typography--size-20-text-blog-roman js-typography block-typography__typography'
	data-id='es-281'
	>
	Just kidding, we take bugs seriously. <a href="https://infinum.com/careers/">Ping us if you do too</a> and have fun testing.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/how-not-to-suck-at-writing-bug-reports/">How Not to Suck at Writing Bug Reports</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>