{
    "version" : "https://jsonfeed.org/version/1",
    "content" : "news",
    "type" : "single",
    "title" : "Mobile Product Compatibility and Functional Testing 101 |Digital.gov",
    "description": "Mobile Product Compatibility and Functional Testing 101",
    "home_page_url" : "/preview/gsa/digitalgov.gov/cm-topics-button-component/","feed_url" : "/preview/gsa/digitalgov.gov/cm-topics-button-component/2013/11/21/mobile-product-compatibility-and-functional-testing-101/index.json","item" : [
    {"title" :"Mobile Product Compatibility and Functional Testing 101","summary" : "As covered in the Mobile Product Testing Guidelines article, there are various approaches to mobile testing. This article is a resource of the Federal CrowdSource Mobile Testing Program and focuses on two common test types are compatibility testing and functional testing. Compatibility Testing The Wikipedia article on compatibility testing states the “Compatibility testing, part of software","date" : "2013-11-21T09:55:56-04:00","date_modified" : "2024-04-02T09:45:13-04:00","authors" : {"jparcell" : "Jacob Parcell"},"topics" : {
        
            "mobile" : "Mobile",
            "research" : "Research"
            },"branch" : "cm-topics-button-component",
      "filename" :"2013-11-21-mobile-product-compatibility-and-functional-testing-101.md",
      
      "filepath" :"news/2013/11/2013-11-21-mobile-product-compatibility-and-functional-testing-101.md",
      "filepathURL" :"https://github.com/GSA/digitalgov.gov/blob/cm-topics-button-component/content/news/2013/11/2013-11-21-mobile-product-compatibility-and-functional-testing-101.md",
      "editpathURL" :"https://github.com/GSA/digitalgov.gov/edit/cm-topics-button-component/content/news/2013/11/2013-11-21-mobile-product-compatibility-and-functional-testing-101.md","slug" : "mobile-product-compatibility-and-functional-testing-101","url" : "/preview/gsa/digitalgov.gov/cm-topics-button-component/2013/11/21/mobile-product-compatibility-and-functional-testing-101/","content" :"\u003cp\u003eAs covered in the \u003ca href=\"/preview/gsa/digitalgov.gov/cm-topics-button-component/resources/mobile-user-experience-guidelines/\" title=\"Guidellines to Mobile Testing\"\u003eMobile Product Testing Guidelines\u003c/a\u003e article, there are various approaches to mobile testing. This article is a resource of the Federal Crowdsource Mobile Testing Program and focuses on two common test types are compatibility testing and functional testing.\u003c/p\u003e\n\u003ch2 id=\"compatibility-testing\"\u003eCompatibility Testing\u003c/h2\u003e\n\u003cp\u003eThe Wikipedia article on \u003ca href=\"http://en.wikipedia.org/wiki/Software_testing#Compatibility_testing\"\u003ecompatibility testing\u003c/a\u003e states the “Compatibility testing, part of software \u003ca href=\"http://en.wikipedia.org/wiki/Non-functional_tests\" rel=\"nofollow\"\u003enon-functional tests\u003c/a\u003e, is testing conducted on the application to evaluate the application’s compatibility with the computing environment. Computing environment may contain some or all of the below mentioned elements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eComputing capacity of Hardware Platform (IBM 360, HP 9000, etc.)..\u003c/li\u003e\n\u003cli\u003eBandwidth handling capacity of networking hardware\u003c/li\u003e\n\u003cli\u003eCompatibility of peripherals (Printer, DVD drive, etc.)\u003c/li\u003e\n\u003cli\u003eOperating systems (Linux, Windows, etc.)\u003c/li\u003e\n\u003cli\u003eDatabase (Oracle, SQL Server, MySQL, etc.)\u003c/li\u003e\n\u003cli\u003eOther System Software (Web server, networking/ messaging tool, etc.)\u003c/li\u003e\n\u003cli\u003eBrowser compatibility (Chrome, Firefox, Netscape, Internet Explorer, Safari, etc.)”\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"functional-testing\"\u003eFunctional Testing\u003c/h2\u003e\n\u003cp\u003eFunctional testing is testing performed to ensure the mobile application developed meets the requirements for which it was designed. There are two broad methods of functional testing: unscripted and scripted. Additionally, the exploratory testing method for mobile testing is gaining traction.\u003c/p\u003e\n\u003ch3 id=\"unscripted-testing\"\u003eUnscripted Testing\u003c/h3\u003e\n\u003cp\u003eUnscripted testing is often referred to as ad hoc testing. According to QATestLab, \u003ca href=\"http://qatestlab.com/services/No-Documentation/ad-hoc-testing/\"\u003ead-hoc testing\u003c/a\u003e “is a term commonly used for the tests carried out without planning the software and documentation.The tests are supposed to be executed only once, unless a defect is discovered.”\u003c/p\u003e\n\u003ch3 id=\"scripted-testing\"\u003eScripted Testing\u003c/h3\u003e\n\u003cp\u003eScripted testing is testing that involved the developer creating specific test scenarios for the tester to follow.\u003c/p\u003e\n\u003ch3 id=\"exploratory-testing\"\u003eExploratory Testing\u003c/h3\u003e\n\u003cp\u003eA new method of testing, aimed at mobile device testing and being advanced by \u003ca href=\"http://qatestlab.com/\"\u003eQATestLab\u003c/a\u003e is called \u003ca href=\"http://qatestlab.com/services/No-Documentation/exploratory-testing/\"\u003eexploratory testing\u003c/a\u003e. This is a hybrid testing methodology that uses attributes of both unscripted and scripted testing. Exploratory testing uses the “freedom” scale. It is a plan is to cover each end of the spectrum when testing our mobile application. The tester is asked to perform exploratory testing as well as execute the scripted tests that the Agency has provided.\u003c/p\u003e\n\u003cdiv class=\"image\"\u003e\n  \u003cimg\n    src=\"https://s3.amazonaws.com/digitalgov/_legacy-img/2014/01/freedom_scale.png\"\n    alt=\"Testing Scale\"/\u003e\u003c/div\u003e\n\n\n\u003cp\u003eSource: \u003ca href=\"http://agile2010.agilealliance.org/files/Telling%20Your%20Exploratory%20Story%20Agile2010.pdf\"\u003eTelling Your Exploratory Story\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"mobile-applications-architectures\"\u003eMobile Applications Architectures\u003c/h2\u003e\n\u003cp\u003eThere are a variety of mobile application architectures, including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNative apps\u003c/li\u003e\n\u003cli\u003eHybrid apps\u003c/li\u003e\n\u003cli\u003eDedicated mobile web apps\u003c/li\u003e\n\u003cli\u003eDevice specific web apps\u003c/li\u003e\n\u003cli\u003eResponsive websites\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNative apps are developed for the individual mobile platform in programming languages they support e.g. Java for Android, ObjectiveC for iOS. New features arrive in new models, and this may break compatibility and increase the maintenance. However, native apps have great performance, and they have access to device functions such as camera, navigation etc. Development cost is usually high; especially when there is a requirement for supporting multiple devices.\u003c/p\u003e\n\u003cp\u003eHybrid apps could be said to take the best from both worlds. They rely in development frameworks where the native implementation across multiple device architectures becomes less a headache. Hybrid apps main content is typically delivered using standard web standards (HTML, CSS, JavaScript) to keep the cost down, but they can still access the device functions e.g. camera.\u003c/p\u003e\n\u003cp\u003eDedicated mobile web apps are simply websites optimized specifically to be rendered on mobile devices. This is useful for giving users access to web based information and transactions via mobile devices. However, maintenance of both a traditional and a mobile website may be the consequence of this model. Keep in mind that web apps and websites will not have access to device features.\u003c/p\u003e\n\u003cp\u003eDevice specific web apps make it possible to create web apps that are optimized for specific devices; such as iPhone and Android.\u003c/p\u003e\n\u003cp\u003eResponsive websites are websites that rely on recent development in CSS3 e.g. media queries to adapt the page layouts to the actual screen sizes. This model allows organizations to maintain one website and still provide pages that look great for users on computers, tablets and smartphones.\u003c/p\u003e\n\u003ch2 id=\"mobile-operating-system-market\"\u003eMobile Operating System Market\u003c/h2\u003e\n\u003cp\u003eThere are many mobile operating systems in use, and this number continues to rise. The following chart from \u003ca href=\"http://gs.statcounter.com/\"\u003eStatCounter\u003c/a\u003e shows some examples and trends of the mobile market share from October 2012 through October 2013.\u003c/p\u003e\n\u003cdiv class=\"image\"\u003e\n  \u003cimg\n    src=\"https://s3.amazonaws.com/digitalgov/_legacy-img/2014/01/StatCounterMobileOS.png\"\n    alt=\"Stat Counter Mobile Chart\"/\u003e\u003c/div\u003e\n\n\n\u003cp\u003eThe chart shows that as of October 2013, 90.2% of mobile devices run either iOS and Android operating system.\u003c/p\u003e\n\u003cp\u003eReminder: When using this type of data, your specific “users” must be kept in mind. For example, this information is representative of the United States, but your customer base may be regional or even worldwide, possibly having different characteristics. Using tools such as Google Analytics can help determine your specific customer base characteristics.\u003c/p\u003e\n\u003ch2 id=\"common-testing-questions\"\u003eCommon Testing Questions\u003c/h2\u003e\n\u003cp\u003eRegardless of the mobile testing being performed, two common questions must be answered:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eWhat devices should an application be tested with to prove it works?\u003c/li\u003e\n\u003cli\u003eWhat types of things should Testers look for during exploratory and scripted testing?\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"what-devices-should-an-application-be-tested-with-to-prove-it-works\"\u003eWhat devices should an application be tested with to prove it works?\u003c/h3\u003e\n\u003cp\u003eAs mentioned above, it would be nice to test on every possible mobile device and operating system, but this is not possible as we simply do not have enough time or resources to do so.\u003c/p\u003e\n\u003cp\u003eInstead, the goal should be to test on what your specific users are using. Some organizations gather this information by using tools such as Google Analytics to see exactly what type of mobile devices are hitting their site.\u003c/p\u003e\n\u003cp\u003eIf it is not possible to get reports on the types of devices that are hitting your site, you need to do your own research using the industry trends shown above.\u003c/p\u003e\n\u003ch3 id=\"what-types-of-things-should-testers-look-for-during-exploratory-and-scripted-testing\"\u003eWhat types of things should testers look for during exploratory and scripted testing?\u003c/h3\u003e\n\u003cp\u003eThe following is a list of some of the things that testers should look for during testing:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eLinks\n\u003col\u003e\n\u003cli\u003eTest all links to see that they navigate to the correct page\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eGraphical User Interface (GUI) check:\n\u003col\u003e\n\u003cli\u003eFont size and color\u003c/li\u003e\n\u003cli\u003eCursor or mouse focus\u003c/li\u003e\n\u003cli\u003eLocation of buttons, images, symbols and logos.\u003c/li\u003e\n\u003cli\u003eConsistent design.\u003c/li\u003e\n\u003cli\u003eButtons should have the right size and be suitable to big fingers\u003c/li\u003e\n\u003cli\u003eAll text is readable\u003c/li\u003e\n\u003cli\u003eTest all header and footer links which are constant for all pages.\u003c/li\u003e\n\u003cli\u003eCheck to see that pages are uniform and consistent\u003c/li\u003e\n\u003cli\u003eBe sure that no text or objects are cut off\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eField Validation\n\u003col\u003e\n\u003cli\u003eIs valid data accepted?\u003c/li\u003e\n\u003cli\u003eIs invalid data rejected and giving a good error message?\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003ePage Content\n\u003col\u003e\n\u003cli\u003eVerify whether information on all pages is correct and easy to understand.\u003c/li\u003e\n\u003cli\u003eTest for spelling and grammatical errors.\u003c/li\u003e\n\u003cli\u003eCheck for proper help if available\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eTouch\n\u003col\u003e\n\u003cli\u003eTapping should zoom-in and zoom-out\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003ePositioning\n\u003col\u003e\n\u003cli\u003eThe Application should function properly in landscape and portrait mode\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003eScrolling\n\u003col\u003e\n\u003cli\u003eCan you scroll back and forth on the page?\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"common-testing-activities\"\u003eCommon Testing Activities\u003c/h2\u003e\n\u003cp\u003eRegardless of the mobile testing being performed, common activities include:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSaving screen shots\u003c/li\u003e\n\u003cli\u003eCapturing mobile device logs\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"saving-screen-shots\"\u003eSaving Screen Shots\u003c/h3\u003e\n\u003cp\u003eMany times during the testing process, testers find an issue or potential issue. The best way to show someone exactly what you saw is to capture a screen shot of the issue.\u003c/p\u003e\n\u003cp\u003eThere are many ways to save mobile screen shots; some are more difficult/technical than others depending on the device.\u003c/p\u003e\n\u003cp\u003eThe following are instructions for capturing screen shots on a variety of devices:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eiPhone\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.imore.com/how-to-take-a-screenshot-with-the-iphone\"\u003eHow to Take a Screenshot with the iPhone\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://ipod.about.com/od/iphonewidgets/ht/iph-screenshot.htm\"\u003eHow to Take An iPod and iPhone Screenshot\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAndroid 4\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/5994516/how-to-take-a-screenshot-on-android\"\u003eHow to Take a Screenshot on Android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAndroid Before version 4\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://smallbusiness.chron.com/screenshot-google-android-gingerbread-36229.html\"\u003eHow to Take a Screenshot on Google on an Android Gingerbread\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eGeneral Android Screen Shots\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.makeuseof.com/tag/6-ways-to-take-screenshots-on-android/\"\u003e6 Ways To Take Screenshots On Android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMicrosoft\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.windowsphone.com/en-us/how-to/wp8/photos/take-a-screenshot\"\u003eHow to Take a Screenshot in Windows Mobile\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBlackberry\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://howto.cnet.com/8301-11310_39-20057498-285/how-to-take-a-screenshot-on-a-blackberry-smartphone/\"\u003eHow to Take a Screenshot on a BlackBerry Smartphone\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhen all else fails, remember that you can always take a screen shot or movie of your device with another device and submit that.\u003c/p\u003e\n\u003ch3 id=\"capturing-mobile-device-logs\"\u003eCapturing Mobile Device Logs\u003c/h3\u003e\n\u003cp\u003eSometimes mobile applications “crash” or stop working. The only way to really figure out what happened and to provide a description is to save the system logs.\u003c/p\u003e\n\u003cp\u003eThe following are some ways to save the logs on mobile phones.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eiOS\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://support.panopto.com/documentation/mobile/how-collect-ios-logs\"\u003eHow to Collect iOS Logs\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAndroid\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://play.google.com/store/apps/details?id=com.nolanlawson.logcat\"\u003eCatLog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://play.google.com/store/apps/details?id=ukzzang.android.app.logviewer\u0026amp;hl=en\"\u003eLog Viewer Lite\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"}
  ]
}
