<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Testing Archives - asap developers</title>
	<atom:link href="https://www.asapdevelopers.com/category/testing/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.asapdevelopers.com/category/testing/</link>
	<description>San Francisco Mobile App Developers</description>
	<lastBuildDate>Fri, 23 Feb 2024 20:45:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.asapdevelopers.com/wp-content/uploads/2017/04/favicon-asap-1.png</url>
	<title>Testing Archives - asap developers</title>
	<link>https://www.asapdevelopers.com/category/testing/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>QA Testing: Strategies for Ensuring Flawless Software Delivery</title>
		<link>https://www.asapdevelopers.com/qa-testing-strategies-for-ensuring-flawless-software-delivery/</link>
					<comments>https://www.asapdevelopers.com/qa-testing-strategies-for-ensuring-flawless-software-delivery/#respond</comments>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Fri, 09 Feb 2024 21:14:26 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=15383</guid>

					<description><![CDATA[<p>In the dynamic realm of software development, the role of Quality Assurance (QA) is pivotal in ensuring that software not only meets but exceeds user expectations. As the demand for...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/qa-testing-strategies-for-ensuring-flawless-software-delivery/">QA Testing: Strategies for Ensuring Flawless Software Delivery</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In the dynamic realm of software development, the role of Quality Assurance (QA) is pivotal in ensuring that software not only meets but exceeds user expectations. As the demand for flawless software delivery intensifies, implementing effective QA strategies becomes imperative. In this article, we will explore actionable strategies to integrate QA Testing seamlessly into the software development lifecycle, guaranteeing a flawless and user-centric end product.</p>
<h3><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-13506 size-medium" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_180920-featured-300x215.jpg" alt="QA Testing" width="300" height="215" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_180920-featured-300x215.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_180920-featured.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" /></strong></h3>
<h3><strong>Early and Continuous Testing: Laying the Foundation for Success</strong></h3>
<p>The mantra &#8220;test early, test often&#8221; remains a cornerstone of successful QA strategies. By incorporating testing at every stage of the development process, from unit testing to integration and acceptance testing, teams can identify and address issues proactively, minimizing the risk of critical bugs later in the cycle.</p>
<h3><strong>Automation: Accelerating the QA Testing Process with Precision</strong></h3>
<p>Automation is a game-changer in QA, allowing teams to execute repetitive tests efficiently and freeing up resources for more complex exploratory testing. From unit tests to regression tests, the implementation of automated testing frameworks significantly accelerates the testing process while ensuring precision and repeatability.</p>
<h3><strong>Comprehensive Test Coverage: Beyond the Basics</strong></h3>
<p>Achieving comprehensive test coverage involves going beyond the basic functionality and exploring edge cases, boundary conditions, and real-world scenarios. This strategy ensures that the software not only performs as expected under typical conditions but also remains robust in challenging and unforeseen situations.</p>
<h3><strong>Performance QA Testing: Ensuring Scalability and Responsiveness</strong></h3>
<p>A key aspect of QA is evaluating how software performs under varying loads and conditions. Performance testing, including load testing and stress testing, guarantees that the software can scale effectively and maintains responsiveness even during peak usage.</p>
<h3><strong>User-Centric Testing: Prioritizing the End-User Experience</strong></h3>
<p>QA strategies should be anchored in the end-user experience. User-centric testing, including usability testing and user acceptance testing, allows teams to validate that the software aligns with user expectations, preferences, and behaviors.</p>
<h3><strong>Collaboration and Communication: Bridging Gaps for Success</strong></h3>
<p>Effective communication and collaboration between QA, development, and other stakeholders are paramount. By fostering a culture of open communication, teams can share insights, identify potential challenges early on, and collectively work towards delivering high-quality software.</p>
<h3><strong>Continuous Learning and Adaptation: Embracing an Agile Mindset</strong></h3>
<p>QA strategies should be dynamic and adaptable. Embracing an Agile mindset involves continuous learning, iteration, and refinement of QA processes based on feedback and changing project requirements. This approach ensures that QA remains agile and responsive to the evolving needs of the development lifecycle.</p>
<h2>Conclusion on QA Testing Strategies</h2>
<p>In the pursuit of flawless software delivery, QA emerges as a linchpin, providing the assurance of quality that users demand. By implementing these strategies—testing early, leveraging automation, ensuring comprehensive test coverage, evaluating performance, prioritizing the user experience, fostering collaboration, and embracing adaptability—teams can embed QA seamlessly into their workflows. The result is not just error-free software but a user-centric, high-performing product that stands out in the competitive landscape of modern <a href="http://www.asapdevelopers.com">software development</a>.</p>

		<div id="fws_693973957afa9"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row top-level standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Software Development Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/qa-testing-strategies-for-ensuring-flawless-software-delivery/">QA Testing: Strategies for Ensuring Flawless Software Delivery</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.asapdevelopers.com/qa-testing-strategies-for-ensuring-flawless-software-delivery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to do mobile app pen testing</title>
		<link>https://www.asapdevelopers.com/how-to-do-mobile-app-pen-testing/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 15 Feb 2021 20:21:01 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=14234</guid>

					<description><![CDATA[<p>How to do mobile app pen testing App pen testing is an essential part of the mobile app development process. Checking for bugs, potential crashes, security vulnerabilities and user experience...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/how-to-do-mobile-app-pen-testing/">How to do mobile app pen testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>How to do mobile app pen testing</h1>
<p>App pen testing is an essential part of the mobile app development process. Checking for bugs, potential crashes, security vulnerabilities and user experience issues is key if you want your mobile app to succeed. As we’ve seen in previous articles, there are <a href="https://www.asapdevelopers.com/types-mobile-app-testing/">tests available for each aspect</a> of the development process and entire <a href="https://www.asapdevelopers.com/test-driven-development/">strategies that revolve around testing</a>. In this article, we’ll focus on testing your app’s security and cover the basics of pen or penetration testing.</p>
<h2>What is app pen testing?</h2>
<p><img decoding="async" loading="lazy" class=" wp-image-14241 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2021/02/image1-1-300x204.png" alt="app pen testing" width="510" height="347" srcset="https://www.asapdevelopers.com/wp-content/uploads/2021/02/image1-1-300x204.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/image1-1-1024x697.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/image1-1-768x522.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/image1-1.png 1417w" sizes="(max-width: 510px) 100vw, 510px" /></p>
<p>Pen testing is a simulated attack on your app that is used to check your mobile app’s defenses and detect any security weakness. Its aim is to exploit any vulnerabilities your app may have in order to check, within a safe environment, if it is possible to gain unauthorized access or carry out malicious activity within the app.</p>
<h2>Types of pen testing</h2>
<p>There are three possibilities when it comes to mobile app pen testing: black-box testing, white-box testing and grey-box testing. Let’s take a look at each one:</p>
<p>In <strong>black-box testing</strong>, the person testing your app has no knowledge of the internal design, structure or implementation of the app. Here, the tester would behave like a real-life potential attacker to see what damage can be done with only publicly-available information.</p>
<p><strong>White-box testing</strong> is pretty much the opposite. Here, the tester has access to credentials, the code’s structure and the product’s documentation. This type of testing is used to protect the mobile app against internal attacks.</p>
<p>Finally, <strong>grey-box testing</strong> is somewhere in the middle. The tester receives limited information; for example, login credentials. This would be a middle-ground between an internal and an external attack and is often seen as a good balance between authenticity (as an attacker will probably have done a bit of research and have some information on your product) and efficiency (as having some information means a smaller time investment).</p>
<h2><img decoding="async" loading="lazy" class=" wp-image-14243 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-300x212.png" alt="app pen testing 2" width="461" height="326" srcset="https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-300x212.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-1024x723.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-768x542.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-1536x1085.png 1536w, https://www.asapdevelopers.com/wp-content/uploads/2021/02/bugs-2048x1446.png 2048w" sizes="(max-width: 461px) 100vw, 461px" /></h2>
<h2>How is app pen testing done?</h2>
<p>Regardless of whether you use white, grey or black-box testing, there are several things to keep in mind when carrying out mobile app pen testing. Here are the basic steps and practices you should follow:</p>
<p>⦁ <strong>Create a testing plan</strong>: the first step for any successful mobile app pen test is to prepare a detailed plan. If you need a place to start, the Open Web Application Security Project® (OWASP) has a <a href="https://owasp.org/www-project-mobile-security-testing-guide/">security testing guide</a> that offers some guidance. You should consider an appropriate technique for each major attack surface (application mapping, client, network and server).</p>
<p>⦁ <strong>Choose the right tool</strong>s: picking the pen testing tools most suited for the task is just as important as choosing the appropriate techniques or methodology. There is a wide variety of tools available, both free and at a cost. The choice will largely depend on the environment you are using. Some of the tools available are <a href="https://ibotpeaches.github.io/Apktool/">Apktool</a>,  <a href="https://labs.f-secure.com/tools/drozer/">Drozer</a> and <a href="https://github.com/pxb1988/dex2jar">dex2jar</a> for Android and <a href="https://www.hopperapp.com/">Hopper</a>, <a href="https://cydia-app.com/">Cydia</a> and <a href="https://github.com/frida/frida/releases">Frida</a> for iOS.</p>
<p>⦁ <strong>Prepare the testing environment</strong>: once you have defined your plan and the tools to carry it out, you will need to prepare the pen testing environment. For iOS—given Apple’s tight security—it will be necessary to jailbreak the device. You can use <a href="https://cydia-app.com/evasi0n/">evasi0n</a> to help you do this. For Android, you can simply install <a href="https://oneclickroot.com/">One Click Root</a> to root the device.</p>
<p>⦁ <strong>Launch your attacks</strong>: as mentioned above, each major attack surface should be covered by pen testing. When it comes to the server, testing should include authentication mechanisms, file uploads, cross-origin resource sharing and open redirects. During network attacks, you should test authentication, authorization and session management mechanisms as well as encryption protocols.</p>
<p>⦁ <strong>Carry out binary and file analysis</strong>: when it comes to client attacks, you should run both binary and file-level analysis. In this case, testing should include buffer overflows and checking for potential SQL injection-based attacks. IDA Pro and Hopper are some of the tools available to help you with this particular task.</p>
<p>⦁ <strong>Document your work and keep testing</strong>: you should keep up to date with security vulnerabilities and continuously improve your skills for future pen tests. If you are in need of some assistance, <a href="http://damnvulnerableiosapp.com/">DVIA</a> and <a href="https://sourceforge.net/projects/mobisec/">Mobisec</a> are some of the websites that offer tools to help you keep working on your pen-testing skills.</p>
<p>&nbsp;</p>
<h2>Final thoughts</h2>
<p>As cyber-attacks continue to grow, mobile app security has become a priority. Pen testing is an excellent tool when it comes to covering your bases and, when wisely planned, it will ensure you prevent unauthorized access or malicious activity. We hope this article has given you a place to get started.</p>

		<div id="fws_693973957bca4"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Mobile App Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/how-to-do-mobile-app-pen-testing/">How to do mobile app pen testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mobile App Beta Testing</title>
		<link>https://www.asapdevelopers.com/mobile-app-beta-testing/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 28 Sep 2020 15:52:09 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13555</guid>

					<description><![CDATA[<p>Beta testing for mobile apps In previous articles, we’ve covered the importance of testing, the different types of testing throughout a mobile app’s lifespan, and how to put testing at...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/mobile-app-beta-testing/">Mobile App Beta Testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong><em>Beta testing for mobile apps</em></strong></h2>
<p>In previous articles, we’ve covered the importance of testing, the <a href="https://www.asapdevelopers.com/types-mobile-app-testing/">different types of testing</a> throughout a mobile app’s lifespan, and how to put <a href="https://www.asapdevelopers.com/test-driven-development/">testing at the center</a> of your development strategy. Now, we’ll focus on a specific type of testing that ensures your finished product is the best it can possibly be: mobile app beta testing.</p>
<h2><strong><em>What is beta testing?</em></strong></h2>
<p>Beta or user acceptance testing is the last step before launching your product into the market and making it available to all end-users. This type of testing is usually carried out by the customer in the actual environment before the release of the mobile app. Moreover, it is normally carried out by a specific number of end-users who provide feedback to make any necessary final adjustments or improvements to the mobile app.</p>
<h2><strong><em><img decoding="async" loading="lazy" class="aligncenter wp-image-13570 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/MobileAppBetaTesting.jpg" alt="Mobile App Beta Testing" width="625" height="453" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/MobileAppBetaTesting.jpg 625w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/MobileAppBetaTesting-300x217.jpg 300w" sizes="(max-width: 625px) 100vw, 625px" /></em></strong></h2>
<h2><strong><em>How is it different from alpha testing?</em></strong></h2>
<p>Alpha testing is the step right before beta testing and is mostly focused on testing the mobile app for bugs. The alpha version of a mobile app tends to be less stable and include fewer features. Therefore, this version is meant to be tested by your in-house team (developers, designers and quality assurance specialists). Alpha testing is also usually a mix of <a href="https://www.softwaretestinghelp.com/white-box-testing-techniques-with-example/">white</a> and <a href="https://softwaretestingfundamentals.com/black-box-testing/#:~:text=BLACK%20BOX%20TESTING%2C%20also%20known,%2Dfunctional%2C%20though%20usually%20functional.">black-box testing</a>, while mobile app beta testing tends to be solely black-box. As you can see, both types of testing focus on different areas and are carried out by different people.</p>
<h2><strong><em>Why should you beta test?</em></strong></h2>
<p>As we’ve seen, before an app is launched into the market, it generally goes through extensive testing at the hands of the development team. Their aim is to make sure that there are no bugs and that the app conforms to its expected result. However, not only is it difficult to test every possible scenario beforehand, but there is also an aspect that is not so easy to predict: how users will react to your app. So, if you want to make sure that your app meets users’ needs and that all of its features are useful, mobile app beta testing is key.</p>
<h2><strong><em>What should you consider?</em></strong></h2>
<p>Before launching the beta testing stage, you will need to figure out its scope. These are some of the decisions you’ll have to make before you start:</p>
<ul>
<li><strong>Closed or open testing: </strong>closed beta testing means testing is restricted and you choose exactly who will have access to the app, while open testing means any user can potentially test your product.</li>
<li><strong>Type of tester</strong>: the type of tester will depend on your goals or priorities. Do you just want to detect bugs? Are you looking to test how your target audience reacts to a specific feature? Do you want to earn some good PR? You may be looking for technical, focused or marketing beta testers depending on your answer to these questions.</li>
<li><strong>Number of testers</strong>: you should consider that not all testers will thoroughly test your app and, therefore, you should aim higher than the actual number of testers you may need. To get enough feedback, you should have at least 50 testers. If budget allows for more, the better, but you should also make sure not to have more information than you can process.</li>
<li><strong>Where to find testers</strong>: you can find testers on social media or through specialized websites. When it comes to social media, you can find testers on <a href="https://twitter.com/home">Twitter</a> through specific hashtags or on <a href="https://www.reddit.com/">Reddit</a> by looking into specific subreddits. Regarding specialized sites, you can use <a href="http://betatesters.io/?src=InstabugBlog&amp;content=betatestbeginnersguide">BetaTesters</a> or <a href="https://erlibird.com/">Erli Bird</a>, for example, to recruit testers.</li>
<li><strong>Length of testing</strong>: a beta test can be neither too long nor too short. If it’s too short, you’ll risk not getting sufficient feedback. If it’s too long, your testers may get discouraged and lose interest. One or two months is usually a good time frame to get the information you need without jading users. However, the time period will depend on what your goals and resources are, as well as the testers’ limitations.</li>
<li><strong>What to offer testers</strong>: the most common currency in beta testing is the product you are testing or any of its byproducts, such as gift cards for in-app purchases. You can also offer gift cards for certain stores or websites to encourage potential testers.</li>
</ul>
<p>Properly organizing the mobile app beta testing process will help make sure you get the best results. Other aspects you should consider include establishing an onboarding process for testers and setting up an easy way to report issues.</p>
<h2><strong><em><img decoding="async" loading="lazy" class="size-medium wp-image-13558 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_250920-featured-300x215.jpg" alt="Beta testing for mobile apps" width="300" height="215" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_250920-featured-300x215.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/Asap_Cabezal_Testing_250920-featured.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" /></em></strong></h2>
<h2><strong><em>iOS vs. Android mobile app beta testing</em></strong></h2>
<p>When it comes to the app stores, iOS offers <a href="https://developer.apple.com/testflight/">TestFlight</a> for beta testing, while Android uses the <a href="https://support.google.com/googleplay/android-developer/answer/3131213?hl=en">Google Play Console</a>. Through your Apple Developer Account, TestFlight lets you manage beta testing for up to 100 apps and include up to 10,000 testers. It also makes it easy to invite users through iTunes Connect. On the other hand, the Google Play Console lets you run internal, closed or open tests, and users will need a Gmail or Google Apps account to take part in the testing process.</p>
<p>There are also third-party testing platforms available, such as <a href="https://www.testfairy.com/">Test Fairy</a> and <a href="https://www.appaloosa.io/application-beta-testing/">Appaloosa</a>. These may come in handy as they support both iOS and Android and offer additional features.</p>
<h2><strong><em>Final thoughts on mobile app beta testing</em></strong></h2>
<p>Beta testing for mobile apps takes work before, during and after the actual testing takes place. However, the payoff is worth it as, when done right, you can get valuable information to improve your mobile app. If you want a superb user experience and are looking to make sure your app succeeds, mobile app beta testing should definitely be part of your development plan.</p>

		<div id="fws_693973957cc6f"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Mobile App Development</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/mobile-app-beta-testing/">Mobile App Beta Testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Python test-driven development</title>
		<link>https://www.asapdevelopers.com/python-test-driven-development/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 21 Sep 2020 12:43:16 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13493</guid>

					<description><![CDATA[<p>The importance of Good Code  Did you know code can smell? Do you use Python TDD (Python test-driven development), BDD (behavior-driven development) or any other strategies to test your code?...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/python-test-driven-development/">Python test-driven development</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong>The importance of Good Code </strong></h2>
<p><span style="font-weight: 400;">Did you know code can smell? Do you use Python TDD </span><span style="font-weight: 400;">(Python test-driven development)</span><span style="font-weight: 400;">, BDD </span><span style="font-weight: 400;">(behavior-driven development)</span><span style="font-weight: 400;"> or any other strategies to test your code? If you aren’t testing or writing clean code, your code reviews may look something like this:</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-full wp-image-13521 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD001.jpg" alt="Good Code - Bad Code" width="284" height="209" /></span></p>
<p><span style="font-weight: 400;">Bad code causes problems, which may come in the form of introducing too many bugs.</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-full wp-image-13520 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD002.jpg" alt="Bugs Test-Driven Development" width="236" height="132" /></span></p>
<p><span style="font-weight: 400;">And we all know the costs of having bugs in your code… </span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-full wp-image-13519 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD003.jpg" alt="" width="218" height="154" /></span></p>
<p><span style="font-weight: 400;">In this article, we’ll go over the consequences of bad code and how to avoid it. </span></p>
<h2><strong>The total cost of owning a mess</strong></h2>
<p><span style="font-weight: 400;">Over the span of a year or two, teams that were moving very fast at the beginning of a project can find themselves moving at a snail’s pace. Every change they make breaks two or three other parts of the code. No change is trivial. </span></p>
<p><span style="font-weight: 400;">As the mess builds up, the team’s productivity continues to decrease. And, as productivity decreases, management does the only thing they can: they add more staff to the project in hopes of turning things around. </span></p>
<p><span style="font-weight: 400;">However, that new staff is not versed in the system’s design. In fact, they, and everyone else on the team, are under horrific pressure to increase productivity. As a result, they all make a bigger mess, driving the productivity ever further toward zero.</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-medium wp-image-13518 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD004-300x213.jpg" alt="Productivity vs Time" width="300" height="213" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD004-300x213.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD004.jpg 354w" sizes="(max-width: 300px) 100vw, 300px" /></span></p>
<p><span style="font-weight: 400;">All developers with more than a few years of experience know that messy code slows them down. And yet, all developers feel the pressure to write messy code in order to meet deadlines. In short, they don’t take the time to go fast! </span></p>
<p><span style="font-weight: 400;">True professionals know that they will not make a deadline by making a mess. On the contrary, a mess will slow you down instantly and force you to miss the deadline. The only way to make it on time—the only way to go fast—is to keep the code as clean as possible at all times.</span></p>
<h2><strong>The Grand Redesign in the Sky</strong></h2>
<p><span style="font-weight: 400;">If you&#8217;ve been a victim of messy legacy code, you&#8217;re not alone. In fact, most developers have been through similar experiences, and it&#8217;s a cycle that can be hard to break, as Robert C Martin describes it in his book &#8220;Clean Code: A Handbook of Agile Software Craftsmanship&#8221;.</span></p>
<p><span style="font-weight: 400;">“[Management eventually authorizes] the grand redesign in the sky.</span></p>
<p><span style="font-weight: 400;">A new tiger team is selected. [&#8230;] They get to start over and create something truly beautiful. [&#8230;] Everyone else must continue to maintain the current system.</span></p>
<p><span style="font-weight: 400;">Now the two teams are in a race. [&#8230;] Management will not replace the old system until the new system can do everything that the old system does. </span></p>
<p><span style="font-weight: 400;">This race can go on for a very long time. I’ve seen it take 10 years. And by the time it’s done, the original members of the tiger team are long gone, and the current members are demanding that the new system be redesigned because it’s such a mess.</span></p>
<p><span style="font-weight: 400;"> If you have experienced even one small part of the story I just told, then you already know that spending time keeping your code clean is not just cost effective; it’s a matter of professional survival.”</span></p>
<p style="text-align: right;"><em>Robert C. Martin Clean Code series</em></p>
<h2><strong>Python test-driven development</strong></h2>
<p><span style="font-weight: 400;">So, you’ve somehow ended up with bad code. What now? Don&#8217;t worry! This can be fixed. However, it may take time, so start as soon as you possibly can! </span></p>
<p><span style="font-weight: 400;">Give your development team the tools that they need to fix those bugs much faster and clean up the current project.</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-medium wp-image-13517 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005-298x300.jpg" alt="Bugs Test-Driven Development" width="298" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005-298x300.jpg 298w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005-150x150.jpg 150w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005-100x100.jpg 100w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005-140x140.jpg 140w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD005.jpg 369w" sizes="(max-width: 298px) 100vw, 298px" /></span></p>
<p><span style="font-weight: 400;">This can be done with a very interesting strategy called </span><a href="https://www.asapdevelopers.com/test-driven-development/"><span style="font-weight: 400;">test-driven development</span></a><span style="font-weight: 400;">. In TDD, unit tests are designed, developed and run before starting work on each web or mobile app functionality with the aim to make the code simpler, clearer and bug-free.</span></p>
<h2><strong>Test Automation</strong></h2>
<p><span style="font-weight: 400;">Another great tool when it comes to testing is test automation.</span></p>
<h3><b>What are automated tests?</b></h3>
<p><span style="font-weight: 400;">Automated tests mean the testing work is done for you by the system. You create a set of tests once, and then as you make changes to your app, you can check that your code still works as you originally intended, without having to perform time consuming manual testing.</span></p>
<h3><b>What are the benefits of automated tests?</b></h3>
<ul>
<li>
<h4><b>They will save you time</b></h4>
</li>
</ul>
<p><span style="font-weight: 400;">This is especially true when automated tests could do this for you in seconds. If something’s gone wrong, tests will also assist in identifying the code that’s causing the unexpected behavior.</span></p>
<ul>
<li>
<h4><b>They don’t just identify problems, they prevent them</b></h4>
</li>
</ul>
<p><span style="font-weight: 400;">They light up your code from the inside, and when something goes wrong, they focus light on the part that has failed, even if you hadn’t realized something was wrong.</span></p>
<ul>
<li>
<h4><b>They make your code more attractive</b></h4>
</li>
</ul>
<p><span style="font-weight: 400;">As Jacob Kaplan-Moss, one of Django’s original developers, says: “Code without tests is broken by design.”</span></p>
<ul>
<li>
<h4><b>They help teams work together</b></h4>
</li>
</ul>
<p><span style="font-weight: 400;">Tests guarantee that coworkers don’t inadvertently break your code (and that you don’t break theirs without realizing either). If you want to make a living as a Django programmer, you must be good at writing tests!</span><span style="font-weight: 400;"><br />
</span></p>
<h3><strong>The tools that make our testing easier </strong></h3>
<p><a href="https://www.asapdevelopers.com/python-backend-language/"><span style="font-weight: 400;">Why do we use Python? </span></a></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Python is easy to work with and easy to read</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s very popular</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s great for machine learning</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s the fastest-growing major backend language</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It makes our day-to-day work easier and more enjoyable</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It makes TDD much easier.</span></li>
</ul>
<p><a href="https://www.asapdevelopers.com/django-reasons-why/"><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="aligncenter wp-image-13515 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD007.jpg" alt="Test-Driven Development with Python" width="126" height="181" /></span></a></p>
<p><a href="https://www.asapdevelopers.com/django-reasons-why/"><span style="font-weight: 400;">Why do we use Django? </span></a></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s built with Python</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It has an excellent community</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s highly secure</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It has a great set of libraries</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s good for SEO</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s highly scalable</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s based on the DRY principle </span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It includes the Django default admin panel</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">It’s portable</span></li>
</ul>
<p><a href="https://www.asapdevelopers.com/three-python-tools-automate-testing/"><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-medium wp-image-12425 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/04/django001-300x104.jpg" alt="django" width="300" height="104" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/04/django001-300x104.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/04/django001-600x208.jpg 600w, https://www.asapdevelopers.com/wp-content/uploads/2020/04/django001.jpg 602w" sizes="(max-width: 300px) 100vw, 300px" /></span></a></p>
<p><a href="https://www.asapdevelopers.com/three-python-tools-automate-testing/"><span style="font-weight: 400;">Tests in Python</span></a></p>
<p><span style="font-weight: 400;">According to the Python website, the </span><a href="https://docs.python.org/3/library/unittest.html#module-unittest"><span style="font-weight: 400;">unittest</span></a><span style="font-weight: 400;"> unit testing framework “supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework.”</span></p>
<p><a href="https://selenium-python.readthedocs.io/"><span style="font-weight: 400;">Selenium with Python </span></a></p>
<p><span style="font-weight: 400;">In an agile environment, it’s important for developers to push changes quickly. But, with every change that requires a modification to the frontend, they need to run appropriate cross browser tests. While a small project may make due with </span><a href="https://www.browserstack.com/guide/manual-vs-automated-testing-differences"><span style="font-weight: 400;">manual testing</span></a><span style="font-weight: 400;">, an increasing number of history points make a case for automation testing.</span></p>
<p><img decoding="async" loading="lazy" class="size-medium wp-image-13535 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-300x73.png" alt="Selenium with Python - Test-driven development" width="300" height="73" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-300x73.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-1024x251.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-768x188.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-1536x376.png 1536w, https://www.asapdevelopers.com/wp-content/uploads/2020/09/selenium_logo_large-2048x502.png 2048w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p><b>Here is an example of how these tools combined make our lives easier</b></p>
<p><script src="https://gist.github.com/JoaquinAcuna97/1178fce1f8d8a12be1217218e4606f24.js"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></script></p>
<p><span style="font-weight: 400;">Code gist: </span><a href="https://gist.github.com/JoaquinAcuna97/1178fce1f8d8a12be1217218e4606f24"><span style="font-weight: 400;">https://gist.github.com/JoaquinAcuna97/1178fce1f8d8a12be1217218e4606f24</span></a><span style="font-weight: 400;"> </span></p>
<h2><strong>Writing test for legacy code</strong></h2>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="size-full wp-image-13514 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/09/DjangoTDD008.jpg" alt="Let's do this" width="175" height="131" /></span></p>
<p><span style="font-weight: 400;">What happens with<a href="https://speakerdeck.com/pycon2018/justin-crown-what-is-this-mess-writing-tests-for-pre-existing-code-bases?slide=82"> legacy code</a>? How should you proceed in these cases?</span></p>
<p><b>Boy scouts rules: Test what you touch</b></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Write a test that asserts current behavior </span><b>before you touch the code</b></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Write a test that asserts new/modified behavior and </span><b>see it fail</b></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Do coding stuff</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Check if your test pass</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Profit significantly</span></li>
</ul>
<p><b>Unit tests should:</b></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Cover the smallest piece of code possible</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Run fast</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Not use a database, file, etc.</span></li>
</ul>
<p><span style="font-weight: 400;">Now, let’s take a look at the different situations you may come across with legacy code and what you should when facing each one:</span></p>
<p><b>Assignment 1: Feature request (altering an existing functionality)</b></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Test existing functionality (integration testing)</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Test new functionality (integration testing)</span></li>
</ol>
<p><b>Assignment 2: Battle a BUG in a code that touches the world</b></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Read the code but </span><b>don&#8217;t touch it</b></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Get the class in a test harness</span></li>
</ol>
<p><span style="font-weight: 400;">2.5. Break dependencies?</span></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Create a subclass</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Test out </span><b>the view</b></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Mock</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Make the world a better place</span></li>
</ol>
<p style="text-align: left;"><b>Assignment 3: Add new features to existing (and unruly) ones</b></p>
<table class=" alignleft">
<tbody>
<tr>
<td colspan="2"><b>Option 1:</b> <span style="font-weight: 400;">Just write the damn code in the existing method</span></td>
</tr>
<tr>
<td><b>Advantages</b><b>:</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Quickest way to get the job done</span></li>
</ul>
</td>
<td><b>Disadvantages</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Code is untested</span></li>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Highly likely to break something</span></li>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">You just made the code even worse</span></li>
</ul>
</td>
</tr>
<tr>
<td colspan="2"><b>Option 2:</b> <span style="font-weight: 400;">Mock your way through it</span></td>
</tr>
<tr>
<td><b>Advantages</b><b>:</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Existing code is fully tested without changing anything</span></li>
</ul>
</td>
<td><b>Disadvantages</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Difficult to implement (tons of mocks for a single test)</span></li>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Tests are brittle (tied to the implementation)</span></li>
</ul>
</td>
</tr>
<tr>
<td colspan="2"><b>Option 3:</b> <span style="font-weight: 400;">Refactor</span></td>
</tr>
<tr>
<td><b>Advantages</b><b>:</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Code is easier to read and work with</span></li>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Code is easier to test</span></li>
</ul>
</td>
<td><b>Disadvantages</b></p>
<ul>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Might break something</span></li>
<li style="font-weight: 400; text-align: left;"><span style="font-weight: 400;">Not directly required to implement features</span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2></h2>
<h2 style="text-align: left;"><strong>Final Thoughts on Python test-driven development</strong></h2>
<p><span style="font-weight: 400;">Python test-driven development may be time consuming and testing legacy code is definitely not an easy thing to do, but it&#8217;s important to know how to tackle these tasks, especially when your codebase starts to show symptoms of bad code.</span></p>

		<div id="fws_693973957e4c0"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/python-development-company/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Python Development</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/python-test-driven-development/">Python test-driven development</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Types of mobile app testing</title>
		<link>https://www.asapdevelopers.com/types-mobile-app-testing/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 13 Jul 2020 15:30:43 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13145</guid>

					<description><![CDATA[<p>Types of mobile app testing During and after the development process, there is a series of tests any good mobile app must undergo to ensure its quality. Mobile App Testing...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/types-mobile-app-testing/">Types of mobile app testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2><strong>Types of mobile app testing</strong></h2>



<p>During and after the development process, there is a series of tests any good mobile app must undergo to ensure its quality. Mobile App Testing can be divided into two broad categories—functional and non-functional—which encompass dozens of different tests depending on the project’s development stage and the specific item to be tested. In this article, we’ll focus on the difference between functional and non-functional testing as well as the different tests that fall under each category.</p>



<h2><strong>Functional vs non-functional mobile app testing</strong></h2>



<p><a href="https://en.wikipedia.org/wiki/Functional_testing">Functional testing</a> focuses on verifying those aspects of a mobile app that relate to performing a given function. Each functionality is tested to make sure it is working properly and meets the established requirements. Moreover, functionalities should be tested as a whole to make sure they don’t have an adverse effect on each other, and they also should be tested by users to ensure the app’s success.</p>



<p><a href="https://en.wikipedia.org/wiki/Non-functional_testing">Non-functional</a> testing, on the other hand, focuses on things such as usability, performance and security. It’s not a matter of whether the various functionalities work or not, but of <em>how </em>they work. Are the app’s features easy to accomplish? Can the user’s data be compromised? Will the app work on all devices? Those are the questions non-functional testing tries to answer.</p>



<p>To summarize, functional testing is based on the customer’s requirements and is the one that should be implemented first, while non-functional testing is based on the customer’s expectations and is done after dealing with the functional side of the mobile app.</p>



<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-13221 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/07/MobileAppTesting01.jpg" alt="Mobile Phones - Mobile App Testing" width="602" height="401" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/07/MobileAppTesting01.jpg 602w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/MobileAppTesting01-300x200.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/MobileAppTesting01-600x401.jpg 600w" sizes="(max-width: 602px) 100vw, 602px" /></strong></h2>
<h2><strong>Examples of functional mobile app testing</strong></h2>



<h3>1. Unit testing</h3>



<p>This type of testing revolves around a specific component or module of the mobile app. The purpose of unit testing is to validate that each unit (smallest testable part) of your app works as expected. <a href="https://www.asapdevelopers.com/unit-testing-best-javascript-frameworks/">Unit testing</a> is essential to detect issues early on and avoid delays or complications towards the end of the project. It also makes the code more reliable and reusable.</p>



<h3>2. Integration testing</h3>



<p>Once all of your units are completed and have been tested on their own, it will be necessary to combine them (if you haven’t already done so as each new one is ready). Once they have all been integrated, it is time to verify they work together as expected. This is what integration testing is all about: making sure all combined components or modules are working together properly.</p>



<h3>3. System testing</h3>



<p>System testing goes a step further than integration testing by verifying the complete integrated system is working as it should. It doesn’t just stick to component interaction, but also looks into the system as a whole, making sure it meets all of the requirements.<br /><br /></p>



<h3>4. Smoke testing</h3>



<p>Smoke testing is usually carried out after a new build of a mobile app is made to make sure the build is stable and it is safe to carry out more complex and expensive testing. A smoke test checks the basic functionality of the app and should be quick to execute.</p>



<h3>5. Beta/User acceptance testing</h3>



<p>Beta or user acceptance testing is usually carried out by the customer in the actual environment before the release of the mobile app. It is normally carried out by a specific number of end-users who provide feedback to make any final adjustments or improvements to the app. This is the last step before launching the product into the market and making it available to all end-users.</p>



<h3>6. Regression testing</h3>



<p>This type of testing is used to ensure that any recent changes done to your mobile app have not had an adverse effect on the existing features. Regression testing is carried out when adding a new feature or optimizing the existing code. It is usually done through automation as, otherwise, it could prove quite costly and time-consuming.</p>



<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-13205 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/07/testing-featured.jpg" alt="Types of mobile app testing" width="600" height="430" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/07/testing-featured.jpg 600w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/testing-featured-300x215.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></strong></h2>
<h2><strong>Examples of non-functional mobile app testing</strong></h2>



<h3>1. Usability testing</h3>



<p>A usability test seeks to check how easy it is for users to interact with the product. Users are typically given different scenarios and tasks to complete within the app and asked to provide feedback that helps identify potential usability issues. If a user gets stuck or takes too long to complete a task, then the user interface and system navigation should be checked.</p>



<h3>2. Compatibility testing</h3>



<p>This type of testing is aimed at checking that your mobile app can run on different operating systems (such as iOS and Android), hardware configurations, devices (for example, devices with different resolution, storage and screen size) and networks (with varying speed, bandwidth and capacity).</p>



<h3>3. Localization testing</h3>



<p>If your mobile app is meant to be launched in different countries and languages, it will need to be adapted to each of them. A localization test makes sure the linguistic and cultural aspects of each of the target markets have been taken into account.</p>



<p>This type of testing can actually cover both functional and non-functional aspects of your app, depending on the bugs you may find (e.g., an adapted calendar not working properly is an example of a functional aspect, while US spelling for a UK product is an example of a non-functional one).</p>



<h3>4. Performance testing</h3>



<p>Performance testing is used to verify that your mobile app meets the established performance requirements, such as those regarding speed, stability, reliability and responsiveness. Types of performance testing include load, stress, spike and volume testing. These tests are usually costly to carry out, but can be very beneficial.</p>



<h3>5. Security testing</h3>



<p>This type of testing makes sure there are no vulnerabilities in your mobile app. It is run to find potential weaknesses to internal and external threats and is particularly important for apps that request sensitive information from users. Types of security testing include vulnerability scanning, penetration testing, and security scanning and auditing.</p>



<h3>6. Recovery testing</h3>



<p>Recovery testing helps you verify recoverability from crashes or hardware failures. To carry out this test, you need to manually simulate a system failure and check how the mobile app recovers from it.</p>



<h2><strong>Mobile app testing final thoughts</strong></h2>



<p>There is an endless number of tests that can and/or should be run during the development process and these are just the tip of the iceberg. Although there will be some overlap, each project is different and will require its own specific set of tests depending on its scope and requirements. Understanding and factoring each of them, both when it comes to time and budget, is key to deliver a quality mobile app (or any piece of software) in a timely manner.</p>

		<div id="fws_693973957fa36"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Native Mobile App Developers</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/types-mobile-app-testing/">Types of mobile app testing</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What is test-driven development?</title>
		<link>https://www.asapdevelopers.com/test-driven-development/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 29 Jun 2020 13:54:36 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=12795</guid>

					<description><![CDATA[<p>Test-driven development We all know testing is an essential part of the development process. However, there is an increasingly popular development style that revolves solely around testing. In this article,...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/test-driven-development/">What is test-driven development?</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2>Test-driven development</h2>



<p>We all know testing is an essential part of the development process. However, there is an increasingly popular development style that revolves solely around testing. In this article, we’d like to focus on that style, test-driven development, and what it entails, as well as what its advantages and disadvantages are, so you can assess if it’s the right method for your project. <img alt="" /></p>





<h2>What is test-driven development?</h2>



<p>Test-driven development (or TDD) seeks to keep coding, testing and design very closely related by writing a test before actually writing any of the app’s code. <a href="http://softwaretestingfundamentals.com/unit-testing/#:~:text=UNIT%20TESTING%20is%20a%20level,and%20usually%20a%20single%20output.">Unit tests</a> are designed, developed and run before starting work on each web or mobile app functionality with the aim to make the code simpler, clearer and bug-free.</p>



<p>The <a href="http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd#:~:text=Over%20the%20years%20I%20have,and%20compilation%20failures%20are%20failures.">three basic rules of test-driven development</a> are simple: you can’t write code that is not meant to make a failed <a href="https://www.asapdevelopers.com/unit-testing-best-javascript-frameworks/" target="_blank" rel="noopener noreferrer">unit test</a> pass; if you’ve written one unit test that fails, no more tests are needed at that stage; and you only need to write enough code to pass the unit test.</p>



<h2>What does the test-driven development cycle look like?<img alt="" /></h2>





<p>TDD has a set cycle made up of the following steps:</p>



<ol type="1">
<li><strong>Add a test</strong>: as we’ve discussed, every new feature begins with a test, so, logically, the first step is to create a test for that feature.</li>
<li><strong>Run all existing tests and check if the new one fails</strong>: running all tests helps you make sure there are no issues with the test framework and that the new test does not pass without the code you have not added yet. If the new test passes or any of the previous ones do not, you will need to look into it before moving forward.</li>
<li><strong>Write the relevant code</strong>: once you know the corresponding test failed, you can proceed to write the code for that feature. At this stage, the code doesn’t need to be flawless, it just needs to be enough to pass the test; you can keep working on it later on.</li>
<li><strong>Run the tests again</strong>: once the basic code is done, it’s time to run the tests again to check if the code now passes the new test. If it does, it means it meets the test requirements and doesn’t adversely affect any other features. If it doesn’t, the code will need to be adjusted accordingly.</li>
<li><strong>Refactor your code</strong>: this “final” stage should be focused on <a href="https://www.asapdevelopers.com/python-code-complexity/" target="_blank" rel="noopener noreferrer">cleaning up your code</a>, which means improving on it while making sure it still passes all tests. Here, you should also make sure to remove any code duplication.</li>
<li><strong>Start over with the next feature</strong>: once you’re done with your new feature, it’s time to move on to the next, which means the cycle will start over from step 1.</li>
</ol>



<p>Like any other development methodology, TDD has its pros and cons, which we’ll focus on below.<img alt="" /></p>





<h2><img decoding="async" loading="lazy" class="size-medium wp-image-13138 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-300x300.jpg" alt="Pros and Cons of test-driven development" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-300x300.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-150x150.jpg 150w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-100x100.jpg 100w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-140x140.jpg 140w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment-350x350.jpg 350w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/TestDrivenDevelopment.jpg 402w" sizes="(max-width: 300px) 100vw, 300px" /></h2>
<h2>What are the benefits of TDD?</h2>



<ul>
<li>Although it may initially take a bit of extra effort and time, the final product will have fewer bugs and defects and TDD will expedite app development in the long-term.</li>
<li>Moving forward in smaller stages tends to be more productive than doing so in larger blocks.</li>
<li>Because potential issues have been dealt with early on, bugs are cheaper to fix and a web or mobile app’s final stages will take less effort and stress.</li>
<li>Some experts claim test-driven development also leads to better design and higher technical quality.</li>
<li>TTD makes refactoring smoother as you already have a set of tests to find any breaks in the code.</li>
<li>The tests can make up documentation for the app development process, which means the code will be that much easier to understand. Consequently, anyone in your team can pick things up if needed.</li>
<li>TTD can help developers look at the web or mobile app from the end user’s point of view, improving the usability of the final product and increasing the chances of success.</li>
</ul>



<h2>What are the disadvantages of TDD?</h2>



<ul>
<li>As we’ve mentioned, it takes more effort and time at the beginning of the process, which might make the first few stages of development feel quite slow.</li>
<li>There might be considerable refactoring issues brought on by not thinking ahead.</li>
<li>If the design keeps changing, you may end up with a lot of tests for features that are no longer needed, thus wasting a considerable amount of time.</li>
<li>Writing good tests that cover the right points can be challenging and you may end up with trivial ones.</li>
<li>You have to find the right balance when it comes to the number of tests or you might risk running too many or too few.</li>
</ul>



<h2><img decoding="async" loading="lazy" class="size-medium wp-image-12888 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/06/Asap_img_TTD_260620-300x215.jpg" alt="What is test-driven development?" width="300" height="215" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/06/Asap_img_TTD_260620-300x215.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/Asap_img_TTD_260620.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" /></h2>
<h2>Final thoughts</h2>



<p>There are many methodologies and techniques when it comes to app development. Picking the right one for your project is all about weighing the pros and cons and figuring out your priorities. Test-driven development may be more time-consuming to begin with, but it definitely pays off in the long-term with smoother results. We hope this article has helped you figure out whether TDD is the right fit for you.</p>

		<div id="fws_6939739580be7"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/san-francisco-app-developers/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>San Francisco Developers</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/test-driven-development/">What is test-driven development?</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Best JavaScript Unit Testing Frameworks</title>
		<link>https://www.asapdevelopers.com/unit-testing-best-javascript-frameworks/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Sat, 20 Apr 2019 17:38:33 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=9744</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/unit-testing-best-javascript-frameworks/">Best JavaScript Unit Testing Frameworks</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="fws_693973958142c"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h2><strong>What is unit testing?</strong></h2>
<p>A unit is the smallest part of a piece of software you can actually test (for example, an individual function or procedure). Unit testing is an essential step of the software testing process. Its goal is to test individual units or components of source code and validate whether each of them performs as expected.</p>
<p>In this article, we’d like to emphasize the importance of unit testing and recommend a couple of frameworks that will help you out specifically with JavaScript unit testing. We’ll cover the basics of testing tools such as Jasmine and Mocha and focus a bit more on Jest and Enzyme for React.</p>
<p><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-9745 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting01.jpg" alt="JavaScript Code - Best JavaScript Unit Testing Frameworks" width="606" height="343" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting01.jpg 606w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting01-300x170.jpg 300w" sizes="(max-width: 606px) 100vw, 606px" /></strong></p>
<h2><strong>Why is unit testing important?</strong></h2>
<p>Unit testing makes it possible to identify problems earlier on, which reduces the cost of fixing them. It also makes development faster, codes more reliable, and integration of modules easier. As a result, it reduces the number of bugs and makes the whole process less time-consuming.</p>
<p>Although there are some challenges to unit testing, such as needing to test doubles and finding dependencies, in the long run, tackling unit testing is definitely worthwhile.</p>
<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-9747 size-medium" src="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-300x300.jpg" alt="Checklist" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-300x300.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-150x150.jpg 150w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-100x100.jpg 100w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-500x500.jpg 500w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02-350x350.jpg 350w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting02.jpg 606w" sizes="(max-width: 300px) 100vw, 300px" /></strong></h2>
<h2><strong>Jasmine vs. Mocha</strong></h2>
<p><a href="https://jasmine.github.io/">Jasmine</a> was created around 2008. This free unit testing tool is a development framework designed to help you test JavaScript code. It uses behavior-driven testing and supports asynchronous specifications. Its syntax is simple and it does not require any other JavaScript frameworks nor a DOM.</p>
<p>Released around 2011, <a href="https://mochajs.org/">Mocha</a> is a slightly newer open-source testing framework that runs on Node.js and in the browser and is hosted in GitHub. Its tests run serially, which means reporting is flexible and accurate. Other features include test coverage report, report test duration, JavaScript API for running tests, and browser support.</p>
<p>Some of the differences between these two are that Jasmine has a built-in assertion library and a spy framework, while Mocha does not. An upside for Mocha, however, is that it excels at BDD test definitions.</p>
<h2><strong>Jest and Enzyme</strong></h2>
<p><a href="https://facebook.github.io/jest">Jest</a> is a testing framework created by Facebook to test JavaScript code, in particular for <a href="https://reactjs.org/">React</a> apps. Meanwhile, <a href="http://airbnb.io/enzyme">Enzyme</a> is a JavaScript testing utility created by Airbnb that makes it easy to assert, manipulate and traverse your React components’ outputs thanks to its great API. These two tools are your best allies when it comes to testing React applications as they’ve been designed specifically to test with React.</p>
<p>Jest has many benefits and features, such as the fact that it is very easy to configure, works with any JavaScript compiler and can run tests in parallel. It also includes a snapshots feature and allows you to mock any function or component as it acts as a mocking library.</p>
<p>You can use Jest individually, given that Enzyme just adds functionality, although we believe these tools are complementary and usually use them together. Enzyme, however, cannot be used on its own as it is not a unit testing framework. It will always need a test runner to function, which does not necessarily have to be Jest.</p>
<p>If you’d like more information on Jest and Enzyme and how to use them to run unit testing for React web apps, check out <a href="https://www.asapdevelopers.com/testing-a-react-web-app-using-jest-and-enzyme/">our previous article on this topic</a>.</p>
<p><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-9746 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting03.jpg" alt="Fix and Repair - Unit Testing" width="606" height="489" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting03.jpg 606w, https://www.asapdevelopers.com/wp-content/uploads/2019/03/JavaScriptUnitTesting03-300x242.jpg 300w" sizes="(max-width: 606px) 100vw, 606px" /></strong></p>
<p><strong>Conclusion</strong></p>
<p>There are countless tools when it comes to unit testing for JavaScript. Although we are big fans of React and have used Jest and Enzyme extensively, we also recommend Jasmine and Mocha and hope you find these tools useful in your next project.</p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_693973958164f"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/san-francisco-app-developers/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Learn More About Our Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/unit-testing-best-javascript-frameworks/">Best JavaScript Unit Testing Frameworks</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jest Snapshot: Testing a React web app using Jest and Enzyme</title>
		<link>https://www.asapdevelopers.com/jest-snapshot-testing-enzyme-react/</link>
		
		<dc:creator><![CDATA[Mirazoqui]]></dc:creator>
		<pubDate>Mon, 17 Dec 2018 13:48:10 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=9525</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/jest-snapshot-testing-enzyme-react/">Jest Snapshot: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="fws_69397395820c8"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h2><strong>Jest Snapshot testing</strong></h2>
<p>Today, we will talk about a useful tool called <strong>Jest Snapshot</strong>. This feature is the best option to make sure that our UI component does not change for no reason. We can also use <strong>Jest Snapshots</strong> as an ally to have unit tests that are cleaner and more maintainable, something that any developer will love.</p>
<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-9530 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2018/12/JestSnapshot.jpg" alt="Jest Snapshot: Testing a React web app using Jest and Enzyme" width="750" height="422" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/12/JestSnapshot.jpg 750w, https://www.asapdevelopers.com/wp-content/uploads/2018/12/JestSnapshot-300x169.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/12/JestSnapshot-610x343.jpg 610w" sizes="(max-width: 750px) 100vw, 750px" /></strong></h2>
<h2><strong>What is a Jest Snapshot?</strong></h2>
<p>A <strong>Jest Snapshot</strong> is a screenshot of the React tree from a specific moment of some UI component. <a href="https://jestjs.io">Jest</a> can use that screenshot to compare it with the actual React tree render, and if both instances don’t match, the test will fail. If the test fails, we’ll know that a change was introduced since the last snapshot. The change can be expected or unexpected; in the first case, we just need to update the snapshot to be aligned with the new version of the UI component, and in the second case, we should review the component to check why there are differences between both instances.</p>
<h2><strong>When can Jest Snapshots be useful?</strong></h2>
<p><strong>Jest Snapshots</strong> can be used not only for components -though, components are the most common use for it-, we can also use them for serializable data, functions, or anytime we need to test whether the output is correct.</p>
<p>Let’s take a look at some examples. Imagine we have a <em>Header</em> component which renders a <em>title</em> and <em>subtitle</em> from <em>data</em> prop -check the code below- and we need to test the component. Forget about the <em>prop</em> for a minute and focus only on the <em>render</em>; we need to check if it renders a &lt;div&gt; with their class name and their children, another two &lt;div&gt; which have &lt;h1&gt; and &lt;h3&gt; with the current text. You are probably thinking about many ways to do these simple tests, but let’s take a look at how easy it can be using <strong>Jest Snapshots</strong>.</p>
<p>If we decide to use <strong>Jest Snapshots</strong>, we’ll just need to add one test! We have to check if the render matches the snapshot and that’s it. But we have even more good news! If the component changes some tag or text in the future, we only have to update the snapshot and the unit tests will succeed again.</p>
<p><script src="https://gist.github.com/gonzalolarrosa/1c369aa9edd4d7873034b6382a8f86b7.js"></script></p>
<p><script src="https://gist.github.com/gonzalolarrosa/90584bfaa8b93744d0d854d5b7e06dd3.js"></script></p>
<p>Now let’s say we have a <em>Constants</em> file and we should generate their unit tests. As you can guess, the best way to do this is using <strong>Jest Snapshots</strong>.</p>
<p>If you still have doubts, we hope this example shows you how <strong>Jest Snapshots</strong> make your life easier regarding unit tests, as it makes no sense to do complex things when we only need to know if some constant value has been changed or not.</p>
<p><script src="https://gist.github.com/gonzalolarrosa/9436868e958785c36d048a60187cd069.js"></script></p>
<p><script src="https://gist.github.com/gonzalolarrosa/7c36510790e29bc1078fa176634c856a.js"></script></p>
<h2><strong>Conclusion</strong></h2>
<p><strong>Jest Snapshot</strong> testing is a fantastic tool that allows you to test your UI component render in a quick and easy way, saving time to spend on tests that really need more attention. Also, we have the benefit of getting a more maintainable unit test code.</p>
<p>If you are interested in this topic or you want to learn more about Jest and Enzyme, you can read <a href="https://www.asapdevelopers.com/mock-function-react-jest-enzyme/">Mock Function: Testing a React web app using Jest and Enzyme</a> and <a href="https://www.asapdevelopers.com/async-code-testing-react-jest-enzyme/">Async code: Testing a React web app using Jest and Enzyme</a></p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6939739582250"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/san-francisco-app-developers/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Learn More About Our Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/jest-snapshot-testing-enzyme-react/">Jest Snapshot: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Async code: Testing a React web app using Jest and Enzyme</title>
		<link>https://www.asapdevelopers.com/async-code-testing-react-jest-enzyme/</link>
		
		<dc:creator><![CDATA[Mirazoqui]]></dc:creator>
		<pubDate>Fri, 10 Aug 2018 04:05:58 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=9161</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/async-code-testing-react-jest-enzyme/">Async code: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="fws_693973958291f"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h2><strong>Testing React with Jest and Enzyme</strong></h2>
<p>Nowadays, it is almost inevitable for a React app to communicate with a backend using an API, so we can imagine that it’s very common to have to run async code in JavaScript. Because of this, today we’ll be discussing <strong><em>async code</em></strong> (asynchronous code) and the ways that we can test it using <a href="https://jestjs.io/" target="_blank" rel="noopener noreferrer">Jest</a> and <a href="https://airbnb.io/enzyme/" target="_blank" rel="noopener noreferrer">Enzyme</a>. If you are new to Jest and Enzyme, you can take a look at <a href="https://www.asapdevelopers.com/testing-a-react-web-app-using-jest-and-enzyme/">Testing a React web app using Jest and Enzyme</a> and <a href="https://www.asapdevelopers.com/mock-function-react-jest-enzyme/">Testing a React web app using Jest and Enzyme: mock functions</a> to start getting familiar with them.</p>
<p>Think about any app that has to call an endpoint to get some useful data, and now imagine, <em>what would you do to test that?</em> You are probably thinking about calling the endpoint and then checking for the expected value. This approach is good, but we are missing something. When you call an endpoint, you are dispatching an async code, so you must let Jest know when the test has finished before it can continue with another test. If you don’t do that, the test will probably fail because it will start the next one immediately and you won’t know which test will be running when the first callback is returned. Fortunately, Jest has three different ways to handle this: <strong><em>callbacks</em></strong>, <strong><em>promises</em></strong> and <strong><em>async/await</em></strong>.</p>
<h2><strong>Callbacks</strong></h2>
<p>This is the first option that Jest brings us to handle the async code unit tests. It’s very simple; you have to create a test with a single argument called “<em>done”</em>, and you will use that argument as a function -callback- to indicate that test is finished. If <em>done</em> is never called, the test will fail as we explained in the previous paragraph.</p>
<h2><strong>Promises</strong></h2>
<p>This is the second option and it’s also simple. If you are using promises to get the response of an endpoint, you can also return a promise in your test and Jest will wait for it to resolve. In this case, it’s very important to <em>return</em> a promise. If you expect the promise to be rejected, you must use the <em>catch</em> method to assert the test.</p>
<h2><strong>Async/await</strong></h2>
<p>This is the last option to handle the async tests and it’s very similar to the Promises approach. You just add the “<em>async”</em> keyword as the name of the function test, and the “<em>await”</em> keyword in front of the function that calls the endpoint. Using these two keywords lets Jest know that the test will be an async one. If you expect the promise to be rejected, you must use the <em>catch</em> method, as you did for Promises.</p>
<h2><strong><img decoding="async" loading="lazy" class="size-medium wp-image-9166 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2018/08/software-testing-300x227.png" alt="Async code: Testing a React web app using Jest and Enzyme" width="300" height="227" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/08/software-testing-300x227.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/08/software-testing.png 480w" sizes="(max-width: 300px) 100vw, 300px" /></strong></h2>
<h2><strong>Callbacks, Promises and Async code example</strong></h2>
<p>Let’s make an example to review the concepts above. Imagine you have an API with an endpoint (GET request) that, given a user ID, returns the user’s info, such as name, age, gender and email. Let’s call the function that sends the request “getUserData” and let’s create a unit test for this example by mixing the three approaches in the same file.</p>
<p><script src="https://gist.github.com/gonzalolarrosa/6e7e1d80ecb9727a561c4db2d1a10936.js"></script></p>
<h2><strong>Conclusion</strong></h2>
<p>Any developer knows the importance of async code, but not every developer is familiar with how to test it. We tried to summarize the three ways that Jest can handle this kind of tests. Remember that none of these is better than the others, they are just different approaches to do the same thing. You can even mix them and use them in whichever way you find to be easier.</p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6939739582a90"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/portfolio/showclap/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Learn More About Our Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/async-code-testing-react-jest-enzyme/">Async code: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mock Function: Testing a React web app using Jest and Enzyme</title>
		<link>https://www.asapdevelopers.com/mock-function-react-jest-enzyme/</link>
		
		<dc:creator><![CDATA[Mirazoqui]]></dc:creator>
		<pubDate>Wed, 27 Jun 2018 13:00:58 +0000</pubDate>
				<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=9037</guid>

					<description><![CDATA[<p>In this article we will focus on Jest Mock Function utility. Let’s walk through to one of the most useful unit test functions. But before we do so, if this is...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/mock-function-react-jest-enzyme/">Mock Function: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this article we will focus on <strong>Jest Mock Function</strong> utility. Let’s walk through to one of the most useful unit test functions. But before we do so, if this is your first time with <a href="http://jestjs.io/" target="_blank" rel="noopener noreferrer">Jest</a> and <a href="https://airbnb.io/enzyme/" target="_blank" rel="noopener noreferrer">Enzyme</a>, we suggest you start by reading our previous article “<a href="https://www.asapdevelopers.com/testing-a-react-web-app-using-jest-and-enzyme/" target="_blank" rel="noopener noreferrer">Testing a React web app using Jest and Enzyme</a>” and then come back to this one.</p>
<h2><strong>Why would we need a Jest Mock Function? How do we define it?</strong></h2>
<p>When we are developing on React it’s very common to have components that are part of other components, and each component has its own props. Let’s imagine that we have a main component which has a child component and we want to create unit tests for the main one. One of our tests should check that the child component exists and has appropriate props. To do that, we will need to mock the child component using <strong><em>jest.mock</em></strong> and then we can access the component as if we were instantiating it using the <strong><em>shallow</em></strong> function. Once we define the mock constructor, checking the props is very simple.</p>
<p>Let’s review how it works with an example:</p>
<p><script src="https://gist.github.com/gonzalolarrosa/6fffdcfef4a0aa1644ccadcd35eab662.js"></script><br />
<a href="https://gist.github.com/gonzalolarrosa/6fffdcfef4a0aa1644ccadcd35eab662" target="_blank" rel="noopener noreferrer">MainComponent.js Source Code</a></p>
<p><script src="https://gist.github.com/gonzalolarrosa/f6d57d37d659e40e5f85440267c33199.js"></script><br />
<a href="https://gist.github.com/gonzalolarrosa/f6d57d37d659e40e5f85440267c33199" target="_blank" rel="noopener noreferrer">ChildComponent.js Source Code</a></p>
<p><script src="https://gist.github.com/gonzalolarrosa/261a771085d69219f1b0d82a1a45011c.js"></script><br />
<a href="https://gist.github.com/gonzalolarrosa/261a771085d69219f1b0d82a1a45011" target="_blank" rel="noopener noreferrer">MainComponent.test.js Source Code</a></p>
<p>Easy, right? But you are probably asking yourself ‘what about the <em>onSubmit</em> function?’ We should check that it is a function and that’s it? Well, if you are asking yourself that, you are thinking like a true unit tester. The answer is simple, it depends on what you need; in some cases it could be enough and in others, it could not. Let’s imagine a scenario where, given the function inputs, you need to simulate a response.</p>
<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-9045 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2018/06/Jest_Enzyme.jpg" alt="Mock Function: Testing a React web app using Jest and Enzyme" width="640" height="430" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/06/Jest_Enzyme.jpg 640w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/Jest_Enzyme-300x202.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/Jest_Enzyme-600x403.jpg 600w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/Jest_Enzyme-400x269.jpg 400w" sizes="(max-width: 640px) 100vw, 640px" /></strong></h2>
<h2><strong>How can we mock a function?</strong></h2>
<p>Basically, we need to create a spy function that will trigger the simulated response. To do that, we use <strong><em>jest.fn</em></strong> &#8211; from Jest. Once we have the spy, we can test the feature using <strong><em>toHaveBeenCalled</em></strong> or <strong><em>toHaveBeenCalledWith</em></strong> &#8211; also from Jest &#8211; to check if the spy was called or not. Others useful functions could be <strong><em>simulate</em></strong> &#8211; from Enzyme &#8211; to simulate triggering an event in case we need it, and <strong><em>mockReturnValue </em></strong>&#8211; from Jest &#8211; to simulate the response in case we want to test something with that specific value.</p>
<p>Let’s wrap up our idea by creating the “ChildComponent” test:</p>
<p><script src="https://gist.github.com/gonzalolarrosa/d32378c33fabaefc4f197be251b97ae2.js"></script><br />
<a href="https://gist.github.com/gonzalolarrosa/d32378c33fabaefc4f197be251b97ae2" target="_blank" rel="noopener noreferrer">ChildComponent.test.js Source Code</a></p>
<h2><strong>Jest Mock Function conclusion</strong></h2>
<p>The <strong>Jest Mock Function</strong> is a simple but powerful unit test tool that any developer must know. There are a couple more utilities for mocks, so we recommend you continue reading about this and putting it into practice on your own codes.</p>
<p>We hope you find this article useful, and if you have more questions about it, you can visit Jest’s official documentation.</p>
<div id="fws_693973958387f"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Native Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/mock-function-react-jest-enzyme/">Mock Function: Testing a React web app using Jest and Enzyme</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
