<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kalei White</title>
    <description>The latest articles on DEV Community by Kalei White (@kaleiwhite).</description>
    <link>https://dev.to/kaleiwhite</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F100748%2F2a66b47d-58e0-4271-af1e-7780802444fc.jpg</url>
      <title>DEV Community: Kalei White</title>
      <link>https://dev.to/kaleiwhite</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaleiwhite"/>
    <language>en</language>
    <item>
      <title>Mobile Game Testing: Industry Leaders’ Challenges and Strategies</title>
      <dc:creator>Kalei White</dc:creator>
      <pubDate>Mon, 10 May 2021 22:16:38 +0000</pubDate>
      <link>https://dev.to/kaleiwhite/mobile-game-testing-industry-leaders-challenges-and-strategies-4hmg</link>
      <guid>https://dev.to/kaleiwhite/mobile-game-testing-industry-leaders-challenges-and-strategies-4hmg</guid>
      <description>&lt;p&gt;In 2020, the mobile gaming industry saw a massive spike in engagement and revenues, growing more than 13% year over year. With game quality and performance being of critical importance to stakeholders in the space, improving it has become top priority for mobile game development and QA teams globally.&lt;/p&gt;

&lt;p&gt;With this topic in mind, we invited Aliaksandr Kavaliou, Performance Test Manager at Playtika, Robson Siebel, QA Lead at Infinity Games, and Melissa Eaden, Quality Engineering Manager at Unity Technologies for a panel discussion with Apptim CEO, Sofia Palamarchuk, about mobile game testing!&lt;/p&gt;

&lt;p&gt;Watch the webinar panel discussion here: &lt;a href="https://www.youtube.com/watch?v=UF3lmsUVVAY"&gt;https://www.youtube.com/watch?v=UF3lmsUVVAY&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is a recap of the discussion, including questions provided by the audience:&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Some of the Biggest Mobile Game Testing Challenges You’ve Faced?
&lt;/h2&gt;

&lt;p&gt;Melissa Eaden shared that one of the biggest challenges teams find themselves tackling first is testing on the myriad of different devices and operating systems that are a direct result of the growing fragmentation within the Android ecosystem. For example, the emergence of newer devices every year, makes testing more complex than ever before.&lt;/p&gt;

&lt;p&gt;Mobile game testing and quality isn’t only focused on functionality and performance, Eaden shared. She and her colleagues are focused on helping Unity developers to make games that are engaging and interactive enough that keep players coming back again and again.&lt;/p&gt;

&lt;p&gt;Some other areas in game quality that present challenges, she added, were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensuring compliance with new privacy laws and regulations such as GDPR,&lt;/li&gt;
&lt;li&gt;Testing ads and third party integrations, and&lt;/li&gt;
&lt;li&gt;How to create games with high-quality, using advanced features such as inter-player chat, matching, awards, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Robson shared that at Infinity Games, they create games that are designed to be immersive and relaxing, so there’s nothing worse than a user finding a bug, thus ruining their experience. Worse, if that user that experienced a buggy game leaves a negative review on the app store, it could lead to a negative financial impact for the business.&lt;/p&gt;

&lt;p&gt;Another challenge for his team in particular is that they don’t have a dedicated tester, which, in the past, had resulted in devs being handed over imprecise or less helpful bug reports than desired.&lt;/p&gt;

&lt;p&gt;For Aliaksandr, his greatest challenges at Playtika revolve around capacity testing / capacity planning on a huge setup.&lt;/p&gt;

&lt;p&gt;He explained, “Once you have more than one data center, hundreds of virtual machines, a lot of Kubernetes setups and so on… data warehouses, databases, and hundreds of thousands or millions of users, and you’re awaiting a new feature or a marketing campaign that is expected to generate a user traffic increase… Planning for this enormous setup is a headache, really.”&lt;/p&gt;

&lt;p&gt;The second biggest challenge he mentioned in &lt;a href="https://www.apptim.com/"&gt;mobile performance testing&lt;/a&gt; for games is the high cost of running end-to-end performance tests. The closer to production, the more expensive it is for any team to run these tests. He elaborated, the cheaper the tests are, the less realistic numbers you can obtain, and you can’t somehow approximate those results and understand what exactly you need and how much to scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Some Ways You’ve Overcome These Challenges?
&lt;/h2&gt;

&lt;p&gt;For Robson, he has found ways to help his team overcome the challenge of not having dedicated testers. He assumed the role of the QA lead and also adopted Apptim, which has helped enable anyone on the team to run functional and performance tests on their games.&lt;/p&gt;

&lt;p&gt;He shared that, before Apptim, “The bug reports were either vague or they were sometimes incorrect and that led to a lot of wasted time for the developer trying to hunt or to reproduce a bug.” He continued,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Being able to have a tool (Apptim) that recorded the play session of the person and automatically got all of the logs and generated a performance report in the end, is something that for us, as a small company, was pretty huge. We’ve improved the quality of the games a lot because of the crashes or exceptions that we couldn’t catch before, and now we have that access.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Aliaksandr shared that, to deal with the high cost of end-to-end mobile game performance tests, he found you can reuse existing automation tests. He commented, “It will also save you time in such cases because almost every time you have automation already created for your functionality, why not &lt;a href="https://www.youtube.com/watch?v=kOqfkesmiCI"&gt;add some markers&lt;/a&gt; or some [performance] measurements, and it will help you to also understand what’s going on where you are.”&lt;/p&gt;

&lt;p&gt;But, he warns, although that’ll help, it can’t protect you from bad code and a bad configuration, so a lot of effort and attention should be placed on the configuration of your performance test, not to saturate earlier than expected due to some numbers conflicting somewhere. “That’s why it’s hard, step-by-step analytical work,” he asserted.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Your Advice for Reducing Testing as a Bottleneck?
&lt;/h2&gt;

&lt;p&gt;For Melissa, the short answer may seem controversial to testers, but she shared that the best thing she’s learned to do is to get out of the developers’ way. She said,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Removing myself has been the biggest, reducing that bottleneck, putting automation in place, letting the developers really collaborate on those ideas and moving the production cycles and everything faster because I am not stationed on a team, I’m not embedded, but I’m there as somebody that can coach them and help them.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;She explained that she’s a big advocate of modern testing principles, which give a lot of credence and leverage to the teams themselves. “Developers know the code the best, the more they interact with the code and the more they understand the code, the more they can test it, and they can test it on a level that oftentimes as someone who was traditionally in the role of a tester might not be able to get to.” &lt;/p&gt;

&lt;p&gt;She continued, this is the collaborative part; helping developers understand where their knowledge gaps are and that’s where she comes in. She’ll often be the person that asks questions like, “Hey, you’ve developed this wonderful piece of functionality, but did you think about how to scale it?”&lt;/p&gt;

&lt;p&gt;She remarked that there are a lot of moving pieces and developers are really well positioned to handle that. It’s about helping developers uncover their blind spots.&lt;/p&gt;

&lt;p&gt;Melissa added, “So I’m not perfect, they’re not perfect, but getting out of the collective folks’ way that deal with the code on a day-to-day basis has really improved removing that bottleneck from the development process, along with adding in DevOps and CI/CD practices, which have just made things a lot easier.”&lt;/p&gt;

&lt;p&gt;“Automation always makes things easier as much as it makes it harder, but you have to balance the positive with the negative, right?”&lt;/p&gt;

&lt;p&gt;The first answer that came to Robson’s mind about reducing testing as a bottleneck was, “You can always ask the developer to stop creating bugs. That works very well.”&lt;/p&gt;

&lt;p&gt;Kidding aside, he shared that in his experience, having a well-defined test pipeline in a reliable software that can automate some of the steps goes really a long way.&lt;/p&gt;

&lt;p&gt;Another key area of improvement has been reducing the friction between developers and whomever is testing the games:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Using a tool like Apptim for that can also help catch some underlying bugs and reduce the friction between the tester and the developer because sometimes there is a lot of back and forth.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To illustrate the point, he said, “Today, I had an issue where someone reported a bug. ‘Hey, this is happening at the end of level six of the game.’ I checked the video from Apptim because he was using it for that session, and it was actually at level 10. So if I didn’t have the video to back it up, I might have lost quite a lot of time chasing a bug that didn’t really exist.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How is Testing a Mobile Game Different Than Testing Other Mobile Apps?
&lt;/h2&gt;

&lt;p&gt;The consensus among the panel was the added complexity that games have at different levels and understanding how they interact. Melissa stated,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Mobile apps are complex as it is, but you have multiple platforms you’re looking at, and then you multiply that by the game complexity and the algorithms and the performance you have to maintain.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Melissa shared several other factors that add more complexity in mobile game testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handoffs between ads, online chatting, or any other auxiliary things that your app is doing besides just being a game.&lt;/li&gt;
&lt;li&gt;Dealing with game performance, device performance, and network performance.&lt;/li&gt;
&lt;li&gt;Testing various ad layouts and formats: For example, you can have a full page static ads, banner ads, video ads, etc.&lt;/li&gt;
&lt;li&gt;Non-linear usage and behavior patterns from users open a wide array of possibilities. Depending on the order that the user does something, you might find a different bug.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Aspects of Non-Functional Testing Like Performance Do You Prioritize in Your Games and Where?
&lt;/h2&gt;

&lt;p&gt;For Aliaksandr, when choosing where to prioritize performance, he stated areas like the game lobby and anything a brand new player will see first are top priority.&lt;/p&gt;

&lt;p&gt;He explained that, for a fresh player, he or she should see the functionality of your game as soon as possible and enter the game fast. This aspect should be the most prioritized because players will not want to wait a long time to get started.&lt;/p&gt;

&lt;p&gt;But, he added, it depends on what experience the user has during the waiting; “If it’s something interesting, he interacts with something, even during the game, during the waiting lobby or whatever inside the game, it’s maybe a good thing. But if he sees just a blank page and a spinner, it’ll make him crazy. Of course, for fresh users, I suppose getting to the lobby as fast as possible is a critical thing, but then other features should work also fine.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Set Mobile Game Performance Benchmarks?
&lt;/h2&gt;

&lt;p&gt;Aliaksandr volunteered to expand upon this follow up to the previous question, saying that it can be measured from the number of users. But first, it’s important to understand business critical transactions. Then step by step, you can do benchmarking, load testing, and so on. He also shared, “Use such a tool as Apptim to set markers and see what’s wrong with these events, with this transaction, this feature, deep dive, and use code profiling… and so on.”&lt;/p&gt;

&lt;p&gt;He stated that self-written solutions will be the most accurate because you inject something in your code and this code will show the real duration, but it takes time to do. Therefore, if you have a good profiler on hand, which can easily show you the bottlenecks, then it’s better to use that at first.&lt;/p&gt;

&lt;p&gt;Don’t forget to watch the &lt;a href="https://www.youtube.com/watch?v=UF3lmsUVVAY"&gt;full webinar&lt;/a&gt; for more insights from our guests in this panel discussion and check out similar videos on Apptim's &lt;a href="https://www.youtube.com/channel/UC8NERLAtBFgPmIlxHnRDglw"&gt;Youtube channel&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;This article was originally published &lt;a href="https://blog.apptim.com/mobile-game-testing-qa-panel/"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mobilegames</category>
      <category>qa</category>
      <category>testing</category>
      <category>performancce</category>
    </item>
    <item>
      <title>How to Enhance User Experience by Improving Mobile App Performance</title>
      <dc:creator>Kalei White</dc:creator>
      <pubDate>Fri, 22 May 2020 21:52:58 +0000</pubDate>
      <link>https://dev.to/kaleiwhite/how-to-enhance-user-experience-by-improving-mobile-app-performance-2k8l</link>
      <guid>https://dev.to/kaleiwhite/how-to-enhance-user-experience-by-improving-mobile-app-performance-2k8l</guid>
      <description>&lt;h1&gt;What’s one of the biggest predictors of a mobile app's success?&lt;/h1&gt;

&lt;p&gt;Performance (how fast it loads and how reliable it is).&lt;/p&gt;

&lt;p&gt;The findings of a &lt;a href="https://techbeacon.com/sites/default/files/gated_asset/mobile-app-user-survey-failing-meet-user-expectations.pdf"&gt;mobile app user survey&lt;/a&gt;  conducted by Dimensional Research showed that 80% of app users will only attempt to use a problematic app three times or less and 36% said that an app with slow performance issues made them have a lower opinion of the company.&lt;/p&gt;

&lt;p&gt;In this article, we'll cover how to whip your mobile app's performance into shape so that crashes and slow loading times don’t cost you downloads, revenue, and brand perception.&lt;/p&gt;

&lt;h2&gt;What Is Mobile App Performance?&lt;/h2&gt;

&lt;p&gt;Keep in mind that, when we discuss mobile, it includes not only smartphones, but also their cousins: the legions of tablets, smartwatches, and other smart devices on the market today.&lt;/p&gt;

&lt;p&gt;Performance is one of the factors of app quality that has to do with how it behaves when experiencing certain load sizes and in various other situations. For example, does the app load slowly or crash every time it experiences a peak in user activity, like when you launch a special promotion?&lt;/p&gt;

&lt;p&gt;Performance is a product of multiple factors: the server, mobile device, network, and programming of the app itself.&lt;/p&gt;

&lt;p&gt;Unfortunately, a user may have a poor experience with your app’s performance, even if the cause of the issue has nothing to do with the app itself.&lt;/p&gt;

&lt;p&gt;In the previously mentioned survey by Dimensional Research, 55% of respondents have held an app responsible for performance issues although many admitted they didn’t know what the cause of those issues were.&lt;/p&gt;

&lt;h2&gt;Why Mobile App Performance Matters&lt;/h2&gt;

&lt;p&gt;In the same Dimensional Research survey, nearly all users (96%) stated that performance is important, while over three quarters (76%) shared that it is “very important” or “critically important.” The same study even showed that users actually care more about the performance of an app than its price.&lt;/p&gt;

&lt;p&gt;What’s the target for mobile app performance?&lt;br&gt;
While there is no magic number, several surveys and studies have shown that two seconds or less is the optimal amount of time it should take for an app to load in order for users to be satisfied.&lt;/p&gt;

&lt;p&gt;In accordance with that, according to a &lt;a href="https://www.akamai.com/us/en/about/news/press/2009-press/akamai-reveals-2-seconds-as-the-new-threshold-of-acceptability-for-ecommerce-web-page-response-times.jsp"&gt;survey by Akamai&lt;/a&gt;, 47% of consumers expect web pages to load in two seconds or less and 20% expect mobile apps to load instantly.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Users are fickle.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;When a mobile app’s performance doesn’t meet user expectations, there is a very high chance they will abandon it, resulting in a loss of potential revenue.&lt;/p&gt;

&lt;p&gt;Ratings can also suffer, which leads to a decline in downloads. One app maker reported that even a 0.1 drop in an online app rating caused a 5% decline in downloads, while a 0.3 decrease resulted in a 60% drop. What a difference!&lt;/p&gt;

&lt;p&gt;Although not terribly common, 7% of users will write a bad review if an app has errors, crashes regularly, or stops responding, and 8% will give it a poor star rating for the same reasons.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;On the flip side: When your app performs well, it can be a huge money maker.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;On average, mobile shoppers are more engaged, spend more, and shop more often.&lt;/p&gt;

&lt;p&gt;Tammy Everts, a mobile performance expert from SOASTA, conducted a case study showing that a one-second decrease in page load time resulted in a 27% increase in its conversion rate.&lt;/p&gt;

&lt;p&gt;In the same study, mobile pages that loaded in an average of 2.4 seconds enjoyed the peak conversion rate (1.9%) over a span of 30 days.&lt;/p&gt;

&lt;p&gt;This has been reflected in many studies of web page performance as well. For instance, according to a report by SOASTA and O’Reilly, Intuit cut its load time in half and saw a 14% increase in conversions.&lt;/p&gt;

&lt;p&gt;In short, any company that produces web or mobile apps should make performance a primary concern, integrating performance testing as a mandatory part of the QA process.&lt;/p&gt;

&lt;h2&gt;Tips and Tricks to Improve Mobile App Performance&lt;/h2&gt;

&lt;p&gt;Now that we’ve covered the need for superior mobile app performance, let’s look at some of the ways to enhance it. Some are easier to implement than others. But if made, these changes will be worthwhile.&lt;/p&gt;

&lt;h3&gt;Cache images&lt;/h3&gt;

&lt;p&gt;Caching is a part of a computer’s memory that stores recently used information. It can store web pages, images, files, etc. on its local hard drive to provide rapid access to them while improving performance and decreasing traffic on the network.&lt;/p&gt;

&lt;p&gt;Downloading external resources takes time, so make sure to cache your images.&lt;/p&gt;

&lt;h3&gt;Compress and resize images&lt;/h3&gt;   

&lt;p&gt;When you compress an image, you minimize its size in bytes without greatly degrading its quality. There are several sites that do this, but the one I typically use is compressor.io.&lt;/p&gt;

&lt;p&gt;Also make sure that the image size is right because it’s a waste of bandwidth to rely on the browser to scale a high-resolution image into a smaller width and height. So, you want to make sure images are adequately sized and ready to go off the bat.&lt;/p&gt;

&lt;h3&gt;Re-use data templates&lt;/h3&gt;

&lt;p&gt;When the app has to load multiple templates, that slows it down. To make the app faster, load fewer templates by reusing them.&lt;/p&gt;

&lt;h3&gt;Reduce HTTP Requests&lt;/h3&gt;

&lt;p&gt;Use fewer HTTP requests required to fetch the resources for each page in order to simplify things for your app.&lt;/p&gt;

&lt;h3&gt;Use loading validations&lt;/h3&gt;

&lt;p&gt;People perceive load times slower than they truly are. So, even perception of performance matters.&lt;/p&gt;

&lt;p&gt;Make your app load in a way that makes it seem to be going faster, even if it isn’t!&lt;/p&gt;

&lt;p&gt;One way to do so is to have it provide some visible, instant feedback as the application waits for the background response. Putting something up during the loading process will give users the perception that it’s loading quicker.&lt;/p&gt;

&lt;h3&gt;Load data as you need it&lt;/h3&gt;

&lt;p&gt;If your app requires a large amount of data, it’s useful to only load it as you need it. Don’t make the user wait longer than necessary to start viewing parts of the app.&lt;/p&gt;

&lt;p&gt;Splitting up the assemblies will help accomplish this. You could also pre-load/pre-fetch data, if possible, so that when the data is needed, the user doesn’t have to wait.&lt;/p&gt;

&lt;h3&gt;Create an offline mode&lt;/h3&gt;

&lt;p&gt;In the event that the network connection drops while the user is in the middle of completing an action, it’s smart to alert them as to why their action cannot be completed. Then give them the option to save the data for later, so they can resume the activity once the connection has been re-established.&lt;/p&gt;

&lt;p&gt;This will at least give them some peace of mind — certainly more than I had when I experienced my own problems with the travel app!&lt;/p&gt;

&lt;h3&gt;Test for performance early and often&lt;/h3&gt;

&lt;p&gt;Apps must undergo all sorts of testing to ensure that they work as intended, are compatible across devices and networks, etc. They should also be rigorously tested for performance and monitored frequently.&lt;/p&gt;

&lt;p&gt;One misconception that many developers have is thinking you have to wait until the end of development to start the testing process. It’s actually a time and cost saver to test as you go, when bugs and performance issues are smaller and easier to fix.&lt;/p&gt;

&lt;h3&gt;Use the right tool for performance tuning&lt;/h3&gt;

&lt;p&gt;There are several tools on the market to execute mobile performance tests, such as &lt;a href="https://www.apptim.com#utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_content=devtoarticle"&gt;Apptim&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Basically, you can download &lt;b&gt;Apptim&lt;/b&gt; and connect a device and start exploratory testing your app right away, pushing bugs to JIRA as you find them while at the same time, the tool assesses performance for you, finding crashes, exceptions, measuring resource usage, power consumption, etc. It then shows you a neat report of everything that it finds.&lt;/p&gt;

&lt;p&gt;It’s a great performance tuner because it runs a deep performance analysis that includes checking response time and resource consumption (cpu, memory, data transfer, render, database, etc).&lt;/p&gt;

&lt;p&gt;It then shows you a report with everything you should know about your app, its weaknesses, and how you can fix them.&lt;/p&gt;

&lt;h3&gt;Put an APM (application performance monitoring) system in place&lt;/h3&gt;

&lt;p&gt;APM refers to the monitoring and management of performance and availability of software applications. APM helps detect and diagnose deep-level application performance problems to maintain an expected level of service across the board.&lt;/p&gt;

&lt;p&gt;It monitors two sets of performance metrics: those that have to do with the performance the user experiences (like average load times) and those that measure computational resources that the app uses for the load.&lt;/p&gt;

&lt;p&gt;There are several companies that provide APM Management tools such as &lt;a href="https://newrelic.com/"&gt;New Relic&lt;/a&gt; and &lt;a href="https://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;Make your company’s culture performance-centric&lt;/h3&gt;

&lt;p&gt;As TechBeacon editor, Todd DeCapua, has stressed many times, performance is now everyone’s concern from the engineering department to the marketing department.&lt;/p&gt;

&lt;p&gt;Organizations should get behind the attitude of testing early and testing often.&lt;/p&gt;

&lt;p&gt;If all stakeholders support the vision of having high-performing apps, it will be easier to devise a plan and stick to it. It’s also important for everyone to be aware of the causes of slow performance so that issues can be detected and remedied sooner.&lt;/p&gt;

&lt;h2&gt;Performance Matters&lt;/h2&gt;

&lt;p&gt;Mobile app performance directly affects user retention rate, ratings, number of downloads, conversions, and ultimately, revenue.&lt;/p&gt;

&lt;p&gt;If you commit to creating a high-quality app that meets or exceeds user performance expectations, your users will want to use it over and over again, elevating their perception of your brand and strengthening the relationship they have with it.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Have some more tips? Please leave me a comment!&lt;/b&gt;&lt;/p&gt;

</description>
      <category>mobileapps</category>
      <category>qa</category>
      <category>mobiletesting</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
