<http://schema.org/articleBody>
"The more we come to depend on mobile apps for taking care of business, the greater the need for reliability. Alas, many a user has seen many an app crash. Worst still, Murphy's Law usually sees to it that the timing is never good.\nOne solution is to test performance beforehand. SOASTA is just one of several services available for developers to test their apps under real-world and simulated conditions.\n\"Delivering performance through mobile applications is more challenging than anything else [for IT] in the last 30 years, because of all the different pieces,\" says Tom Lounibos SOASTA president and CEO.\nIt's all those different pieces that can cause problems for consumers \u2014 and problems for consumers translate into problems for developers in terms of lost sales and missed opportunities.\nOf course, when apps crash, it's not always the developer who is at fault, as the recent DRM problems that plagued iTunes App Store purchases earlier this month showed.\nLounibos notes, \"There are billions of potential points of failure in this environment, which leads to the anxiety of developers and all of us in this mobile rat race.\"\nUsing the company's automated testing platform CloudTest Mobile, SOASTA has identified what they say are the ten most common reasons apps fail (in no particular order).\n1. Demand Exceeds Supply It's a classic case of the dangers of success \u2014 the fact that millions of consumers can simultaneously discover your app at the same time.\n2. Incorrect Memory and CPU UsageMade more challenging by the vast array of different devices that can run apps. As Dave Murphy, SOASTA's Senior VP of Delivery puts it, \"You can't just test on a 64-gig third generation iPad and expect that to work [like] an 8 gig first generation iPhone.\"\n3. Bandwidth ConstraintsWhether it's inadequate bandwidth, or overly large data payloads, the pipe matters. Especially since mobile users expect quick response times.\n4. Network ChangesSwitching from cellular networks to WiFi and back can cause lost connections, which affects app stability. Murphy notes, \"It's not necessarily a problem 'solved' by the OS, so it is something that the developers need to account for.\"\n5. Fatal Bugs in ProductionThis can often come into play when a new feature is introduced that may have an impact on another part of the application.\n6. Poor Front-End OptimizationEven for local apps that don't talk to a back-end server, using resources effectively is key. Image compression and other strategies can help, but devs need to be mindful of the relationship between what's happening on-screen and what the devices are capable of handling.\n7. Integration DependenciesHow all of the back-end systems come together to deliver content to the user can have a tremendous effect on app usability.\n8. Database ContentionBad queries and excessive sessions can quickly drag down performance. Murphy cautions, \"If you haven't properly optimized and indexed your database, the database is going to perform poorly. But from the user's perspective, all they know is that the application isn't responding.\"\n9. Browser IncompatibilityBrowser problems aren't just a desktop phenomenon. According to SOASTA, Apple's done a good job of building a \"walled garden\" with the mobile version of Safari, but app interactions with Chrome and other third-party browsers often don't get tested, particularly on iOS.\n10. Device IncompatibilityIt's impossible to test on every Android device, and even iOS has a fair amount of fragmentation. As Murphy puts it \"something that runs on an iPod touch all the way [up] to an iPad \u2014 you'll start to see some differences [in performance].\""^^<http://www.w3.org/2001/XMLSchema#string>
<http://mashable.com/2012/07/20/why-ios-android-apps-crash/>