This document discusses mobile end-to-end testing and exploratory testing tools. It covers the two categories of mobile automation technologies: instrumented and non-instrumented. It then discusses advantages of each technique and considerations for which to use. The document lists popular mobile automation tools for Android and iOS and outlines some pain points or challenges for testing on each platform. It concludes with proposing next steps to address the mobile testing "wall of pain".
The document discusses mobile end-to-end testing and exploratory testing. It describes two categories of mobile automation techniques: instrumented and non-instrumented. It then covers the advantages of each technique, considerations for which to use, examples of mobile automation tools for Android and iOS, and outlines "walls of pain" related to testing on these platforms.
This document discusses security and privacy considerations for iOS application development. It describes how jailbreaking an iOS device removes restrictions like sandboxing and allows access to the entire filesystem. It also explains how private APIs, encrypted binaries, and app review processes can be bypassed to extract information from iOS apps and modify their behavior. While modification is difficult, metadata can be easily extracted from iOS and Android apps. The document encourages developers to understand platform internals and take a reasonable approach to security rather than a paranoid one.
The document discusses jailbreaking iOS devices. It explains that jailbreaking removes security restrictions to allow installation of unauthorized third-party apps. It describes various jailbreaking tools and techniques, including exploiting vulnerabilities in the bootrom, iBoot, and kernel to bypass signature checks and install Cydia for managing third-party apps. Specific jailbreaking methods covered include the web-based Star jailbreak and the PC-based greenpois0n jailbreak.
This presentation was presented in Android Only! 2011 conference on June 14th.
With more than 300 different Android devices out on 6 different platform versions, application developers are facing a real nightmare when trying validate that their applications really work on their customers' devices. While fragmentation is a new thing in Android platform, it is not new in software industry and there are several ways to deal with device fragmentation from testing point of view.
This presentation discusses most common approaches to tackle fragmentation from application developer's point of view and explains why testing for device compatibility is a must for any serious Android application developer.
Pentesting iOS Apps - Runtime Analysis and ManipulationAndreas Kurtz
Apple iOS Apps are primarily developed in Objective-C, an object-oriented extension and strict superset of the C programming language. Objective-C supports the concepts of reflection, also known as introspection. This describes the ability to examine and modify the structure and behavior (specifically the values, meta-data, properties and functions) of an object at runtime.
This talk discusses the background, techniques, problems and solutions to Objective-C runtime analysis and manipulation. It will be discussed how running applications can be extended with additional debugging and runtime tracing capabilities, and how this can be used to modify instance variables and to execute or replace arbitrary object methods of an App.
Moreover, a new framework to assist dynamic analysis and security assessments of iOS Apps will be introduced and demonstrated.
This document provides an overview of Robotium, an open source test framework for Android. The presentation covers what Robotium is, how to set it up, why it's needed compared to standard Android testing, how to write tests using the Robotium Solo API, tips and tricks, and additional resources. The purpose of Robotium is to simplify Android testing by providing instrumentation of UI components without needing deep knowledge of Android internals or how the app works.
This document provides an overview of iOS jailbreaking. It explains that jailbreaking removes limitations imposed by Apple to allow root access and installation of unauthorized apps. Reasons for jailbreaking include customization, adding features, and making development easier. The document discusses the jailbreaking process, which involves exploiting checkpoints in the device startup process. It also covers jailbreak tools, repositories for unauthorized apps like Cydia, common jailbreak terms, and legal issues.
The document discusses mobile end-to-end testing and exploratory testing. It describes two categories of mobile automation techniques: instrumented and non-instrumented. It then covers the advantages of each technique, considerations for which to use, examples of mobile automation tools for Android and iOS, and outlines "walls of pain" related to testing on these platforms.
This document discusses security and privacy considerations for iOS application development. It describes how jailbreaking an iOS device removes restrictions like sandboxing and allows access to the entire filesystem. It also explains how private APIs, encrypted binaries, and app review processes can be bypassed to extract information from iOS apps and modify their behavior. While modification is difficult, metadata can be easily extracted from iOS and Android apps. The document encourages developers to understand platform internals and take a reasonable approach to security rather than a paranoid one.
The document discusses jailbreaking iOS devices. It explains that jailbreaking removes security restrictions to allow installation of unauthorized third-party apps. It describes various jailbreaking tools and techniques, including exploiting vulnerabilities in the bootrom, iBoot, and kernel to bypass signature checks and install Cydia for managing third-party apps. Specific jailbreaking methods covered include the web-based Star jailbreak and the PC-based greenpois0n jailbreak.
This presentation was presented in Android Only! 2011 conference on June 14th.
With more than 300 different Android devices out on 6 different platform versions, application developers are facing a real nightmare when trying validate that their applications really work on their customers' devices. While fragmentation is a new thing in Android platform, it is not new in software industry and there are several ways to deal with device fragmentation from testing point of view.
This presentation discusses most common approaches to tackle fragmentation from application developer's point of view and explains why testing for device compatibility is a must for any serious Android application developer.
Pentesting iOS Apps - Runtime Analysis and ManipulationAndreas Kurtz
Apple iOS Apps are primarily developed in Objective-C, an object-oriented extension and strict superset of the C programming language. Objective-C supports the concepts of reflection, also known as introspection. This describes the ability to examine and modify the structure and behavior (specifically the values, meta-data, properties and functions) of an object at runtime.
This talk discusses the background, techniques, problems and solutions to Objective-C runtime analysis and manipulation. It will be discussed how running applications can be extended with additional debugging and runtime tracing capabilities, and how this can be used to modify instance variables and to execute or replace arbitrary object methods of an App.
Moreover, a new framework to assist dynamic analysis and security assessments of iOS Apps will be introduced and demonstrated.
This document provides an overview of Robotium, an open source test framework for Android. The presentation covers what Robotium is, how to set it up, why it's needed compared to standard Android testing, how to write tests using the Robotium Solo API, tips and tricks, and additional resources. The purpose of Robotium is to simplify Android testing by providing instrumentation of UI components without needing deep knowledge of Android internals or how the app works.
This document provides an overview of iOS jailbreaking. It explains that jailbreaking removes limitations imposed by Apple to allow root access and installation of unauthorized apps. Reasons for jailbreaking include customization, adding features, and making development easier. The document discusses the jailbreaking process, which involves exploiting checkpoints in the device startup process. It also covers jailbreak tools, repositories for unauthorized apps like Cydia, common jailbreak terms, and legal issues.
Kadecot is an Android-based, open source web API server for networked devices/sensors. On default, ECHONET Lite, Sony Bravia, and IRKit are supported but you can add arbitrary protocols
This slide shows the use example of Kadecot API.
This presentation is based on Android application testing fundamentals. I have shared some basic idea about different automated android testing frameworks.
The document discusses best practices for automated Android testing, including testing utilities, Android components, the UI, and expected user behavior. It recommends using support libraries like Instrumentation, Android JUnit Runner, Espresso, and UIAutomator for testing. Espresso allows testing UI interactions within an app, while UIAutomator can test interactions between apps and the system. Tests should be decoupled and use stubs for dependencies that can't be controlled. Everything that could cause errors, like getter/setters, should be tested.
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest
Experitest & Infosys held a co-webinar, discussing Continuous Integration & Mobile Performance Test Strategies, Tools and Certification services that can guarantee a quality app for the end user.
The document provides an overview of testing on Android. It discusses test driven development (TDD) and behavior driven development (BDD). It describes the built-in Android testing framework, which is based on JUnit 3 and supports unit, functional, and activity tests. It outlines various test case types like ActivityInstrumentationTestCase2 that can be used to test Activities. It also documents utilities for writing tests, such as TouchUtils for simulating user interactions and ViewAsserts for making assertions about Views. The document guides the reader through an example of setting up an Android project and test project to apply TDD techniques.
The document discusses developing secure iOS applications. It covers common security issues like binary and runtime security, transport layer security, and data security. It provides principles for secure design like not trusting the client/runtime and not storing sensitive data on devices. It also describes techniques to address specific issues like debug checks, jailbreak detection, and preventing unintended data leakage.
This document provides an overview of testing Android applications. It discusses using Robolectric to run tests on a development machine without needing an emulator. It also recommends libraries like Hamcrest, FEST Android, and Awaitility to improve testing. Spoon is presented as a tool to take screenshots during tests. Continuous integration with Jenkins and generating test reports and documentation are also covered.
Microsoft Dynamics CRM Online is attracting ever more and ever larger organizations. Successful CRM implementations depend on up to date and reliable customer data, which often resides in on premises line of business applications or data stores.
This session will deliver a deep dive in how to build effective integration solutions based on Windows Azure Service Bus, and will show various options to link the CRM online with local applications, like SAP. After this session, attendees should have a good understanding of the various options to link data and applications with CRM online in a secure, scalable and robust manner.
if you think that ZXing is all you need to do barcode scanning on Android and you're happy with it, this presentation is not for you.
Barcodes are a very old technology that is not going away anytime soon and if you need to scan a lot of barcodes, better to know what are the alternatives.
This document provides a short introduction to programming J2ME applications on the MIDP 2.0 platform, covering basic concepts and sample applications. It demonstrates the MIDlet lifecycle, building a user interface, handling commands, performing network requests to fetch XML data, and discovering and connecting to nearby Bluetooth devices. For more in-depth coverage, it recommends referring to books on MIDP programming.
How to Leverage Appium in Your Mobile App TestingBitbar
This document discusses how to leverage Appium for mobile app testing. It begins with an agenda that includes different ways to automate app testing, how Appium compares to other frameworks, using Appium with real devices via Testdroid Cloud, and tips for professional mobile app testing. It then covers various topics on the agenda, such as how Appium works, code examples, its support for Android and iOS, and integrating development and testing. The goal is to help attendees understand how to incorporate Appium into their mobile testing process.
Prem Kumar is a senior security consultant who specializes in web, mobile, and network penetration testing. He has previously presented at security conferences and found vulnerabilities in applications from companies like Facebook, Apple, and Yahoo. The agenda for his talk covers topics like iOS architecture, application structures, types of iOS applications and distribution methods, iOS penetration testing techniques, jailbreaking, and setting up an iOS testing platform. He will demonstrate runtime analysis and penetration testing on real iOS applications.
Exploring Thermal Related Stuff in iDevices using Open-Source ToolKoan-Sin Tan
This is the era of so-called “dark silicon.” Thermal control is an important but seldom-talked topic. I could not find public information on how iOS does it. Recent checkm8 and follow-on checkra1n enable jailbreaking of iPhone 5s – iPhone X running iOS 12.3 and up. So that we can explore these devices with open-source tools
Sitam Jana presents on mobile automation. The document discusses challenges in mobile testing like compatibility and regression testing. It then covers mobile automation tools like Appium, Robotium and MonkeyRunner that can automate testing on Android and iOS. The last sections provide steps to set up the environment and demonstrate MonkeyRunner through sample code and configuration in Eclipse.
Selenium is an open source tool used for automating web application testing. It was created in 2004 by Jason Huggins and supports recording and playback of test cases in browsers like Firefox. Selenium has four main components - Selenium IDE for recording and playback of tests, Selenium Remote Control for running tests on multiple browsers, Selenium WebDriver for direct browser control, and Selenium Grid for parallel testing on different machines. The latest version of Selenium is 3.0.
OWASP Melbourne - Introduction to iOS Application Penetration Testingeightbit
This document provides an introduction to iOS application penetration testing. It discusses setting up an iOS penetration testing environment, including jailbreaking a test device and installing necessary software tools. It also provides an overview of iOS and Objective-C, covering key security features of iOS like sandboxing, ASLR, code signing, and data encryption. Topics to be covered include assessing data security, binary analysis, runtime manipulation, and evaluating authentication, session management, and transport security.
Wipro & Experitest Co webinar: Enhance your Mobile App with Load Testing and Increased Productivity.
Wipro and Experitest on a live webinar on improving the performance of your mobile application while expanding productivity. The solutions we present will allow you to test faster, and more diligently than ever, combining load, performance, and functionality all at once.
The session covers:
- A case study involving Wipro and SeeTest working with a major American Bank
- Live demo to show SeeTest Automation integrate into HP LoadRunner
- How Wipro developed a mainframe component to perform backend validation
- Live demo of Wipro's SeeTest Framework, and how it improves productivity by 50%
Speakers:
Guy Arieli, CTO, Experitest
Sudheer Mohan, Director - Mobility Certification & Automation, Wipro
This document provides an overview of mobile application security testing. It discusses testing checklists for both mobile web applications and native mobile apps. It outlines test cases for functionality, security vulnerabilities like SQL injection, and tools for manual testing in emulators. It also describes using the OWASP ZAP tool to scan mobile web applications in an emulator. The document concludes that paid commercial tools are generally preferable for business mobile app security testing over open source options.
Appium Mobile Testing: Nakov at BurgasConf - July 2021Svetlin Nakov
Automated testing of Android apps using Appium, AndroidDriver, Selenium and C#.
Speaker: Svetlin Nakov
BurgasConf, July 2021
Contents:
Appium: Overview, Architecture, Installation
The Android Emulator
Appium for Android App Automation
Inspecting Android apps UI from Appium
Using AndroidDriver<AndroidElement>
Using Appium for Android from NUnit
Testing on Physical Android Device
This document discusses issues with the "test pyramid" approach to software testing. It argues that the pyramid is just a theoretical metaphor that is difficult to achieve in the real world. Additionally, tests created at different levels may test the wrong functionality or have the wrong focus. The document recommends using metrics focused on test quality rather than just meeting pyramid shapes or code coverage thresholds. It also advises treating test-driven development as a guideline rather than religion and focusing on writing high-quality tests over rigid adherence to test layering structures.
This document discusses how to take mobile application tests to the next level using continuous integration (CI). It covers challenges with mobile testing in CI, basics of Android and iOS setup, popular automation tools like MonkeyRunner and Sikuli, and demonstrates how to run mobile tests in CI. The session provides tips for configuring emulators and simulators, installing and launching apps, and executing tests on Android and iOS. It also compares instrumentation and non-instrumentation test techniques and popular mobile test automation tools.
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
Speaker: Justin Ison
Check out the complete session slides here: http://www.srijan.net/webinar/mobile-...
This session dives into the history of Appium, and it's pros and cons. The speaker also looks at how to write a good test setup and collect meaningful data points. We look at quick demos and comparisons of how Appium significantly reduces test times.
And you definitely should hang around till the Q&A session, where participants pitch in with their issues and queries. The speaker answers all the questions, sharing additional information and tips on Appium.
Kadecot is an Android-based, open source web API server for networked devices/sensors. On default, ECHONET Lite, Sony Bravia, and IRKit are supported but you can add arbitrary protocols
This slide shows the use example of Kadecot API.
This presentation is based on Android application testing fundamentals. I have shared some basic idea about different automated android testing frameworks.
The document discusses best practices for automated Android testing, including testing utilities, Android components, the UI, and expected user behavior. It recommends using support libraries like Instrumentation, Android JUnit Runner, Espresso, and UIAutomator for testing. Espresso allows testing UI interactions within an app, while UIAutomator can test interactions between apps and the system. Tests should be decoupled and use stubs for dependencies that can't be controlled. Everything that could cause errors, like getter/setters, should be tested.
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest
Experitest & Infosys held a co-webinar, discussing Continuous Integration & Mobile Performance Test Strategies, Tools and Certification services that can guarantee a quality app for the end user.
The document provides an overview of testing on Android. It discusses test driven development (TDD) and behavior driven development (BDD). It describes the built-in Android testing framework, which is based on JUnit 3 and supports unit, functional, and activity tests. It outlines various test case types like ActivityInstrumentationTestCase2 that can be used to test Activities. It also documents utilities for writing tests, such as TouchUtils for simulating user interactions and ViewAsserts for making assertions about Views. The document guides the reader through an example of setting up an Android project and test project to apply TDD techniques.
The document discusses developing secure iOS applications. It covers common security issues like binary and runtime security, transport layer security, and data security. It provides principles for secure design like not trusting the client/runtime and not storing sensitive data on devices. It also describes techniques to address specific issues like debug checks, jailbreak detection, and preventing unintended data leakage.
This document provides an overview of testing Android applications. It discusses using Robolectric to run tests on a development machine without needing an emulator. It also recommends libraries like Hamcrest, FEST Android, and Awaitility to improve testing. Spoon is presented as a tool to take screenshots during tests. Continuous integration with Jenkins and generating test reports and documentation are also covered.
Microsoft Dynamics CRM Online is attracting ever more and ever larger organizations. Successful CRM implementations depend on up to date and reliable customer data, which often resides in on premises line of business applications or data stores.
This session will deliver a deep dive in how to build effective integration solutions based on Windows Azure Service Bus, and will show various options to link the CRM online with local applications, like SAP. After this session, attendees should have a good understanding of the various options to link data and applications with CRM online in a secure, scalable and robust manner.
if you think that ZXing is all you need to do barcode scanning on Android and you're happy with it, this presentation is not for you.
Barcodes are a very old technology that is not going away anytime soon and if you need to scan a lot of barcodes, better to know what are the alternatives.
This document provides a short introduction to programming J2ME applications on the MIDP 2.0 platform, covering basic concepts and sample applications. It demonstrates the MIDlet lifecycle, building a user interface, handling commands, performing network requests to fetch XML data, and discovering and connecting to nearby Bluetooth devices. For more in-depth coverage, it recommends referring to books on MIDP programming.
How to Leverage Appium in Your Mobile App TestingBitbar
This document discusses how to leverage Appium for mobile app testing. It begins with an agenda that includes different ways to automate app testing, how Appium compares to other frameworks, using Appium with real devices via Testdroid Cloud, and tips for professional mobile app testing. It then covers various topics on the agenda, such as how Appium works, code examples, its support for Android and iOS, and integrating development and testing. The goal is to help attendees understand how to incorporate Appium into their mobile testing process.
Prem Kumar is a senior security consultant who specializes in web, mobile, and network penetration testing. He has previously presented at security conferences and found vulnerabilities in applications from companies like Facebook, Apple, and Yahoo. The agenda for his talk covers topics like iOS architecture, application structures, types of iOS applications and distribution methods, iOS penetration testing techniques, jailbreaking, and setting up an iOS testing platform. He will demonstrate runtime analysis and penetration testing on real iOS applications.
Exploring Thermal Related Stuff in iDevices using Open-Source ToolKoan-Sin Tan
This is the era of so-called “dark silicon.” Thermal control is an important but seldom-talked topic. I could not find public information on how iOS does it. Recent checkm8 and follow-on checkra1n enable jailbreaking of iPhone 5s – iPhone X running iOS 12.3 and up. So that we can explore these devices with open-source tools
Sitam Jana presents on mobile automation. The document discusses challenges in mobile testing like compatibility and regression testing. It then covers mobile automation tools like Appium, Robotium and MonkeyRunner that can automate testing on Android and iOS. The last sections provide steps to set up the environment and demonstrate MonkeyRunner through sample code and configuration in Eclipse.
Selenium is an open source tool used for automating web application testing. It was created in 2004 by Jason Huggins and supports recording and playback of test cases in browsers like Firefox. Selenium has four main components - Selenium IDE for recording and playback of tests, Selenium Remote Control for running tests on multiple browsers, Selenium WebDriver for direct browser control, and Selenium Grid for parallel testing on different machines. The latest version of Selenium is 3.0.
OWASP Melbourne - Introduction to iOS Application Penetration Testingeightbit
This document provides an introduction to iOS application penetration testing. It discusses setting up an iOS penetration testing environment, including jailbreaking a test device and installing necessary software tools. It also provides an overview of iOS and Objective-C, covering key security features of iOS like sandboxing, ASLR, code signing, and data encryption. Topics to be covered include assessing data security, binary analysis, runtime manipulation, and evaluating authentication, session management, and transport security.
Wipro & Experitest Co webinar: Enhance your Mobile App with Load Testing and Increased Productivity.
Wipro and Experitest on a live webinar on improving the performance of your mobile application while expanding productivity. The solutions we present will allow you to test faster, and more diligently than ever, combining load, performance, and functionality all at once.
The session covers:
- A case study involving Wipro and SeeTest working with a major American Bank
- Live demo to show SeeTest Automation integrate into HP LoadRunner
- How Wipro developed a mainframe component to perform backend validation
- Live demo of Wipro's SeeTest Framework, and how it improves productivity by 50%
Speakers:
Guy Arieli, CTO, Experitest
Sudheer Mohan, Director - Mobility Certification & Automation, Wipro
This document provides an overview of mobile application security testing. It discusses testing checklists for both mobile web applications and native mobile apps. It outlines test cases for functionality, security vulnerabilities like SQL injection, and tools for manual testing in emulators. It also describes using the OWASP ZAP tool to scan mobile web applications in an emulator. The document concludes that paid commercial tools are generally preferable for business mobile app security testing over open source options.
Appium Mobile Testing: Nakov at BurgasConf - July 2021Svetlin Nakov
Automated testing of Android apps using Appium, AndroidDriver, Selenium and C#.
Speaker: Svetlin Nakov
BurgasConf, July 2021
Contents:
Appium: Overview, Architecture, Installation
The Android Emulator
Appium for Android App Automation
Inspecting Android apps UI from Appium
Using AndroidDriver<AndroidElement>
Using Appium for Android from NUnit
Testing on Physical Android Device
This document discusses issues with the "test pyramid" approach to software testing. It argues that the pyramid is just a theoretical metaphor that is difficult to achieve in the real world. Additionally, tests created at different levels may test the wrong functionality or have the wrong focus. The document recommends using metrics focused on test quality rather than just meeting pyramid shapes or code coverage thresholds. It also advises treating test-driven development as a guideline rather than religion and focusing on writing high-quality tests over rigid adherence to test layering structures.
This document discusses how to take mobile application tests to the next level using continuous integration (CI). It covers challenges with mobile testing in CI, basics of Android and iOS setup, popular automation tools like MonkeyRunner and Sikuli, and demonstrates how to run mobile tests in CI. The session provides tips for configuring emulators and simulators, installing and launching apps, and executing tests on Android and iOS. It also compares instrumentation and non-instrumentation test techniques and popular mobile test automation tools.
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
Speaker: Justin Ison
Check out the complete session slides here: http://www.srijan.net/webinar/mobile-...
This session dives into the history of Appium, and it's pros and cons. The speaker also looks at how to write a good test setup and collect meaningful data points. We look at quick demos and comparisons of how Appium significantly reduces test times.
And you definitely should hang around till the Q&A session, where participants pitch in with their issues and queries. The speaker answers all the questions, sharing additional information and tips on Appium.
Appium overview (Selenium Israel #2, Feb. 2014)danielputerman
Appium is an open source test automation framework for testing native and hybrid mobile apps. It allows writing tests in any language and on any platform to test the same app submitted to app stores. Appium uses the WebDriver protocol to remotely control apps using UIAutomator on Android and Instruments on iOS. This allows testing apps on real devices and emulators with a single test script. Appium supports platforms include Android, iOS, and mobile web apps and can test apps on a local device or cloud-based services like SauceLabs.
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Intuit Inc.
In the past few years, Intuit has put an intense focus on ramping up its innovation engine. A big part of this effort is speeding up time-to-market for its hundreds of native mobile apps, while maintaining the highest quality standards. The apps need to work across an ever-increasing number of devices and versions of the operating system.
Once our engineers had access to all possible combinations of devices and operating systems, they needed to be able to kick off automated testing whenever they checked in code. We enable mobile continuous integration by integrating our virtual device lab with our test execution platform and Jenkins system. A notification system detects the arrival of a new build of our mobile products, which kicks off execution of automated tests based on a pre-configured test matrix.
The result is a 95% reduction in the time it takes to test our mobile apps.
MonkeyTalk is a free and open source mobile app testing tool that allows users to write automated tests for native, mobile, and hybrid iOS and Android apps. It works with both real devices and emulators. Tests are written using a simple domain-specific language and can range from simple smoke tests to complex data-driven test suites. MonkeyTalk provides an IDE with features like a component tree, test editor, and results console. It supports cross-platform testing through either installing agents in each app or using a Java API to write tests as standard JUnit tests. While it cannot use XPath or CSS selectors, MonkeyTalk is able to locate and interact with UI elements using component IDs.
100 effective software testing tools that boost your TestingBugRaptors
Bugraptors always remains up to date with ongoing trends, technological changes and latest tools used in Manual Testing as well as in Automation Testing.
Tina Su discusses how Intuit implemented continuous integration and mobile test automation to speed up their mobile development cycle. They created an Intuit Virtual Device Lab (VDL) that gives developers browser-based access to real mobile devices. This allows automated tests to be run simultaneously across many device configurations. Intuit also developed a shared test library and uses Cucumber and Calabash for behavior-driven testing on Android and iOS. Continuous integration with the VDL and test automation reduced Intuit's iteration cycle from days to minutes, improving release quality and developer productivity.
Speed and quality through Mobile Continuous Integration on Real Devices at Intuit. The presentation share about our key considerations for 3rd-party vs custom built solutions and how we created Virtual Device Lab and test automation framework to enable end-2-end Mobile continuous integration that reduce development iteration cycle from Days to Minutes
Tina Su discusses how Intuit implemented continuous integration and mobile test automation to speed up their mobile development cycle. They created an Intuit Virtual Device Lab (VDL) that gives developers browser-based access to real mobile devices. This allows automated tests to be run simultaneously across many device configurations. Intuit also developed a shared test library and uses Cucumber and Calabash for behavior-driven testing on Android and iOS. Continuous integration with the VDL and test automation reduced Intuit's iteration cycle from days to minutes, improving release quality and developer productivity.
Optimize mobile applications defects with our mobile testing/mobile applications testing services. There are different types of Testing / Mobile Testing / Mobile Application Testing (iPhone Mobile Testing, iPad Testing, Android Mobile Testing, BlackBerry Testing &Windows Phone Testing) and this slide presentation helps you to learn in systematic way.
This document provides information on testing mobile applications. It discusses the different types of testing needed such as functionality, compatibility, and usability testing. It also outlines considerations for the variety of mobile platforms, operating systems, devices and versions. Tools that can be used for testing on emulators, virtual devices and real devices are presented. The document provides best practices for thorough mobile application testing.
An overview of Appium mobile testing framework, presented at the Selenium Israel Meetup (http://bit.ly/1yyY80D) on February 2014, by Daniel Puterman, Applitools Head Developer.
This document discusses test automation for mobile applications. It notes challenges with testing across different devices and OS versions as well as the repetitive nature of regression testing. Automation can help address these issues by running tests faster, repeatedly, and comprehensively compared to manual testing. The document reviews options for test automation frameworks including Frank, KIF, and UIAutomation and their pros and cons. It provides guidance on preparing an application for testing by adding accessibility info. Finally, it covers writing, running, and debugging automation scripts.
The document discusses innovative tools for mobile testing including Sikuli for user behavior testing, MonkeyRunner for interacting with device SDKs, ImageMagick for image processing, and MOET for test design patterns. It provides an overview of each tool, how they can be customized for mobile, and demoed automating an address book app on Android and iOS using these open source tools.
My final talk on the Appium mobile grid and getting started.
- Benefits of parallelization.
- The pros and cons of both cloud services and local setup.
- Getting connected devices information.
- Setting up Grid and Appium servers.
- Getting critical metadata to insert into Allure.
- The benefits of distributed tests vs parallel and when best to use them.
- Setup examples for Android and iOS.
- Leveraging cloud services by sending only selected tests to the cloud.
- Reduce service costs.
- Expose your app to a greater amount of devices and os's.
- A demo of Wunderlist's local grid.
Selenium in the palm of your hand: Appium and automated mobile testingIsaac Murchie
Appium is an open source test automation framework that allows developers to write automated tests for native and hybrid mobile apps using JavaScript or Java. It provides a standardized interface for controlling iOS and Android environments and abstracts away differences between the platforms. Appium maps Selenium commands to mobile functionality and adds mobile-specific features like gestures, contexts, and network connections to enable cross-platform testing on real devices and emulators.
A. Sirota "Building an Automation Solution based on Appium"DataArt
This document provides an overview of building an automation solution using Appium. It discusses tools for mobile test automation, common pain points in testing, tips for running tests on real devices versus emulators, integrating mobile testing into a CI/CD pipeline, and using cloud services for testing. Examples are provided for testing a QR code scanning app and verifying call quality between two devices. Links to additional Appium documentation and cloud testing services are also included.
This talk aims to summarize the typical challenges one encounters in testing mobile applications. At the ThoughtWorks Pune office we have developed multiple mobile applications across various platforms (mobile web, hybrid apps, native apps, apps for tablets etc.). In this talk we will bring together lessons learnt around mobile testing. This talk was done by Vikrant Chauhan and Dubinsky De Soares
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdfflufftailshop
As a business owner, you know the importance of testing your products before launch. With the introduction of iOS unit testing, the app testing process has been made much easier. iOS unit testing is software testing that involves testing individual units of source code for iOS apps. Using iOS swift unit testing and iOS app unit testing, you can identify bugs quickly and make sure that your app functions properly and meets the required standards.
This document discusses using Appium to automate iOS testing by running UIAutomation from the command line rather than just within Instruments. It describes how Appium breaks UIAutomation out of JavaScript and enables real-time control, allowing tests to be written in any language that can make web requests or write files. The document provides instructions for setting up and running Appium, and coding tests similarly to Selenium by interacting with the Appium webdriver server. It concludes with notes on failed prototyping approaches and pitfalls encountered.
Sikuli is a tool for automating testing on mobile devices through image recognition. It allows testers to write scripts using images of the screen rather than coordinates or IDs. The speaker discusses how Sikuli addresses issues with traditional mobile testing approaches by being neither too visual, new, or old. Sikuli strikes a balance by using image recognition to automate tests across emulators and real devices without relying on fragile elements like coordinates or IDs that can change between builds.
The document proposes a solution called Marionette to enable automated testing of apps built for FirefoxOS across different Gecko environments like desktop and mobile Firefox. Marionette is a privileged WebDriver that runs in both content and privileged spaces, providing a way to control the entire device from JavaScript. It aims to support existing and future test frameworks with full device control in an easy to use way. Developers can get started by building Marionette into FirefoxOS from source code or using desktop builds of Firefox and FirefoxOS available online.
iOS Automated Testing with Calabash: Tips and Tricksmobiletestsummit
This document discusses tips and tricks for automated testing of iOS apps using Calabash. It recommends Ruby 1.9.3, RVM, and gemsets for setup. Calabash tests are written with Cucumber feature files and step definitions. Examples of feature files and step definitions are provided. The document advises updating Calabash regularly and working with developers to make apps more testable. It also provides references and encourages participation in the Calabash community.
The document discusses Frank, a tool for automating tests on native iOS apps. It can write tests using users' preferred languages and tools and integrate with continuous integration systems. Frank uses PublicAutomation, which exposes Apple's private UIAutomation framework, to provide touch synthesis abilities. It advocates for the page object pattern to structure automated tests clearly. Frank aims to provide a consistent interface for testing iOS, web, and other platforms.
Calabash-Driver is a tool for automating tests on Android apps. It uses the open source Calabash-Android project to integrate Android test automation into the Selenium Grid. This allows tests to be run on multiple devices simultaneously. Calabash-Driver offers a convenient WebDriver-like Java API for writing tests against Android apps and supports interacting with localized app elements.
1. MOET
https://github.com/eing/moet
Mobile End-to-End Testing
Mobile Exploratory Testing
Eing Ong
Intuit, Inc.
@eingong|eing.ong@intuit.com
1
1
2. Mobile'automation'technologies1
• Two categories
• Instrumented technique
• Non-instrumented technique
• What is instrumentation?
• Tests are compiled with the app
• Tests are installed & launched with the app
• Source code is required and may need to be modified
• Only one app can be executed at a time
• White box approach
2
6. MOET1
Test
• Think design Login(“user1”,”passwd1”)
o Interfaces
o Creational pattern iPhone implementation
touch(100,100)
• Think reuse enter(username)
touch(100,200)
o Device independent tests
enter(password)
• Think One touch(150, 300)
o IDE
o Test harness and language iPhone Sikuli library
void enter()
void touch(x,y)
6
8. Top Ten Wish List
a.k.a.
Mobile test automation
Wall of Pain
8
8
9. Android'Wall'of'Pain1
10. There’s more to test execution
o Command with report file generation :
adb shell am instrument -w -e reportFile junit-report.xml
com.intuit.test/com.zutubi.android.junitreport.JUnitReportTestRunner
o Date-time fix if using device snapshots :
adb shell date -s `date +"%Y%m%d.%H%M%S”`
9. Where are the test results ?
o Pulling results from device :
adb pull /data/data/com.intuit.test/files/junit-report.xml junit-
report.xml
9
10. Android'Wall'of'Pain1
10. There’s more to test execution
o Command with report file generation :
adb shell am instrument -w -e reportFile junit-report.xml
com.intuit.test/com.zutubi.android.junitreport.JUnitReportTestRunner
o Date-time fix if using device snapshots :
adb shell date -s `date +"%Y%m%d.%H%M%S”`
9. Where are the test results ?
o Pulling results from device :
adb pull /data/data/com.intuit.test/files/junit-report.xml junit-
report.xml
10
11. iOS'Wall'of'Pain1
8. iOS simulator…the singleton pattern
o Multiple instances of simulator
o Headless execution
7. What test harness ?
o Test grouping, test assertions, base test class
o Results needs to be displayable in browser
6. How about a CI plugin
o Test execution
o Code coverage
11
12. iOS'Wall'of'Pain1
8. iOS simulator…the singleton pattern
o Multiple instances of simulator
o Headless execution
7. What test harness ?
o Test grouping, test assertions, base test class
o Results needs to be displayable in browser
6. How about a CI plugin
o Test execution
o Code coverage
12
13. iOS'Wall'of'Pain1
8. iOS simulator…the singleton pattern
o Headless execution
o Multiple instances of simulator
7. What test harness ?
o Test grouping, test assertions, base test class
o Results needs to be displayable in browser
6. How about a CI plugin
o Test execution
o Test results
o Code coverage
13
14. iOS'Wall'of'Pain1
5. Where’s the IDE plugin ?
o Code formatting
o API completion
o Breakpoints, debugger
o “javadoc” help
o One click test execution of test method/testsuite
14
15. All'mobile'platforms1
4. Problem ? Search ?
o Blogs, stackoverflow, developer groups for devices, etc.
o Mobile testing one-stop tips & tricks (not questions)
o Community driven effort
Tip – Remove authorization prompt
Administrative rights
Update /etc/authorization
<key>system.privilege.taskport</key>
<dict>
<key>allow-root</key>
<!-- previous value <false/> -->
<true/>
Tip – Clean cache, preferences, SQLite
~/Library/Application Support/iPhone Simulator/{SDK}/Applications/<uuid>
Library: Preferences, Caches
Documents: sqlite3 <app>.sqlitedb
15
16. All'mobile'platforms1
3. How about a mobile test report ?
o Mobile test report standard e.g. mobile-test-report.xml
• Screenshots and video recording of failed tests
• Device logs
• Device detection
2. Wireless?
o OTA app installation
o Testing via wifi and carrier networks
o Selenium grid-like test infrastructure
16
17. All'mobile'platforms1
3. How about a mobile test report?
o Mobile test report standard e.g. mobile-test-report.xml
• Screenshots and video recording of failed tests
• Device logs
• Device detection
2. Mobile testing is anything but mobile
o OTA app installation and execution
o Testing via wifi and carrier networks
o Test tool independent component
o Selenium grid-like test infrastructure
17
18. All'mobile'platforms1
1. Yet another proprietary language?
o Open sourced test harness & language for
• Instrumented tests
• Non-instrumented tests
• Hybrid apps tests
18
19. Next'steps1
Eclipse mobile Test Test Test Continuous
testing plugin development execution reporting integration
Mobile3Application3Interface-
Device3Independent3Tests-
Runtime binding
Simulator/Device libraries
Non$instrumented3 Instrumented3application3
application3implementation- implementation-
Monkey$
Sikuli- ?Android?- ?iOS?3-
Runner-
19