Mobile - Can I live without it?
Mobile Phones are very personal devices. Have you ever lost your phone and said to yourself, “Oh well, I’ll find it another time. It’s just not that important.”Surely not. Once you lose your phone, your biggest priority at that moment is to find it or get a replacement. All other priorities go out the window.
Continuous Integration - Mobile Apps
Continuous Integration, deployment and automated testing is a holy grail for software development projects when talking about MVP(minimum viable product) and feedback loop. One of the biggest challenges for mobile apps is being able to setup and tear down sandbox environments to test an end user experience. The dimension of being able to manage a mobile device in addition to the build machine makes the coordination and synchronization interesting and exciting.
Web Application test automation has been around the corner for quite some time now. WebDriver JSON wire protocol is nowadays used to automate both thick and thin clients. Selenium (with selenium grid) is one of the most popular tool/frameworks/library for automating web applications loaded in browsers.
While some might believe that mobile app development is relatively easier than web application development (barring exceptions), continuous integration, deployment and automation for a mobile is n-fold complex than web app test automation (n value varies case-case basis, at least being 5 in my experience). Some of the challenges are
- The number of form factors - screen resolution, devices, SDKs
- Native Apps vs. web apps vs. hybrid apps
- Different worlds - Android, iOS, FirefoxOS, Windows Mobile and so on..
- Simulators/Emulators vs. Real Devices
- On-premise mobile lab vs. in-cloud labs
- Parallel test execution
What this Book is About?
This will help you get started on a CI journey while developing Android apps and automating the feedback loop (testing) on real Android devices. We prefer real devices over emulators, though testing on emulators might get you started quickly.
Who this Book is for?
Product Owner/Business Analyst - We will follow ATDD (acceptance test driven development), hence requirements enter as Gherkin specs. So the role of a PO here is generally collaborate with other roles and ensure that the features stay current and up-to-date. In a mature ATDD+Agile shop, PO will also be the decision maker if the product has to be deployed into production or not - of course, PO has to be provided with information/data in crisp dashboards to help make that decision. Dashboards that correlate project status, build status, testing status etc.
QA/Test Engineer - Collaborate with Product Owner and Developer to accelerate feedback loop and write automation test cases. A Test Engineer balances both the technical and non-technical requirements that come from PO and developer. A great test engineer never settles and accepts the status quo, but continuously questions the practices, technologies and tools used in the entire software development lifecycle. The tools can be during development, build/release, project management, information access etc.
Developer - Source Code Developer or SDET/Automation Engineer writing automation code to test source code. A great automation engineer looks for opportunities to continuously automate the mundane tasks and helps surface the feedback quickly to the team. Choice of automation technologies are not done in silos. Since Test automation is heavily dependent on synchronization processes from code check-in to production releases including the data that passes in the system, it is quintessential to focus on all touch points and think about how data is passed in the system call path. Thinking early about non-functional requirements like performance testing provides great benefits long term. It goes without saying that collaborating with other roles is a defacto requirement.
Build/Deploy Engineer - If you are responsible for maintaining a build/CI environment like Jenkins, nexus and troubleshoot issues that stop the CI pipeline. Collaborating with the above roles is extremely important, because this role might not have all the information to troubleshoot issues that arise when CI pipeline stops.
Expected Value-Adds from this Book
- Understand how to build mobile app (android) from source code
- Set up a development or debugging environment for mobile apps
- Acceptance Test Driven Development
- Continuous Integration Concepts and application with tools and code
- Appium mobile automation library
- Jenkins Continuous Integration Tool
- Nexus - Dependency management and Application Release tool
- SonarQube - Code Quality Analyzer
- Debugging tools in Android
Feedback
Email: [email protected]