<?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>The QA Fairy Godmother: 10 Practices for Happily Ever After | Infinum</title>
		<atom:link href="https://infinum.com/blog/the-qa-fairy-godmother-10-practices-for-happily-ever-after/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/the-qa-fairy-godmother-10-practices-for-happily-ever-after/</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>7929https://infinum.com/uploads/2018/03/the-qa-fairy-godmother-10-practices-for-happily-ever-after-0.webp</url>
				</image>
				<title>The QA Fairy Godmother: 10 Practices for Happily Ever After</title>
				<link>https://infinum.com/blog/the-qa-fairy-godmother-10-practices-for-happily-ever-after/</link>
				<pubDate>Thu, 01 Mar 2018 15:30:00 +0000</pubDate>
				<dc:creator>Nikolina Kentrić</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/the-qa-fairy-godmother-10-practices-for-happily-ever-after/</guid>
				<description>
					<![CDATA[<p>If you’ve ever read a fairy tale, you probably know the concept of the fairy godmother. Did you know they have a lot in common with quality assurance teams?</p>
<p>The post <a href="https://infinum.com/blog/the-qa-fairy-godmother-10-practices-for-happily-ever-after/">The QA Fairy Godmother: 10 Practices for Happily Ever After</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-208"
	 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-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	If you’ve ever read a fairy tale, you’re probably familiar with the concept of the fairy godmother. These magical beings materialize during tough times and bring good fortune to the story’s hero or heroine. But did you know fairy godmothers have a lot in common with quality assurance teams?</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-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	Until now, you’ve probably thought of QA in terms of exhaustive testing and meticulous attempts to break apps. But here at Infinum, our QA team consists of versatile, curious people who don’t let any part of the project fly under the radar. We become the project’s shadow that never leaves its side.</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-paragraph" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-100'
	>
	Some characters also need a bit more attention and care to shine, when good fortune runs out. In other words, QA becomes their fairy godmother.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 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-102"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-103">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2018/03/the-qa-fairy-godmother-10-practices-for-happily-ever-after-1-1400x840.webp				media='(max-width: 699px)'
				type=image/webp								height="840"
												width="1400"
				 />
												<img
					src="https://infinum.com/uploads/2018/03/the-qa-fairy-godmother-10-practices-for-happily-ever-after-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="846"
															width="1410"
										loading="lazy"
					 />
					</picture>

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

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-106'
	>
	Ready to work your QA magic? Here are ten practices to help you shield your project from harm and ensure that it lives happily ever after:</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-heading" data-id="es-108">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-109'
	>
	1. Include designers in estimates</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	Once upon a time, there was a project. This project’s development time was estimated without even the design draft. After a while, the estimates were changed again and again, which made the project manager very unhappy. The designer was also sad. If he had been there, he could have helped estimate a more accurate time needed for development. But with the existing estimates, everything had to be rushed and changed on-the-go. With such little time, QA struggled to keep the project on track. They were already past the point of no return.</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-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	This disaster could have been easily avoided. The cursed team in this scenario forgot one basic rule: the planning and estimate phase serves as the foundation of any project. It’s critical to include the designer when creating time estimates – that allows everyone to agree on the optimal solution together, instead of having to go back and forth later.</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-heading" data-id="es-117">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-118'
	>
	2. Specify flows and micro-interactions</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-120">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-121'
	>
	In the prototyping phase, there are countless screens, states, flows and invisible micro-interactions. Therefore, a developer, PM, client or QA looking at the design could easily miss a critical element or misinterpret something. If any detail is unclear, it’s very difficult to discuss it, let alone identify or repair the problem. All of this can potentially lead to a wrong implementation, big design reviews, misunderstandings and other delays.</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-paragraph" data-id="es-123">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-124'
	>
	Remember, the designer knows his work best—which is why he should be the one interpreting it to other teammates. If face-to-face communication isn’t possible during the prototyping phase, discussions via Zeplin and InVision could be helpful.</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-heading" data-id="es-126">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-127'
	>
	3. Aim for implementing the finalized design</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-129">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-130'
	>
	In many cases, project deadlines or an agile project methodology requires fast development of smaller bits of an app. Under these conditions, development sometimes starts before the final design is approved.</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-paragraph" data-id="es-132">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-133'
	>
	That causes on-the-go changes, which are often poorly documented, hastily executed and require a lot of additional polishing to achieve the intended quality. This is hardly avoidable, but you should aim to do best with what you have – track which changes have to be made, why they are being made, question and discuss them, and make sure that they are implemented correctly whenever they have to be done.</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-paragraph" data-id="es-135">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-136'
	>
	The ideal solution? Do not start implementing anything until the design is finalized. By slowing down at the beginning of a project, you’ll save loads of time on the back-end. If you take the waterfall approach, it’s critical to ensure your design is ready in time. If you work agile, you can iterate design, but at some point, you should polish the feature and move on to the next one. Last but not least, it’s critical to set priorities for the entire team.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-138">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-139'
	>
	4. Hand over design for implementation in a team meeting</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-141">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-142'
	>
	Zeplin is an extremely useful tool that includes the most technical information needed for implementing a feature according to the design. However, this tool should never be used in place of a team meeting with the designer. It’s worth repeating: The designer knows his work best.</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-paragraph" data-id="es-144">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-145'
	>
	Misunderstandings lead to mistakes, delays, and lower quality. Therefore, when the time comes to hand over design for implementation, it’s critical to hold a meeting that includes the entire team. This ensures everyone is up-to-date with current events and informed about all project details. During this meeting, the designer can provide further clarification and answer questions on the spot.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-149"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-147">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-148'
	>
	5. Act as a middleman</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-152"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-150">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-151'
	>
	We all know there’s a huge gap between designers and developers—and not just in their professions. Whether it’s the way they approach a project, their interests or favorite ice cream flavor, designers and developers are often polar opposites. Despite their differences, they have to work together. That’s where you can jump in.</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-paragraph" data-id="es-153">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-154'
	>
	As QA, your role is to serve as the middleman between the designer and developer. Encourage both sides to learn from each other and make each other’s job easier. The key is to make sure they are communicating. Which brings us to our next tip…</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-heading" data-id="es-156">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-157'
	>
	6. Communicate to collaborate</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-161"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-159">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-160'
	>
	Without developer-designer collaboration, implementation is kind of like shooting at a minuscule bull’s eye on a small target from a long distance…in the dark. If you’re skilled, you probably won’t miss the target completely. But why risk it? This is where good communication is key. Help them translate technical and design terms to each other until they become comfortable with the basic terminology. This will allow the team to solve problems efficiently and keep the project on track.</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-paragraph" data-id="es-162">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-163'
	>
	By fostering communication and collaboration between the designer, developer and the rest of the team, your project is set to be a booming success.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-167"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-165">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-166'
	>
	7. Update, update, update</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-170"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-168">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-169'
	>
	There will always be iterations in every project. Some big, some small, but changes are a fact of life.</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-paragraph" data-id="es-171">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-172'
	>
	At this stage, quite a few people are actively included in the project: designer, developers, QA, project manager, the client, and others. When any change occurs, all concerned parties should be properly informed.</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-paragraph" data-id="es-174">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-175'
	>
	Writing “@here” on a Slack channel does not qualify for “informed properly.” If the design changes, it’s important to update Zeplin and provide links to those screens where needed. It’s also vital to make sure that the project documentation isn’t scattered around and is always up-to-date. As QA, you should be aware of all changes and follow-up to make sure these updates are made.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-177">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-178'
	>
	8. Use real data simulation for testing</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-180">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-181'
	>
	In real life, users won’t be using software with dummy data. You’re not doing your designers any favors by using random test inputs. This is why it’s important to test out how the app will appear to the real user with real content in real situations. Sure, it will take more time, but your designer will be grateful and your product will be better.</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-paragraph" data-id="es-183">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-184'
	>
	Sometimes the app will be used in another language, in which the appearance could be significantly different. In this case, the UI issues could occur only with real data simulation. You won’t know if you don’t test it. So, don’t leave this one to chance. Use real data simulation when testing.</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-heading" data-id="es-186">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-187'
	>
	9. Conduct user testing while implementing</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-paragraph" data-id="es-189">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-190'
	>
	Prototype and implementation are never the same. This is why it’s important to conduct user testing with the “real thing” while implementing. Plus, this practice will provide valuable feedback for everyone involved. The designer can see his meticulously designed user experience in action; the QA can focus on the real user’s behavior, needs and expectations; and the developer can witness a custom UI element paying off, making all those long working hours totally worth it.</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-paragraph" data-id="es-192">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-193'
	>
	This process can also indicate if any further effort, changes or improvements would be worthwhile.</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-heading" data-id="es-195">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-196'
	>
	10. Give the designer an opportunity to test</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-200"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-198">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-199'
	>
	Of course, any conscientious tester will ensure the design is implemented properly and UI/UX are truly high quality. Even so, the designer should always have an opportunity to test any UI/UX-related tasks after implementation. That way, the need for big design reviews will be reduced, since most issues would be discovered and mended during this process. This is yet another way to ensure designers are included in the development process.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-203"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-201">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-202'
	>
	Wave your magic wand</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-206"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-204">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-205'
	>
	It’s important to work your magic throughout the project and to be the true fairy godmother to your teammates when they need you. If you follow these practices, your project is certain to live happily after ever.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/the-qa-fairy-godmother-10-practices-for-happily-ever-after/">The QA Fairy Godmother: 10 Practices for Happily Ever After</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>